i have the following assembly lines:
....
LEA EAX, DWORD PTR DS:[0x404212]
MOV DWORD PTR SS:[EBP-0x3CC], EAX
PUSH DWORD PTR SS:[EBP-0x3CC]
...
...
...
LEA EAX, DWORD PTR DS:[0x404213]
MOV DWORD PTR SS:[EBP-0x3D0], EAX
PUSH DWORD PTR SS:[EBP-0x3D0]
...
...
So, I asked myself how I can that piece of code translate into a higher language like C? Or a pseudo C language?
But, for the the two blocks I have the following:
UNKNOWNTYPE *eax_pointer_1; //points to 00404212
UNKNOWNTYPE *eax_pointer_2; //points to 00404213
In ollydbg, I see that at the address 00404212 there is the following line :
ADD BYTE PTR DS:[EAX], DH
and at the address 00404213, there is:
XOR BYTE PTR DS:[EAX], AL
So my question would be : Is that a correct transformation? Have you some ideas how I can the instructions at 00404212 and 00404213 make part of my transformation into a pseudo-C language?
UNKNOWNTYPE *
is a function pointer. To "make them part" of the entire code, convert the pointed-to instructions to a separate function as well.