Sto cercando di saperne di più su assemblaggio e smontaggio. Il mio obiettivo è modificare il modo in cui un indirizzo specifico viene scritto usando un debugger (olly). Preferibilmente incrementandolo di un numero (20, 50, ecc.) Posso identificare l'indirizzo del numero in virgola mobile (in questo caso situato a 33B7420C
).Cosa fa FSTP DWORD PTR DS: [ESI + 1224]?
Quando ho creato un punto di interruzione di accesso alla memoria scrivere mi porta a 00809B2E
che ha la seguente assemblea:
FSTP DWORD PTR DS:[ESI+1224]
Che cosa sta facendo in questo indirizzo? So che il registro FPU ha il numero che sto cercando ma non sono sicuro di cosa stia facendo tutto questo indirizzo.
Il più vicino io vengo a googling è: What does MOV EAX, DWORD PTR DS:[ESI] mean and what does it do?
Una copia dei registri evidenzia quanto segue:
EAX 00000000
ECX 00A16E40 EZ.00A16E40
EDX FFFFFFFF
EBX 33B74578
ESP 0018FA90
EBP 00000000
ESI 33B72FE8
EDI 33B74578
EIP 00809B2E <EZ.Breakpoint for time>
C 0 ES 002B 32bit 0(FFFFFFFF)
P 0 CS 0023 32bit 0(FFFFFFFF)
A 0 SS 002B 32bit 0(FFFFFFFF)
Z 0 DS 002B 32bit 0(FFFFFFFF)
S 0 FS 0053 32bit 7EFDD000(FFF)
T 0 GS 002B 32bit 0(FFFFFFFF)
D 0
O 0 LastErr ERROR_SUCCESS (00000000)
EFL 00210202 (NO,NB,NE,A,NS,PO,GE,G)
ST0 valid 1150.0000000000000000
ST1 zero 0.0
ST2 zero 0.0
ST3 empty 64.951911926269531250
ST4 empty -13.250000000000000000
ST5 empty 64.951911926269531250
ST6 empty 64.951911926269531250
ST7 empty 0.0239995196461677551
3 2 1 0 E S P U O Z D I
FST 2927 Cond 0 0 0 1 Err 0 0 1 0 0 1 1 1 (LT)
FCW 027F Prec NEAR,53 Mask 1 1 1 1 1 1
Qualsiasi aiuto sarebbe apprezzato, grazie!
si dovrebbe ottenere una copia del riferimento assembly x86 per le spiegazioni di particolari istruzioni. Chiedere a SO ogni volta che incontri un'istruzione non si adatta bene. –