Call berechnen
-
- [C++]
- DiNozzo
- Geschlossen
-
-
-
Was willst du da berechnen?
*( DWORD* )&Call[ 1 ] = Addr;MfG
-
Warum der 1te Index und nicht der 0te?
-
-
Weil der 0.te den 0xE8 Opcode beinhaltet
-
Die Chance ist gross, dass ich nicht verstehe was die Frage ist.
Aber wenn man mit einem Pointer auf ein Array zeigen möchte gibt mann doch meist den 0ten Index an? -
das gilt doch nicht zwingend....
z.b. wenn du nur nen bestimmten arrayslot haben willst zeigste nur auf den und nicht auf den anfang des arrays... -
-
Achso, dann habe ich die Frage nicht ganz verstanfen.
Ich dachte er möchte die Adresse des kompletten ArraysThy
-
Was willst du da berechnen?
*( DWORD* )&Call[ 1 ] = Addr;MfG
das hatte ich auch vorher ging aber net
gibts vllt noch ne andere lösung?
so siehts in olly aus
-
[code]BYTE Call[ 5 ] = { 0xE8,0x00, 0x00, 0x00, 0x00 };
DWORD Addr = 0x004010DD;
Du musst
0x004010DD-(&Call[0]+5)
rechnenDer call ist relativ zum nächsten Befehl nach dem call, deshalb (&Call[0]+5)
-
-
Die Adresse des Call-Arrays kannst du nicht nehmen.
DInozzo, ich nehme mal an dwDestAddr ist die Adresse, in du das Zeug kopieren möchtest:
*( DWORD* )&Call[ 1 ] = Addr - dwDestAddr + 5;MfG
PS: Es ist übrigens wesentlich hilfreicher, wenn du uns das nächste mal sagst, was du vorhast. Steigert meist die Qualität der Hilfe ungemein.
-
also die hilfe hier war ok
kann closed werden
-
#Closed.
-