C300_028
C300_소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <stdio.h> main() { int i; int j; for (i = 1; i <= 9; i++) { for (j = 1; j <= 9; j++) { printf("%d * %d = %2d \n", i, j, i * j); } } } | cs |
IDA - Layout Graph
IDA - Text View
for문과 while문이 정확히 assembly로 구분되지 않는다.
하지만 초기화, 조건, 조건 탈출을 위한 연산 형태로 반복되기 때문에 for문으로 예측하고 의사코드를 작성 하였다.
pseudo code - 의사 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <stdio.h> main() { int j; int i; for(i = 1; i < 9; i++){ for(j = 1; j < 9; j++){ edx = i; edx = edx * j; eax = j ecx = i; printf(_Format, ecx, eax, edx); } } eax = 0; } | cs |
pseudo code - 최종 의사코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <stdio.h> main() { int j; int i; for(i = 1; i < 9; i++){ for(j = 1; j < 9; j++){ printf(_Format, i, j, i*j); } } eax = 0; } | cs |
'Reversing > ASM to C' 카테고리의 다른 글
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 - 027 (0) | 2018.06.01 |
ASM to C with IDA - 026 (0) | 2018.06.01 |
ASM to C with IDA - 025 (0) | 2018.05.31 |