C300_046
C300_소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <stdio.h> #include <conio.h> #define ENTER 13 void main(void) { int ch; int i = 0; printf("아스키 코드로 변환할 키를 누르세요... \n"); printf("Enter 키를 누르면 프로그램은 종료됩니다. \n"); do { ch = getch(); printf("(%d), 문자 : (%c) , 아스키 코드 = (%d) \n", i++, ch, ch); } while (ch != ENTER); } | cs |
IDA - Layout Graph
IDA - Text View
딱히 특이점은 없었다.
다만 먼저 입력을 받고 비교를 통한 반복이 계속되므로 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 26 27 28 29 30 31 | #include <stdio.h> void main(void) { int i; int var_8; int var_C; i = 0; printf(_Foramt); printf(aEnter); do { var_8 = getch(); eax = i; var_C = eax; ecx = var_8; edx = var_8; eax = var_C; printf(aD, eax, edx, ecx); ecx = i; ecx = ecx + 1; i = ecx; }while(var_8 != 13); 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 21 22 23 24 25 | #include <stdio.h> void main(void) { int i; int var_8; int var_C; i = 0; printf(_Foramt); printf(aEnter); do { var_8 = getch(); var_C = i; printf(aD, var_C, var_8, var_8); var_C++; }while(var_8 != 13); return 0; } | cs |
'Reversing > ASM to C' 카테고리의 다른 글
ASM to C with IDA - 048 (0) | 2018.07.10 |
---|---|
ASM to C with IDA - 047 (0) | 2018.07.10 |
ASM to C with IDA - 045 (0) | 2018.07.09 |
ASM to C with IDA - 044 (0) | 2018.07.09 |
ASM to C with IDA - 043 (0) | 2018.07.08 |