상세 컨텐츠

본문 제목

[Write-up] CodeEngn Basic RCE 4

Reversing Write-Up/02.CodeEngn Basic

by RACC8N 2020. 1. 16. 17:11

본문

문제 : 이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가

 

풀이 :

 

프로그램을 실행시켰을때의 모습이다.

 

디버거를 실행시켜보자.

 

디버거를 붙인 상태에는 다음과 같이 디버깅당함 이라고 뜬다.

 

어떤 로직으로 디버거를 판단하는지 확인해 보자.

 

IsDebuggerPresent라는 함수가 있다.

 

디버거에서 돌아가면 0이 아니고, 디버거가 안돌아가면 0을 리턴한다.

 

함수 호출 이후 리턴값이 1임을 알 수 있고,

 

test eax, eax 이후 je 분기문이 있다. 이 부분이 '정상'과 '디버깅 당함'의 분기문 일 것이다.

 

EAX가 1인 상태에서 test eax, eax을 하므로 ZF flag는 0이다. 따라서 printf 디버깅 당함이 된다.

 

EAX 값을 0으로 바꿔보겠다.

 

안티 디버깅을 우회했다.

'Reversing Write-Up > 02.CodeEngn Basic' 카테고리의 다른 글

[Write-up] CodeEngn Basic RCE 6  (0) 2020.01.16
[Write-up] CodeEngn Basic RCE 5  (0) 2020.01.16
[Write-up] CodeEngn Basic RCE 3  (0) 2020.01.15
[Write-up] CodeEngn Basic RCE 2  (0) 2020.01.15
[Write-up] CodeEngn Basic RCE 1  (0) 2020.01.15

관련글 더보기

댓글 영역