카테고리 없음

CodeEngn_Basic RCE L04

O'bin 2022. 9. 25. 15:22

 

문제파일 실행 시 1초정도마다 정상 문자열이 출력된다

 

 

Immunity Debugger로 실행했더니 디버깅 당했다는 메시지가 출력된다.

 

 

처음 실행하면 오른쪽 실행 창과 같이 아무 문자열도 출력되지 않는다.

디버거를 탐지하는 프로그램을 찾기 위해 어떤 명령어가 실행되었을 때부터 탐지 결과가 출력되는지 확인하기 한줄씩 실행(f8)하며 찾는다

 

 

 

한줄씩 실행하다 보면 위의 선택된 명령이 실행되는 순간 디버깅 당함이 출력되기 시작한다.

해당 명령에 breakpoint(f2)를 걸고 프로그램 재시작 후 f9를 눌러 break point까지 내려오고, f7을 눌러 해당 함수 안으로 들어가본다.

 

 

 

 

함수 내부로 진입한 상황. 여기서도 실행창에서 아직 아무것도 출력되지 않았다. 이 함수도 특정 지점까지 진행되어야 실행창에 디버깅 여부가 출력되는 것이다. 특정 지점을 찾기 위해 다시 한줄씩 실행해보았다.

 

 

 

 

IsDebuggerPresent 함수가 보인다. 이 함수가 디버깅 여부를 판별하는 것으로 예상되어 확인했더니 정답이었다!

 

 

 

 

 

 

call 명령이 실행되는 순간 디버깅 여부가 출력되는 것을 알 수 있었다.

 

 

그 안으로 진입 후 또 출력이 시작되는 지점 찾음