RCE
April 13th, 2011, 16:31
General information
IDA Pro 32-bit
Windows 7 64-bit
Visual Studio (old version)
Breakpoint address (The application succesfully breaks at this address):
Register at break:
If I understand correctly, esi points to the object and 18 is the offset of the member variable or function.
This is where esi takes me:
Where 54h is the byte representation of 0C0CA54 (double word).
0C0CA54 takes me to:
0C0CA54+18 takes me to:
sub_543D30:
My conclusion:
My question is if this is true, have I found the class and have I found the function?
If I did everything correctly, then my question is, how do I know where the class ends?
IDA Pro 32-bit
Windows 7 64-bit
Visual Studio (old version)
Breakpoint address (The application succesfully breaks at this address):
Code:
.text:00542DC7 movss xmm0, dword ptr [esi+18h]
Register at break:
Code:
esi = 15647ECC
If I understand correctly, esi points to the object and 18 is the offset of the member variable or function.
This is where esi takes me:
Code:
debug089:15647ECC db 54h
Where 54h is the byte representation of 0C0CA54 (double word).
0C0CA54 takes me to:
Code:
.rdata:00C0CA54 off_C0CA54 dd offset sub_543D50
0C0CA54+18 takes me to:
Code:
.rdata:00C0CA6C dd offset sub_543D30
sub_543D30:
Code:
void __thiscall sub_543D30(int this)
{
sub_5428D0(this, COERCE_INT(180.0));
}
My conclusion:
Code:
class foo { /* 0x0C0CA54 */
public:
float sub_5428D0(int i) {
/* do nothing for now */
}
void sub_543D30(){ /* 0x0C0CA54+18 */
sub_5428D0(COERCE_INT(180.0));
}
};
My question is if this is true, have I found the class and have I found the function?
If I did everything correctly, then my question is, how do I know where the class ends?