C300_058
C300_소스코드
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 32 | #include <stdio.h> #include <string.h> #define SKY "sky" void main(void) { char string[100]; char *ret; puts("문자열을 입력한 후 Enter키를 치세요 !"); puts("문자열 중에 sky가 포함되어 있으면, 프로그램은 종료됩니다."); do { gets(string); ret = strstr(string, SKY); if (ret == NULL) { puts("문자열 중에 sky가 없습니다."); } else { printf("%d 위치에서 sky 문자열을 찾았습니다. ", ret - string); break; } } while (1); } | cs |
IDA - Layout Graph
IDA - Text View
strstr 함수를 나타낸 코드이다.
strstr 함수는 문자열 안에서 문자열을 검색하는 함수이다.
검색된 문자열이 없으면 NULL을 반환한다.
검색된 문자열이 있으면 몇 문자 후에 검색되었는지를 반환한다.
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 *ret; char string[100]; puts(Str); puts(byte_403068); while(1){ eax = string; gets(eax); ecx = string; strstr(ecx, "sky"); ret = eax; if(ret == NULL) puts(byte_403048); else{ edx = ret; eax = string; edx = edx - string; printf(_Format, edx); break; } } 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 26 | #include <stdio.h> void main(void) { int *ret; char string[100]; puts(Str); puts(byte_403068); while(1){ gets(string); ret = strstr(string, "sky"); if(ret == NULL) puts(byte_403048); else{ printf(ret - string, edx); break; } } return 0; } | cs |
'Reversing > ASM to C' 카테고리의 다른 글
ASM to C with IDA - 060 (strcspn) (0) | 2018.07.17 |
---|---|
ASM to C with IDA - 059 (strchr) (0) | 2018.07.17 |
ASM to C with IDA - 057 (strlen) (0) | 2018.07.16 |
ASM to C with IDA - 056 (strcat) (0) | 2018.07.16 |
ASM to C with IDA - 055 (strncmp) (0) | 2018.07.12 |