Estoy intentando obtener más información sobre el montaje y el desmontaje. Mi objetivo es modificar la forma en que se escribe una dirección específica utilizando un depurador (olly). Preferiblemente al incrementarlo por un número (20, 50, etc.) puedo identificar la dirección del número de punto flotante (en este caso ubicado en 33B7420C
).¿Qué hace FSTP DWORD PTR DS: [ESI + 1224]?
Cuando me puse un punto de interrupción en el acceso a la memoria escribir que me lleva a 00809B2E
que tiene la siguiente montaje:
FSTP DWORD PTR DS:[ESI+1224]
¿Qué es exactamente está haciendo en esta dirección? Sé que el registro FPU tiene el número que estoy buscando, pero no estoy seguro de lo que está haciendo esta dirección.
Lo más cerca que yo venga a googlear es: What does MOV EAX, DWORD PTR DS:[ESI] mean and what does it do?
Una copia de los registros muestra lo siguiente:
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
Cualquier ayuda se agradece, gracias!
usted debe conseguir una copia de la referencia de ensamblado X 86 para la explicación de las instrucciones particulares. Pedir SO cada vez que te encuentres con una instrucción no escala bien. –