본문 바로가기

[CodeEngn] Basic RCE L04 - 보고서 본문

wargame/CodeEngn

[CodeEngn] Basic RCE L04 - 보고서

Seongjun_You 2022. 3. 24. 20:19

 

 

 

프로그램을 가동하면 "정상"이라는 문구가 나오지만

디버거에 올리면 "디버깅 당함"라는 문구가 나온다.

즉 안티 디버깅 기법이 들어가 있다.

어떠한 기술이 들어가 있는지와

우회 과정을 정리한다.

결론 부터 말하자면 함수 이름을 찾다 보면 답을 찾을 수 있다.

kernelbase.dll에 IsDebuggerPresent라는 함수가 있다.

이게 안티 디버깅이다.

 

해당 함수에 info 하여 bp를 걸고 실행했다;

IsDebuggerPresent는 해당 프로세스가 디버깅 중인지 여부를 PEB 구조체의 

디버깅 상태 값을 확인한다.

디버깅 중이면 1 아니면 0으로 설정된다.

 

사진과 같이 디버깅 중이므로 1이라는 값이 리턴된다.

해당 값을 0으로 바꾸어 준다.

 

 

참조하는 값을 0으로 있는 위치로 바꾸어 주고 프로그램을 실행하면 

정상이라는 문구가 나오므로 안티 디버깅 우회를 성공했다.

Comments