darkelf1 해커스쿨 L.O.B level 7 [darkelf] darkelf 로그인 후 파일을 확인한다. 코드 파일을 확인한다. 힌트와 추가된 부분까지만 보겠다. 추가된 부분을 분석한다. argv[0]이 77이 아니면 if 문을 실행한다. 코드는 아주 간단하다. 지금까지 argv[1], argv[2]를 사용해서 argv[0]이 어떤 것인지는 알 순 있지만 어떻게 해야 할지 고민이 많아진다. gdb로 메모리 분석한다. 이때, 추가된 부분만 가져오겠다. level 6 [wolfman]에서 배운 어셈블리 언어의 if 문의 분석 방법을 통해 분석한다. strlen 함수를 부르고 cmp로 "%eax, 77"을 비교한다. 여기서 %eax 레지스터에는 argv[0]이 들어있고 77과 비교한다. 코드에서는 "!=(JNE)"인데 대우 명제를 취해 "==(JE)"를 사용해 argv[.. 2020. 5. 28. 이전 1 다음