[RLS] Stucts für IDA (Analysieren der Game)

12/14/2012 23:50 .Alpha.#1
Heyho,

Da es ja ziemlich nervig sein kann die Game zu analysieren habe ich euch im Anhang meine Structs angehangen sie sind nicht komplett akkurat aber sie helfen schon immens.

HowTo Use:
  1. Shift+F1
  2. Rechtsklick Insert
  3. jeweils von der .h datei ne enum/struct kopieren und einfügen
  4. CHARACTER und CItem zuletzt
  5. In irgendeine Funktion gehen z.B PointChange und im Pseudocode auf die Variable a1 oder eine andere Instance der CHARACTER Klasse rechtsklicken
  6. Convert to struct
  7. CHARACTER nehmen (in diesem Fall)

sieht dann nachher so aus:
[Only registered and activated users can see links. Click Here To Register...]
12/15/2012 00:15 .Raicon#2
Öhm habe zwar keine Ahnung was du da Released hast bzw was es mir genau bringen könnte, da ich mich damit nicht auskenne aber trozdem Danke fürs Teilen.

LG Raicon
12/15/2012 00:37 Zymos#3
Damit erkennst du bzw. verstehst die Variablen besser.
12/15/2012 09:45 .Rebel#4
help a lot that litle info

very important info to fix some quest libs and etc

skills on db etc etc etc
12/15/2012 14:53 xCPx#5
is hübsch joa ^^

Aber ich finde mit der Zeit gewöhnt man sich an die Pseudo variablen ^^

(ich schreib selbst in py meist nurnoch a1 a2 etc xD)
also joa für neulinge toll aber ich hab mich bereits an pseudo variablen gewöhnt :)
12/15/2012 14:59 Invoice™#6
nette sache werde ich mal testen
12/15/2012 15:24 .Bloddy#7
Please in english you can?
12/15/2012 17:05 .Alpha.#8
Quote:
Originally Posted by xCPx View Post
is hübsch joa ^^

Aber ich finde mit der Zeit gewöhnt man sich an die Pseudo variablen ^^

(ich schreib selbst in py meist nurnoch a1 a2 etc xD)
also joa für neulinge toll aber ich hab mich bereits an pseudo variablen gewöhnt :)
Geht nicht um die Variablen Namen, sondern um die Namen der class member
Also wird aus
a1 + 1290
folgendes
a1->m_points.level
12/15/2012 18:09 xCPx#9
Quote:
Originally Posted by .Nova. View Post
Geht nicht um die Variablen Namen, sondern um die Namen der class member
Also wird aus
a1 + 1290
folgendes
a1->m_points.level
Ja was genaugenommen variablen sind.

die frage ist ob zb ne suche im ASM code nach m_points.level mit der klausel "finde alle" auch funktioniert.
Weil wenn nicht, ist es meines erachtens nach sinnlos oO
mach dann nur mehr arbeit wie es hilft.
12/15/2012 18:30 .Alpha.#10
Quote:
Originally Posted by xCPx View Post
Ja was genaugenommen variablen sind.

die frage ist ob zb ne suche im ASM code nach m_points.level mit der klausel "finde alle" auch funktioniert.
Weil wenn nicht, ist es meines erachtens nach sinnlos oO
mach dann nur mehr arbeit wie es hilft.
nein funktioniert nicht ... außer du wendest die structs im asm an
und es macht nicht mehr Arbeit
was sagt dir mehr
Code:
    HIDWORD(v4) = 100 * *(_DWORD *)(a1 + 1300);
    v38 = (v4 >> 32) / *(_DWORD *)(a1 + 2348);
    if ( v38 > 10 || *(_DWORD *)(a1 + 2352) > 4 )
    {
      if ( v38 > 20 || *(_DWORD *)(a1 + 2352) > 3 )
      {
        if ( v38 <= 40 && *(_DWORD *)(a1 + 2352) <= 2 )
        {
          *(_DWORD *)(a1 + 2352) = 3;
        }
        else
        {
          if ( v38 <= 60 && *(_DWORD *)(a1 + 2352) <= 1 )
          {
            *(_DWORD *)(a1 + 2352) = 2;
          }
          else
          {
            if ( v38 > 80 || *(_DWORD *)(a1 + 2352) > 0 )
              goto LABEL_2;
            *(_DWORD *)(a1 + 2352) = 1;
          }
        }
      }
oder
Code:
   HIDWORD(v4) = 100 * a1->m_points.hp;
    v38 = (v4 >> 32) / a1->m_pointsInstant.iMaxHP;
    if ( v38 > 10 || a1->m_pointsInstant.iMaxSP > 4 )
    {
      if ( v38 > 20 || a1->m_pointsInstant.iMaxSP > 3 )
      {
        if ( v38 <= 40 && a1->m_pointsInstant.iMaxSP <= 2 )
        {
          a1->m_pointsInstant.iMaxSP = 3;
        }
        else
        {
          if ( v38 <= 60 && a1->m_pointsInstant.iMaxSP <= 1 )
          {
            a1->m_pointsInstant.iMaxSP = 2;
          }
          else
          {
            if ( v38 > 80 || a1->m_pointsInstant.iMaxSP > 0 )
              goto LABEL_2;
            a1->m_pointsInstant.iMaxSP = 1;
          }
        }
      }
12/15/2012 18:31 xCPx#11
Quote:
Originally Posted by .Nova. View Post
nein funktioniert nicht ...
dann finde ich persönlich es unnütz.
Hilft vllt leuten die an einzelenn Funktionen arbeiten, aber wenn du mehr ändern willst, ist es einfach total unnütz.
12/15/2012 18:42 .Alpha.#12
Les den Beitrag am besten noch mal hab den bearbeitet.