play/box

Android 분석 관련 툴

카고형 2022. 6. 13. 10:44
728x90

안드로이드 구조 설명

https://cago-young.tistory.com/118

안드로이드 명령줄

https://developer.android.com/studio/command-line?hl=ko

분석 참조 블로그

https://story.malwares.com/36
https://hummingbird.tistory.com/search/android

 

스팸 전화번호 검색 사이트

http://www.missed-call.com

 

 


분석 툴 

더보기


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)

 

 

728x90