코드엔진 베이직 4번 : 디버거를 탐지하는 함수의 이름은?
문제에서 프로그램이 디버거를 탐지한다 했으니 디버거를 사용하지 않고 문제를 실행시켜봅시다.
정상이라 뜹니다. 그럼 디버거를 사용해 실행시켜봅시다.
디버깅 당함이라 뜨네요!
베이직 문제 3번 풀이에서 썼던 올리디버거의 기능을 씁시다.
[마우스 우클릭]->[search for]->[All intermodular calls]
들어가면 이 프로그램에서 사용한 함수만 나열됩니다.
제일 처음 쓰인 함수부터 보니
IsDebuggerPresent 라는 함수가 있네요. 이름부터 수상하니 더블클릭해서 들어가봅니다.
우선 이 함수의 역할을 알기 위해 bp를 걸고 실행시켜봅시다.
이 함수를 지나기 전 EAX의 값은 0 이지만
지난 후 EAX의 값은 1이 됩니다. 계속 실행시켜보면,
콘솔창에는 디버깅 당함이라 뜨고, EAX의 값은 0으로 초기화되어있고 다시 IsDebuggerPresent 함수로 돌아오는 모습을 볼 수 있습니다.
IsDebuggerPresent 함수의 반환값을 0으로 바꾸고 다시 진행시켜보면,
짠! 정상이라 뜨네요.
이로써 답을 구했으니 확인을 해봐야겠죠?
다음 문제가 나왔네요 XD
모두 화이팅하세요!
'Security > CodeEngn' 카테고리의 다른 글
CodeEngn_Basic_06 (0) | 2018.08.12 |
---|---|
CodeEngn_Basic_05 (0) | 2018.08.09 |
CodeEngn_Basic_03 (0) | 2018.08.04 |
CodeEngn_Basic_02 (0) | 2018.08.03 |
CodeEngn_basic_01 (2) | 2018.08.02 |