C300_029
C300_소스코드
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 = 5; switch (i) { case 1: printf("i는 1입니다. "); break; case 2: printf("i는 2입니다. "); break; default: printf("i는 %d입니다.", i); break; } } | cs |
IDA - Layout Graph
IDA - Text View
jz(je) : 0일때, 같을 때 jump 한다.
if 충접으로 되어있는데 자세히 보면 switch 문과 거의 흡사하다.
따라서 보기 쉽게 switch문으로 바꾸어 의사코드를 작성했다.
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 var_4; int i; i = 5; eax = i; var_4 = eax; if(var_4 == 1) printf(_Format); else{ if(var_4) == 2){ printf(aI); }else{ ecx = i; printf(aI_0, i); } } 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 | #include <stdio.h> main() { int var_4; int i; i = 5; switch(i) { case 1: printf(_Format); break; case 2: printf(aI); break; default: printf(aI_0, i); break; } return 0; } | cs |
'Reversing > ASM to C' 카테고리의 다른 글
ASM to C with IDA - 031 (0) | 2018.07.03 |
---|---|
ASM to C with IDA - 030 (0) | 2018.07.03 |
ASM to C with IDA - 028 (0) | 2018.06.01 |
ASM to C with IDA - 027 (0) | 2018.06.01 |
ASM to C with IDA - 026 (0) | 2018.06.01 |