-
[2020 ARGOS 교육] 안드로이드 앱 분석 환경 세팅(nox, adb, jadx, frida, IDA pro) 본문
[2020 ARGOS 교육] 안드로이드 앱 분석 환경 세팅(nox, adb, jadx, frida, IDA pro)
r99bbit 2020. 8. 9. 02:05본 글은 PC/태블릿 으로 보는 것을 권장드립니다.
0) 개요
이번 교육에서는 함수 호출, 메시지, 이벤트등을 가로채는 해킹 기술인 후킹(Hooking)을 이용하여 어플리케이션의 동작 흐름을 마음대로 제어하는 기법에 대해 중점적으로 다룰 것입니다. 이전의 시스템 해킹, 웹 해킹 교육과는 비교적 다뤄야 하는 도구들이 많고 환경 설정이 복잡하여 교육 전에 미리 환경을 구성하고 오셔야 합니다. 해당 가이드에서 설치할 도구들은 아래와 같습니다.
도구 이름 | 설명 | 비고 |
NOX Player | 실제 안드로이드 운영체제를 탑재한 기기를 이용하면 좋겠지만, 아이폰을 사용하고 계신 분들도 있기 때문에 PC 상에서 안드로이드 운영체제를 사용할 수 있는 에뮬레이터 프로그램을 사용합니다. | 교육자도 아이폰 |
ADB | 안드로이드 에뮬레이터와 효율적으로 상호작용 하기 위해 설치합니다. | |
JADX | 어플리케이션 코드 분석을 도와주는 도구입니다. | |
frida | 후킹(Hooking)을 하게 해주는 도구입니다(javascript 기반 공격 코드) | |
IDA Pro | 교육의 심화 과정으로 JNI(Java Native Interface)를 분석하고 게임을 해킹하기 위하여 설치합니다. |
1) NOX Player 설치
1. NoxPlayer 공식 홈페이지(www.bignox.com/)로 이동하여 최신 버전 NoxPlayer Installer 다운로드
2. 다운로드 받은 Installer 실행 / 바로 설치
3. Nox 앱 플레이어 실행
4. 디버그 모드 진입
tools > 설정
태블릿 정보 > 빌드 번호 연타하여 개발자 모드 진입
개발자 옵션
USB 디버깅 켜기
2) ADB 설치
1. 안드로이드 SDK 홈페이지(https://developer.android.com/studio/releases/platform-tools) 이동하여 본인 PC 환경에 알맞는 SDK 설치
2. 설치된 파일 확인 및 기억하기 쉬운 경로에 배치
3. 윈도우 검색 > 고급 시스템 설정
4. 고급 > 환경변수 진입
5. 시스템 변수에 ADB 설치 경로 추가(변수 값에 2번에서 설치한 ADB 경로 입력)
* (추가) 만약 adb가 connect 되지 않는 현상이 발생할 경우 ADB 경로가 아닌, Nox 설치 경로를 입력
-> 기본 경로는 C:\Program Files (x86)\Nox\bin\
6. Path에 ADB 변수 추가
7. cmd에 adb라고 입력했을 때 다음과 같이 나오면 설치가 완료된 것임(환경변수 창을 닫고, cmd를 껏다 켜야 적용이 됨.)
3) JADX 설치
1. 설치 링크(https://github.com/skylot/jadx/releases/download/v1.1.0/jadx-1.1.0.zip)에서 다운로드 받고 압축 해제(윈도우용)
4) frida 설치
python 설치가 선행 되어야함 -> https://www.python.org/
1. 아래와 같이 순서대로 cmd에 입력(관리자 모드)
pip install --upgrade pip
pip install wheel
pip install frida
pip install frida-tools
2. frida-server 다운로드 후 압축 해제(https://github.com/frida/frida/releases/download/12.11.7/frida-server-12.11.7-android-x86.xz)
3. frida server가 압축 해제된 폴더에서 cmd 실행(폴더에 들어가서 경로 검색 창에 cmd 입력)
4. Nox Player 관리자 모드로 실행한 후 adb connect
"adb connect 127.0.0.1:62001" 입력
5. frida-server를 Nox Player에 넣은 후 실행하기
adb push [frida-server 경로] /data/local/tmp/를 입력하면 되는데, 우리의 경우 아래와 같이 쓰면 될것이다.
adb push ./frida-server-12.11.7-android-x86 /data/local/tmp/
- 이후 frida-server의 권한을 설정하고 실행해준다. 아래와 같이 입력
- adb shell
- cd /data/local/tmp/
- chmod 777 frida-server-12.11.7-android-x86
- ./frida-server-12.11.7-android-x86 &
C:\Users\miny7\Desktop\frida-server-12.11.7-android-x86> adb shell
root@shamu:/ # cd /data/local/tmp/
root@shamu:/data/local/tmp # ls
android_server
frida-server-12.11.7-android-x86
re.frida.server
root@shamu:/data/local/tmp #
root@shamu:/data/local/tmp #
root@shamu:/data/local/tmp # chmod 777 frida-server-12.11.7-android-x86
root@shamu:/data/local/tmp # ./frida-server-12.11.7-android-x86 &
6. cmd 창 하나 더 실행한 뒤 frida 실행 확인
- frida-ps -U를 입력했을 때 결과가 나오면 정상적으로 결과가 나오면 설치가 완료된 것이다.
C:\Users\miny7>frida-ps -U
PID Name
---- ------------------------------------
1494 adbd
2054 android.process.acore
2331 android.process.media
1929 com.android.inputservice
2498 com.android.keychain
2546 com.android.managedprovisioning
2587 com.android.onetimeinitializer
1961 com.android.phone
2521 com.android.providers.calendar
1889 com.android.systemui
2657 com.android.vending
2916 com.android.vending:download_service
2876 com.facebook.lite
2386 com.facebook.lite:fbns
2989 com.facebook.lite:fwkstartlog
2168 com.google.android.gms
2311 com.google.android.gms.persistent
3252 com.google.android.gms.ui
3115 com.google.android.gms.unstable
3011 com.google.android.play.games
2250 com.google.process.gapps
3419 com.sds.squaremessenger
2000 com.vphone.launcher
1504 debuggerd
2157 dhcpcd
1511 drmserver
3822 frida-server-12.11.7-android-x86
1493 healthd
1 init
1513 installd
1514 keystore
1495 lmkd
3824 logcat
1492 logd
1512 mediaserver
1503 netd
1510 rild
1439 sdcard
1496 servicemanager
2744 su
1499 surfaceflinger
1799 system_server
1037 ueventd
1497 vold
2081 wpa_supplicant
1516 zygote
C:\Users\miny7>
5) IDA Pro 설치
2. 압축 해제
3. 설치 파일 실행 / 설치 진행
4. password는 SN.txt에 적혀있는 내용 복사 붙여넣기
5. 설치 계속 진행한 후 IDA 실행 확인
끝.
'Basic > android' 카테고리의 다른 글
[Android] Frida Scripts (1) | 2020.07.22 |
---|