Kezdőoldal » Számítástechnika » Programozás » [C++] Dll-t írok ami egy...

[C++] Dll-t írok ami egy DetourFunctionnal egy memóriacímre rákapcsolódik és a memóriacím (funkció) argumentjeivel dolgozom a dll-ben. (Többi lent) Valami ötlet?

Figyelt kérdés

IDA Pro-val nézegetem és a funkcióban van loggolás és ott is leloggolja az Integer változót de ott rendesen (0,1,2,3,4, . ). Viszont amikor én akarom kivenni akkor egy 6-7 karakteres számot ad.


Amit a log ad vissza:24403392;text

Amit kéne(azaz amit a funkcióban loggol):12;text


C++ kód:

unsigned long v8 = a1; //a1 -> a bizonyos argument

sprintf(buf, "%d;%s\n", v8, "text");

myLog(buf);

(...)


Assemblyben ez található(Pseudo code):

v8 = *(_DWORD *)a1; //lehet ezzel a _DWORD-al van valami..

//A köv sor a loggolás.

sub_123ABC("%d;%s", v8, a4); //a4 -> "text"

(...)


Köszönöm a segítséget előre is.



2012. máj. 9. 13:37
 1/4 anonim ***** válasza:

Gondolom az a probléma, hogy a1 egy mutató, és te a memóriacímet iratod ki, amire mutat.

Ha megnézed a pszeudokódban (ami ugye csak lopott (netán vett?!) IDA-ban van, ha jól tudom), ott a typecast előtt a csillagocska, ami azt jelenti, hogy a mutató által mutatott hely értékét veszi.

Tehát a megoldás:

unsigned long v8 = *a1;



>ma 13:37

nice

2012. máj. 9. 21:56
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

Köszi a választ, de a VC++ hibát ír a megoldásodra mivel az a1-nek pointernek kéne lennie.

("IntelliSense: operand of '*' must be a pointer")


int MY_SUBF_502820(int a1, int a2, int a3, char *a4)

{

unsigned long v8 = *a1;

(...)

2012. máj. 10. 14:54
 3/4 anonim ***** válasza:

Akkor

unsigned long v8 = *(int *)a1;

2012. máj. 10. 15:18
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:

Már jó és köszi a segítséget :)

Így:

int MY_SUBF_502820(int *a1, int a2, int a3, char *a4)

{

unsigned long v8 = *a1;

2012. máj. 10. 16:31

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!