C300_005
C300_소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <stdio.h> main() { int i; int hap = 0; for (i = 1; i <= 10; i = i + 1) { hap = hap + i; } printf("1부터 10까지의 합 : %d", hap); } | cs |
IDA - Layout Graph
IDA - Text View
IDA - Layout Graph를 보고 위 소스는 반복하고 있다는 느낌을 한눈에 받을 수 있다.
for, while 둘 중 하나를 사용했다는 느낌을 얻을 수 있다.
반복문을 탈출하기 전까지 False인 빨간색 선을 따라 실행하게 되고
반복물을 탈출하고 나서 True인 초록색 선을 따라 실행한다.
jg(jump if greater) : 첫번째 operand가 두번째 operand보다 크면 점프한다. (반복문 탈출)
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() { hap = 0; i = 1; for(i; i<10; ;){ ecx = hap; ecx = ecx + i; hap = ecx; eax = i; eax = eax + i; i = eax } edx = hap; printf(_Format); eax = 0; } | cs |
pseudo code - 최종 의사 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> main() { int hap = 0; int i; for(i=1; i<10; i++){ hap = hap + i; } printf("1부터 10까지의 합: %d", hap); } | cs |
'Reversing > ASM to C' 카테고리의 다른 글
ASM to C with IDA - 007 (0) | 2018.05.25 |
---|---|
ASM to C with IDA - 006 (0) | 2018.05.25 |
ASM to C with IDA - 004 (1) | 2018.05.25 |
ASM to C with IDA - 003 (0) | 2018.05.24 |
ASM to C with IDA - 002 (0) | 2018.05.24 |