본문으로 바로가기

ASM to C with IDA - 033

category Reversing/ASM to C 2018. 7. 4. 09:23

C300_033



C300_소스코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h> 
 
#define    ASCII_BEGIN        0
#define ASCII_END        255
 
main()
{
    int i;
 
    for (i = ASCII_BEGIN; i <= ASCII_END; i++)
    {        
        printf("ASCII 코드 (%3d), 문자 = '%c' \n", i, i);        
    }
}
 
cs



IDA - Layout Graph





IDA - Text View



본 소스를 보면 매크로 함수가 사용되었지만, disassembly 단에서는 찾아볼 수 없다.

왜냐하면 매크로함수는 C 컴파일 과정 중 전처리 단계에서 먼저 처리되기 때문에,

우리가 보는 assembly 단에서는 찾아볼 수 없고, 처리된 후, 각 숫자만 보일 뿐이다.


pseudo code - 의사코드



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h> 
 
main()
{
    int i;
    i=0;
 
    for(int i=0; i<255; i++){
        ecx = i;
        edx = i;
        printf(_Format, edx, ecx);        
    }
    eax = 0 ;
}
 
cs



pseudo code - 최종 의사코드



1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h> 
 
main()
{
    int i;
    i=0;
 
    for(int i=0; i<255; i++){
        printf(_Format, i, i);                
    }
    return 0;
}
 
cs





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

ASM to C with IDA - 035  (0) 2018.07.05
ASM to C with IDA - 034  (0) 2018.07.04
ASM to C with IDA- 032  (0) 2018.07.04
ASM to C with IDA - 031  (0) 2018.07.03
ASM to C with IDA - 030  (0) 2018.07.03