Why should I know this?

Android - 안티디버깅 우회법 본문

Knowledge/Android

Android - 안티디버깅 우회법

die4taoam 2018. 3. 20. 15:27


안드로이드 혹은 리눅스에서 디버깅을 탐지하는 방법 중에 TracerPid를 읽는 방법이 있는데, 이것은 커널 코드를 수정하여 우회할 수 있다.(참고 : https://die4taoam.tistory.com/15) 다른 방법으로 Shared Object를 injection하여 (참고 : https://die4taoam.tistory.com/11) API를 hooking하는 방법도 있다.


Android에서 안티디버깅을 위한 쉬운 트릭으로 현재 프로세스에서 fork를 한 뒤에 프로세스의 상태 변화를 모니터링 하는 방법과 그것에 추가로 ptrace의 PTRACE_TRACEME 를 사용하여 디버거의 attach를 미연에 방지하는 방법이 있다. 이 두 방식 모두 굉장히 쉽게 우회가 가능하다.



방법은 간단한데,

-. shared object를 injection하여 ptrace를 후킹하여 마치 ptrace attach 된 것처럼 조작한다.

-. shared object에서 백그라운드 작업을 만들어 process의 상태 변화를 막는다.


이것으로 간단히 안티디버깅 우회 가능하다.

N사, I사의 게임 보안 솔루션에 테스트 해봤다...



Comments