본문 바로가기

해킹/리버스 엔지니어링

코드엔진 basic RCE L04 문제 풀이(안티디버거우회)

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

안녕하세요 오늘은 L04 문제를 풀어보겠습니다.





AFA7AD21.exe


이 문제를 풀어보기전 한가지 알아야 할 함수가 있습니다.


바로 IsDebuggerPresent  라는 함수인데요. 이 함수는 디버깅을 감지하면 EAX에 1을 정상이라면 0을 대입해줍니다. 즉 리턴값을 1 아니면 0으로 해준다는 소리죠.


실행 화면입니다.





그냥 실행해서 그런지 정상이라고만 출력하는군요. 그렇다면 올리디버거로 들어가 실행해보겠습니다.





흠 디버깅 당함이라 뜨는군요?   그럼 코드를 봐야할 것같지만.. 그냥 보면 딱히 큰 이득이 안떨어집니다.  그러니 저번처럼 Search for -> All intermodular calls 를 이용해서 사용된 함수만 훑어봅시다.




사용된 함수를 위에서부터 훑어보다 IsDebuggerPresent 라는 익숙한 함수가 보이시나요?


이 함수를 더블클릭해서 들어가봅시다.



(그림이 안보여도 그닥 상관은 없습니다.)


근데 가만히 생각해보니 그냥 EAX에 0을 반환해주기만 해도 안티디버깅이 먹통이 되겠군요?  MOV EAX, 0으로 바꿔보겠습니다.




 

이제 다시 디버거로 실행시켜보도록 하겠습니다.






네 다행히 실행되네요.  그러므로 이 프로그램에 사용된 안티 디버깅 함수를 알수있겠네요


읽어주셔서 감사합니다.

덧글은 글쓴이에게 큰 힘이 됩니다 ☆