External FindPattern liefert -1

09/16/2012 15:39 -DarkPuma-#1
Hallo E*PVP

Das Programm liefert immer -1 zurück. Die Sig stimmt (per DLL geht es),
aber extern will es nicht ganz. Kann mir einer erklären warum er fehlschlägt?
Habe es auch mit SetDebugPrivileges() probiert.
Danke im vorraus. Gruß, Tom

09/16/2012 18:12 MrSm!th#2
1. ReadProcessMemory für jedes einzelne Byte? Das wird lahm. Mach es am besten wie CheatEngine und kopiere dir einen Block Speicher in deinen eigenen Address Space und suche darin dann lokal.

2.
Quote:
for ( DWORD dwCurrentAddress = 0x401000; dwCurrentAddress < 0x196000; dwCurrentAddress++ )
Sicher, dass du das willst?
0x196000 soll doch sicher die Größe/Länge sein und nicht die End-Adresse.
Du machst aber mit dieser For-Schleife genau das: Du fängst bei 0x401000 an und erhöhst den wert solange, bis er 0x196000 erreicht. Wenn du mal genau hinschaust, wirst du sehen, dass der erste Wert größer als der zweite ist, d.h. die For-Schleife wird nicht einmal ausgeführt, weil die Bedingung sofort falsch ist. Daher der return Wert -1.
09/16/2012 21:01 -DarkPuma-#3
So hab das Problem jetzt gelöst. Wie du schon sagtest lag es an der For-Schleife!
Sie soll ich das lokal suchen bzw. wie meinst du das mit einem Block "Speicher"?
Nach welchen Funktionen sollte ich dann suchen?
Danke, Tom.
09/16/2012 21:50 Dr. Coxxy#4
wie ich dir schon auf osh auf eine etwas unfreundlichere art gesagt habe, lern coden und hör auf blind zu copypasten.

byteweise mit rpm auszulesen ist einfach nur hirnriss.

Smith hat dir alles schon gesagt, was ein logisch denkender mensch (was du offensichtlich nicht bist) braucht um das ganze zu optimieren.

lies entweder pageweise oder direkt die ganze codesection aus, und scan die dann in deinem lokalen memory.