CodeEngn #4

jammy0903·2024년 9월 11일

write-up

목록 보기
4/4
post-thumbnail

그냥 실행하면 정상정상정상

그런데 x32DBG위에 올려놓으면

어디서 함수가 시작되는지를 알아보자

이곳이었다.
그래서, 다시 시작한후 이 함수 안으로 들어가기로 했다.
함수의 내용은 이러한데,,,, 와 함수이름 저기보이네

Q: Call dword ptr ds:['<IsDebuggerPresent'>] 뒤에는 당연히 return 값을 저장하는 EAX를 비교하는 cmp eax, [] 가 나올줄 알았는데 esi 와 esp를 비교한다. 이유가 뭘까?

A. cmp esi, esp를 사용하여 함수 호출 전후로 스택 포인터를 확인하는 이유:

스택 무결성 검사: 함수 호출 후 스택이 올바르게 정리되었는지 확인합니다.
버퍼 오버플로우 감지: 스택이 예상치 못하게 변경되었는지 확인할 수 있습니다.
안티-디버깅 기법: 일부 디버거는 스택을 변경할 수 있어, 이를 감지하는 데 사용될 수 있습니다.


flag는 찾았지만, 우회하는 방법은 je를 jmp로 바꿔서 바로 정상으로 넘어가는것이다.

0개의 댓글