Selasa, 25 Agustus 2015

Reverse Engineering: Tipe Variabel 2

...


tipeVariabel2.c

#include <stdio.h>

extern int a, b;
extern int c;
extern float f;

int main(){
 int a, b;
 int c;
 float f;

 a = 10;
 b = 20;
 c = a + b;

 printf("Value of c: %d\n", c);

 f = 70.0/3.0;
 printf("Value of f: %f\n", f);

 return 0;
}


tipeData.asm

; => ASM
; Attributes: bp-based frame

; int __cdecl main(int argc, const char **argv, const char **envp)
public main
main proc near

var_10= dword ptr -10h
var_C= dword ptr -0Ch
var_8= dword ptr -8
var_4= dword ptr -4

push    rbp
mov     rbp, rsp
sub     rsp, 10h
mov     [rbp+var_10], 0Ah
mov     [rbp+var_C], 14h
mov     eax, [rbp+var_C]
mov     edx, [rbp+var_10]
add     eax, edx
mov     [rbp+var_8], eax
mov     eax, [rbp+var_8]
mov     esi, eax

mov     edi, offset format ; "Value of c: %d\n"
mov     eax, 0
call    _printf
mov     eax, cs:dword_400634
mov     [rbp+var_4], eax
movss   xmm0, [rbp+var_4]
cvtps2pd xmm0, xmm0
mov     edi, offset aValueOfFF ; "Value of f: %f\n"
mov     eax, 1
call    _printf
mov     eax, 0
leave
retn
main endp

; => ASM 2 C
; Attributes: bp-based frame

; int __cdecl main(int argc, const char **argv, const char **envp)
public main
main proc near

var_10= dword ptr -10h
var_C= dword ptr -0Ch
var_8= dword ptr -8
var_4= dword ptr -4

; int main(){
push    rbp
mov     rbp, rsp
sub     rsp, 10h ; 10

; a = 16
mov     [rbp+var_10], 0Ah ; 16
; b = 20
mov     [rbp+var_C], 14h ; 20

; c = a + b
mov     eax, [rbp+var_C]
mov     edx, [rbp+var_10]
add     eax, edx
mov     [rbp+var_8], eax

; printf("Value of c: %d\n", c)
mov     eax, [rbp+var_8]
mov     esi, eax
mov     edi, offset format ; "Value of c: %d\n"
mov     eax, 0
call    _printf

; f = 
mov     eax, cs:dword_400634 ; extern f
mov     [rbp+var_4], eax

; 
movss   xmm0, [rbp+var_4] ; ?
cvtps2pd xmm0, xmm0 ; ?

; print("Value of f: %f\n", f) 
mov     edi, offset aValueOfFF ; "Value of f: %f\n"
mov     eax, 1
call    _printf

; return 0
mov     eax, 0
leave
retn
main endp

Tidak ada komentar:

Posting Komentar