안드로이드 구조 설명
https://cago-young.tistory.com/118
안드로이드 명령줄
https://developer.android.com/studio/command-line?hl=ko
분석 참조 블로그https://story.malwares.com/36https://hummingbird.tistory.com/search/android
스팸 전화번호 검색 사이트
분석 툴
Tool
- apkanalyer https://developer.android.com/studio/command-line/apkanalyzer?hl=ko
- appt2
https://developer.android.com/studio/command-line/aapt2?hl=ko
- apktool https://ibotpeaches.github.io/Apktool/install/
자바 코드확인
- dex2jar https://github.com/pxb1988/dex2jar
- jd-gui http://jd.benow.ca/
- Bytecode Viewer https://bytecodeviewer.com/
<정적 분석 도구>
ADB : Android Debug Bridge
- 안드로이드 단말기와 데스크톱 간에 통신을 할 때 필요한 도구.
apktool
- apk파일을 디컴파일 해서 소스코드 추출 (classes.dex)
- 위의 소스코드(classes.dex)를 수정할 수 있다.(patch) 이러한 코드를 다시 apk로 만드는 과정을 리패키징(patched apk file)이라함.
dex2jar
- dex file to jar
- dex(Dalvik Excutable의 약자) file을 jar(java Byte Code) file로 바꾸어 주는 역할을 함.
jd-gui
- jar file을 볼 수 있는 viewer역할
- 변수 타입과 변수 이름까지 똑같이 나오는 경우가 많음 -> 소스코드 보기 편해짐.
Eclipse ADP(Android Developer Toolkit)
- ide(통합 개발환경) 개발도구
<동적 분석 도구>
android-Logviewer / adb -d logcat / DDMS
- 로그 확인하는 툴
- 앱 분석(크래킹)에 용이한 정보 출력
Fiddler(프록시 툴)
프록시 툴임, 버프슈트(burp suite)도 가능
자동 분석 툴
- QARK
- MobSF
- APPUSE
- Insoeckage
- Androbus
디컴파일 툴
- jadx
APK 나 Dex 파일을 빠르게 디컴파일 해줌.
- jd-gui
변수 타입과 변수 이름까지 똑같이 나오는 경우가 많음 -> 소스코드 보기 편해짐.
- bytecodeviewer
자바, 안드로이드, DEX, jars 파일 등 소스코드 리버싱 분석 도구이다.
윈도우즈 환경에서 완벽하게 동작할 수 있도록 지원을 하고 있다.
안드로이드 APK파일을 디컴파일하여 바이트코드 형태와 클래스파일을 자바파일로 변환하여 소스파일로 복원하여 같이 보여준다. 이제까지 사용한 도구들의 기능을 모두 합한것과 같은 느낌이 들정도로 기능적으로나, 업무 효율적으로나 거대한 도구이다.
분석 속도가 다른 도구에 비해 매우 빠르다.
- JTAG
- ADB
Anaconda 명령어
1. 가상환경 만들기
$conda create -n [이름] python==[version] pip
이런 식으로 가상환경 name, 가상환경에서 쓰고자하는 python version을 지정, pip까지 한번에 깔아준다
2. 가상환경 활성화
$conda activate [이름]
activate을 통해 가상환경을 활성화하고, 성공하면 (base)가 아닌 (가상환경 이름)이 뜨게 된다.
$conda deactivate
deactivate명령어를 통해 현재 activate된 가상환경을 끌 수 있다.
3. 만들어진 가상환경 리스트 확인
$conda info --envs
만들어진 가상환경의 이름이 기억 안날 때가 많다...
이럴 때는 conda info로 env 이름 리스트를 확인할 수 있다.
4. 가상환경 삭제
$conda remove --name [이름] --all
가상환경을 만들다보면 필요없는 가상환경이 생기고 이를 삭제하고 싶을 때가 많다. 이 같이 --all 옵션을 통해 환경 내부 전체를 지울 수 있다.
5. 가상환경에 깔린 dependencies목록 확인
$conda list
acitivate된 가상환경에 깔려있는 dependencies list를 확인할 수 있다.
물론 local에서도 깔려있는 dependencies가 있다면 확인 가능하다.
android frida-dexdump
frida 메모리 덤프 https://kinghy7.tistory.com/1
nox root
python 설치
운영체제에 맞는 프리다 설치 (adb shell getprop ro.product.cpu.abi 로 애뮬레이터 운영체제 비트확인)
- https://github.com/frida/frida/releases
설치 파일 nox에 복사
# unzx frida-server-12.8.9-android-arm // 압축해제
# mv frida-server-12.8.9-android-arm frida-server // 간편하게 이름 변경
# ./frida-server & // 백그라운드 실행 권한 문제로 실패
- /tmp로 파일 이동해도 안돼서 찾아보니 루트 디렉터리가 읽기 전용으로 마운트 되어있음
- 쓰기 권한으로 마운트 다시 시도한 뒤 권한 변경
# mount -o,remount -t rootfs /
adb devices < 연결상태 확인
adb connect 127.0.0.1:62001
adb push frida-server-15.1.12-android-x86 /data/local/tmp
adb shell chmod 777 /data/local/tmp/frida-server-15.1.12-android-x86
adb shell /data/local/tmp/frida-server-15.1.12-android-x86 < 서버 실행
cmd 하나 성생----------------------------------------------------
conda create -n py3 python=3.7 << 안해도됨
activate py3 << 안해도 됨
pip install frida-tools << frida tool 다운
pip install frida-dexdump << dexdump 다운
adb connect 127.0.0.1:62001
frida-ps -U (adb shell ps)d
adb forward tcp:27042 tcp:27042
apk 실행
frida-dexdump -n 이름(패키지)
firda-dexdump -p 이름(pid)
'play > box' 카테고리의 다른 글
frida-dexdump 메모리 덤프 사용법 및 오류 (0) | 2023.01.10 |
---|---|
프리다(Frida) 알아보기 (0) | 2022.12.06 |
android permission 정리 (1) | 2022.10.05 |
암호화/ 복호화 사이트 및 자주 사용하는 사이트 (3) | 2022.01.27 |
악성 앱 받는 사이트 , 메모리 덤프 (0) | 2022.01.19 |