[CodeEngn] Basic RCE L04 풀이 (IsDbuggerPresent)
- 리버싱/CodeEngn
- 2020. 2. 19. 11:51
반응형
CodeEngn Basic RCE L04 문제 확인
해당 프로그램에 걸려있는 안티디버깅 함수 이름을 찾아내는 문제이다.
CodeEngn Basic RCE L04 분석
IDA로 확인해보니, IsDbuggerPresent 함수가 임포트되어 있다.
호출하는 곳을 살펴보니 그냥 main에서 호출되고 있다.
IsDebuggerPresent 함수 호출 후에 'test eax eax'로 eax 반환값이 0인지 확인하고 있다. 0이라면 오른쪽 분기를 타게 된다.
IsDebuggerPresent 함수 호출 부분으로 가서 직접 반환값을 확인해보자. 호출 후 EAX를 확인하니 1이다. 위에서 0인 경우를 확인하고 있었으니 디버깅 중인 경우에는 반환값이 1이고 아닌 경우에는 0인 모양이다.
당연하게도 그냥 실행시켜보면 디버깅이 탐지되고 '디버깅 당함'이라는 문자열이 출력되었다. 그렇다면, 디버깅 탐지를 우회하기 위해 EAX를 0으로 바꿔보자.
다음과 같이 "정상"이라는 문자열을 확인할 수 있다.
'리버싱 > CodeEngn' 카테고리의 다른 글
[CodeEngn] Basic RCE L06 풀이 (0) | 2020.02.20 |
---|---|
[CodeEngn] Basic RCE L05 풀이 (UPX 패킹) (0) | 2020.02.19 |
[CodeEngn] Basic RCE L03 풀이 (0) | 2020.02.18 |
[CodeEngn] Basic RCE L02 풀이 (0) | 2020.02.18 |
[CodeEngn] Basic RCE L01 풀이 (0) | 2020.02.18 |