Hi,
habe bis jetzt mit statischen Adressen so ein paar Trainer geschrieben, wollte mich jetzt mal an DMA wagen (Testspiel Guild Wars).
Habe einen WriteBP auf die Adresse gesetzt und es breakt hier:
0078D143 897E 10 MOV DWORD PTR DS:[ESI+10],EDI
Dann muss ich schauen, wo ESI aufgefüllt wird, müsste daher nach einer MOV ESI... Instruktion suchen denke ich.
40 Zeilen später oder so:
0078D0DE 8BF1 MOV ESI,ECX
ESI wird durch ECX gefüllt. Also nach einer MOV ECX Instruktion suchen.
100 Zeilen später:
0078CF4F 8B0D E466D300 MOV ECX,DWORD PTR DS:[D366E4]
Eigentlich ein Treffer würde ich sagen.
Darüber steht:
0078CF45 B9 5067D300 MOV ECX,Gw.00D36750
Das versteh ich leider nicht, weiss daher auch nicht obs es überhaupt von belang ist.
Und noch was: Bevor ECX statisch gefüllt wird:
0078CF77 8911 MOV DWORD PTR DS:[ECX],EDX
Aber soweit ich mich mit ASM auskenne (limes 0) wird hier nur ein neues Datenwort gefüllt. Allerdings heist das ja, Quelle rechts in Ziel links. Also EDX in ECX. Müsste ich dann nochmal EDX suchen? Eigentlich ja nicht, sonst müsste das ja MOV ECX, EDX heissen. Hab ich das richtig verstanden so?
Für den Fall, dass ich mich richtig zur statischen Füllung vorgearbeitet habe, müsste ich theoretisch den Wert an D366E4 auslesen. Dann käme MOV ESI,ECX. Dann ist ESI doch == ECX und somit läuft der ganze Zauber auf [Wert von D366E4(==ESI)+0x10] hinaus.
Soweit korrekt oder alles Käse :>
Grüße
habe bis jetzt mit statischen Adressen so ein paar Trainer geschrieben, wollte mich jetzt mal an DMA wagen (Testspiel Guild Wars).
Habe einen WriteBP auf die Adresse gesetzt und es breakt hier:
0078D143 897E 10 MOV DWORD PTR DS:[ESI+10],EDI
Dann muss ich schauen, wo ESI aufgefüllt wird, müsste daher nach einer MOV ESI... Instruktion suchen denke ich.
40 Zeilen später oder so:
0078D0DE 8BF1 MOV ESI,ECX
ESI wird durch ECX gefüllt. Also nach einer MOV ECX Instruktion suchen.
100 Zeilen später:
0078CF4F 8B0D E466D300 MOV ECX,DWORD PTR DS:[D366E4]
Eigentlich ein Treffer würde ich sagen.
Darüber steht:
0078CF45 B9 5067D300 MOV ECX,Gw.00D36750
Das versteh ich leider nicht, weiss daher auch nicht obs es überhaupt von belang ist.
Und noch was: Bevor ECX statisch gefüllt wird:
0078CF77 8911 MOV DWORD PTR DS:[ECX],EDX
Aber soweit ich mich mit ASM auskenne (limes 0) wird hier nur ein neues Datenwort gefüllt. Allerdings heist das ja, Quelle rechts in Ziel links. Also EDX in ECX. Müsste ich dann nochmal EDX suchen? Eigentlich ja nicht, sonst müsste das ja MOV ECX, EDX heissen. Hab ich das richtig verstanden so?
Für den Fall, dass ich mich richtig zur statischen Füllung vorgearbeitet habe, müsste ich theoretisch den Wert an D366E4 auslesen. Dann käme MOV ESI,ECX. Dann ist ESI doch == ECX und somit läuft der ganze Zauber auf [Wert von D366E4(==ESI)+0x10] hinaus.
Soweit korrekt oder alles Käse :>
Grüße