본문으로 바로가기

ASM to C with IDA - 013

category Reversing/ASM to C 2018. 5. 27. 21:00

C300_013



C300_소스코드



1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h> 
 
#define HUNDRED_THOUSAND 100000L
 
const int j = 200000UL;
 
main() 
    //HUNDRED_THOUSAND = 100000;    // 에러 발생
    //j = 200000;    // 에러 발생
 
    printf"정수형 상수 HUNDRED_THOUSAND의 값은 %d \n", HUNDRED_THOUSAND );
    printf"정수형 상수 j의 값은 %d \n", j );
cs



IDA - Layout Graph





IDA - Text View





0x30D40 = 2000000이다.

.rdata는 const type이기 때문에 const int j = 2000000;으로 선언되어 있었음을 예상해 볼 수 있다.


L - long type

UL - unsigned long type



pseudo code - 의사코드



1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h> 
 
#define temp 1000000;
 
main() 
{
    printf(_Format, 1000000);
    
    eax = j;
    printf(byte_40304C, eax);
 
    eax=0;    
}    
cs




pseudo code - 최종 의사 코드



1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h> 
 
#define temp 1000000;
 
const j = 2000000;
 
main() 
{
    printf(_Format, 1000000);
    
    printf(byte_40304C, j);            
}    
cs


'Reversing > ASM to C' 카테고리의 다른 글

ASM to C with IDA - 015  (0) 2018.05.28
ASM to C with IDA - 014(??)  (0) 2018.05.28
ASM to C with IDA - 012  (0) 2018.05.27
ASM to C with IDA - 011  (0) 2018.05.27
ASM to C with IDA - 010(??)  (0) 2018.05.26