1. 분석 과정

1. APK 파일 구조체 파악
2. 구조체를 보기 위해 APK 파일 디컴파일
   - smali 코드로 변환
   - smali 코드를 java로 변경
   - APK > smali > java 이 과정을 알아야함
   - 원하는 smali 코드로 분석할지, java 코드로 변환해서 분석할지 선택
   - smali 코드는 난독화가 되어있으면 분석에 힘듬, java 코드로 분석 추천
3. 앱 동작과정 분석 (동적분석, 정적분석)
   - 참고로 사람마다 분석 스타일이 다름
4. 디컴파일이 완료되었으면, java 코드를 볼 수 있고, 소스코드 분석 포인트를 잡아야함
   - 이것도 분석 스타일이 다름
5. frida를 셋팅하여 후킹 준비
    - frida의 기능을 파악
    - 사용할 기능은 frida docs를 검색해서 기능을 직접 찾아야함
6. 후킹 환경 세팅
7. 실제 후킹 시도

 

2. APK 파일 구조체 파악

JEB Decompiler for Android를 다운로드 받아 실행하고, APK 파일을 업로드 후,
Manifest에서 Package 이름 확인, MAIN 액티비티의 이름 확인
 
Bytecode/계층구조 탭에서 해당 액티비티의 이름을 찾아가서 키보드의 Tab 버튼을 눌러 구조체 파악
 

3. frida 셋팅

pip install frida
pip install frida-tools
# frida 실행
frida -h
 
frida 서버 파일 다운로드
 
루팅 적용된 진단 폰 연결 후, 아래와 같이 입력 (루팅 과정 생략)
adb push frida-server-16.0.19 /data/local/tmp
 
ls -l 명령어 사용 시 권한이 666으로 되어 있는 것을 확인 (실행 권한이 없다는 뜻)
 
실행 권한 부여 후, frida-server 실행
chmod 777 frida-server-16.0.19
./frida-server-16.0.19 &
 
frida-server 작동 여부 확인
 
진단 폰 연결 후, adb shell을 실행하여 frida-server 실행
adb shell 'su -c /data/local/tmp/frida-server-16.0.19 &'
 
 

+ Recent posts