일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Linux custom packer
- linux debugging
- anti debugging
- 안티디버깅
- Obfuscator
- custom packer
- v8 tracing
- LLVM 난독화
- tracerpid
- Injection
- 난독화
- LLVM
- pthread
- pinpoint
- so inject
- OSR
- tracing
- TLS
- android inject
- on stack replacement
- apm
- Android
- v8 optimizing
- Linux packer
- on-stack replacement
- thread local storage
- initial-exec
- uftrace
- linux thread
- LLVM Obfuscator
Archives
- Today
- Total
Why should I know this?
Android - 안티디버깅 우회법 본문
안드로이드 혹은 리눅스에서 디버깅을 탐지하는 방법 중에 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사의 게임 보안 솔루션에 테스트 해봤다...
'Knowledge > Android' 카테고리의 다른 글
Android에서 so파일 injection 하는 쉬운 방법 (0) | 2019.02.18 |
---|---|
Android 파헤치기 - Dex 메모리 로드 (0) | 2019.02.18 |
Android 파헤치기 - Launching Application (0) | 2019.02.18 |
Android 파헤치기 - ClassLoader (2) | 2019.02.18 |
Android 파헤치기 - 개요 (0) | 2019.02.18 |
Comments