Curse.Voice decompiling

04/20/2014 11:59 EnoiZe#1
Moin, falls jemand noch ne Idee hat wie man gewisse .NET Dlls als Code kriegt bin ich gerne offen, die Funktionen die mich interessieren und mit LoL zutun haben kriegt man nicht entschlüsselt.

Curse.Voice benutzt EasyHook um in das Spiel zu gelangen, wenn man die Stellen alle sehen könnte, könnte man die Timer etc als eigenen Hack rausbringen.

Gemeint ist die DLL: Curse.Companion.dll
04/21/2014 01:32 dOofkopf!™#2
Ich kenn da nur .Net Reflector, aber die meisten Programme sind meistens verschlüsselt bzw versiegelt, sonst kann ich dir nur Empfehlen es selbst anzugehen :P
Ich denk mal nen Jungle Timer auf 0815 Basis ohne dicke GUI müsste man hinkriegen mit bisschen schweiss :P
04/22/2014 15:06 EnoiZe#3
Also ich hab die DLLs nun entschlüsselt, da ich aber nicht weiß obs gegen Foren Regeln ist die hier zu posten, poste ich mal nen kleinen Ausschnitt der auch Interessant sein könnte für C# Devs.

Curse kann also Server pakete empfangen und auswerten ;)
Gut dann können wir das bald auch ;)

Code:
int num4 = (int) packet.data[65];
            uint index2 = BitConverter.ToUInt32(packet.data, 1);
            if (this.GetTeam(index2) != this.PbhbrrdInw)
              break;
            uint key1 = BitConverter.ToUInt32(packet.data, 12);
            string str1 = (string) null;
            string str2 = string.Format("{0,8:x8}", (object) index2);
            string key2 = string.Format("{0,8:x8}", (object) index2);
            if (this.dqmbewWsSf.ContainsKey(index2))
              str2 = this.dqmbewWsSf[index2];
            if (this.dictionary_5.ContainsKey(index2))
              key2 = this.dictionary_5[index2];
            Dictionary<uint, object> dictionary = this.dictionary_0["SummonerSpells"];
            int num5 = 2;
            if (dictionary.ContainsKey(key1))
              str1 = (string) dictionary[key1];
            else if (this.dictionary_0.ContainsKey(key2))
            {
              dictionary = this.dictionary_0[key2];
              if (dictionary.ContainsKey(key1))
              {
                str1 = string.Concat((object) "?QWER"[(int) (long) dictionary[key1]]);
                num5 = 1;
              }
            }
            if (str1 == null)
              break;
            InternalLoLTimers.AbilityEventData abilityEventData_0 = new InternalLoLTimers.AbilityEventData();
            if (num5 == 1)
            {
              abilityEventData_0.AbilitySlot = str1;
            }
            else
            {
              abilityEventData_0.AbilitySlot = "";
              abilityEventData_0.AbilityName = str1;
            }
            abilityEventData_0.PlayerName = str2;
            abilityEventData_0.HeroName = key2;
            abilityEventData_0.PlayerSlot = 0;
            abilityEventData_0.CooldownTime = BitConverter.ToSingle(packet.data, 78 + num4 * 17);
            float float_3 = BitConverter.ToSingle(packet.data, 78 + num4 * 17 + 30);
            abilityEventData_0.AbilityType = (float) num5;
            DateTime now = DateTime.Now;
            double deltaTime = this.GetDeltaTime(now);
            TimeSpan timeSpan = now - new DateTime(1970, 1, 1);
            abilityEventData_0.Time = this.float_0 + (float) deltaTime;
            abilityEventData_0.EpochTime = timeSpan.TotalMilliseconds;
            if (num5 == 1)
            {
              int int_0 = (int) (long) dictionary[key1] - 1;
              float float_4 = 0.0f;
              if (this.method_4(index2, int_0, abilityEventData_0.Time, 1, abilityEventData_0.CooldownTime, float_3, out float_4))
                abilityEventData_0.CooldownTime = float_4;
            }
            List<uint> list = new List<uint>();
            for (int index3 = 0; index3 < num4; ++index3)
              list.Add(BitConverter.ToUInt32(packet.data, 66 + index3 * 17));
            BaseSingleton<ScriptManager>.get_Instance().QueueEvent("LoLTimers.AbilityUsed", (object) abilityEventData_0);
            this.method_7(abilityEventData_0, list.Count > 0 ? list : (List<uint>) null);
04/22/2014 15:08 dacx#4
Das mit den Paketen ist doch schon längst bekannt und wird auch bei bspw. BoL sehr erfolgreich verwendet. ;o
04/22/2014 16:59 I<3-electro&house#5
Quote:
Originally Posted by Dacyon View Post
Das mit den Paketen ist doch schon längst bekannt und wird auch bei bspw. BoL sehr erfolgreich verwendet. ;o
Ist die Packet Struktur irgendwo komplett released?