본문으로 바로가기

ASM to C with IDA - 031

category Reversing/ASM to C 2018. 7. 3. 14:05

C300_031



C300_소스코드



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
main()
{
    int i = 1;
    int hap = 0;
 
    do
    {
        hap = hap + i;
        i++;
    } while (i <= 10);
 
    printf("hap = %d ", hap);            
}
cs



IDA - Layout Graph




IDA - Text View





처음 먼저 코드를 실행한 후에 반복을 도는 루틴을 가지고 있다.

do ~ while 과 유사한 형태이기 때문에 do~while 반복문으로 의사 코드를 작성했다.



pseudo code - 의사코드



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
 
main()
{
    int i;
    int hap;
 
    i = 1;
    hap = 0;
 
    do{
    eax = hap
    eax = eax + i;
    hap = eax;
    ecx = i;
    ecx = ecx + 1;
    i = ecx;
    }
    while ( i < = 10 )
 
    edx = hap;
    printf(_Format, edx);            
 
    eax = 0;
}
cs



pseudo code - 최종 의사코드



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
main()
{
    int i;
    int hap;
 
    i = 1;
    hap = 0;
 
    do{
    hap = hap + i;
    i = i + 1;
    }
    while ( i < = 10 )
 
    printf(_Format, hap);            
 
    return 0;
}
cs


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

ASM to C with IDA - 033  (0) 2018.07.04
ASM to C with IDA- 032  (0) 2018.07.04
ASM to C with IDA - 030  (0) 2018.07.03
ASM to C with IDA - 029  (0) 2018.07.03
ASM to C with IDA - 028  (0) 2018.06.01