-
-
移动安全学习笔记(二)
-
2023-2-16 10:52 22036
-
工具
Adb
查看模拟器列表
1 | adb devices |
连接模拟器shell
1 | adb shell |
安装应用
1 | adb - s 127.0 . 0.1 : 62001 install C:\Users\Administrator\Desktop\HelloWorld.apk |
覆盖安装
1 | adb - s 127.0 . 0.1 : 62001 install - r C:\Users\Administrator\Desktop\HelloWorld.apk |
启动应用
1 | adb - s 127.0 . 0.1 : 62001 shell am start - n com.bluelesson.helloworld16 / .MainActivity |
调试方式启动应用
1 | adb - s 127.0 . 0.1 : 62001 shell am start - D - n com.bluelesson.helloworld16 / .MainActivity |
AXMLPrinter2
解析查看 AndroidManifest.xml文件
1 | java - jar AXMLPrinter2.jar AndroidManifest.xml |
xml2axml
解码 xml 文件
1 | java - jar xml2axml d [AndroidManifest - bin - in .xml] [AndroidManifest - readable - out.xml] |
编码 xml 文件
1 | java - jar xml2axml e [AndroidManifest - readable - in .xml] [AndroidManifest - bin - out.xml] |
Baksmali
dex文件反汇编为smali文件
1 | java - jar baksmali.jar classes.dex - o out |
smali
smali文件汇编为dex文件
1 | java - jar smali.jar out - o new_classes.dex |
signapk
签名工具
1 | java - jar signapk.jar testkey.x509.pem testkey.pk8 HelloWorld.apk HelloWorldSign.apk |
apktool
dex反编译smali、xml解析、生成资源序号文件与资源名称对应表
1 | java - jar apktool.jar - r d HelloWorld.apk |
1 | java - jar apktool_2. 4.0 .jar empty - framework - dir - - force |
smali文件编译为应用,应用生成目录为反编译应用的 dist 目录中
1 | java - jar apktool.jar b HelloWorld |
Dex2jar
dex文件转换成jar文件的工具,该工具提供了大量批处理脚本,所以使用起来较为简单,windows下只需将 dex 文件拖拽到 d2j-dex2jar.bat 脚本上即可转换成 jar 文件,当然了,也可以用 cmd 命令执行如下命令
1 | d2j - dex2jar.bat classes.dex |
jd-gui
jar文件查看器,没啥说的,jd-gui 提供的是exe文件,双击即可
Android Killer
- 设置 jdk 路径 C:\Program Files\Java\jdk1.8.0_66\bin\
apktool目录在 D:\AndroidKiller_v1.3.1\bin\apktool\apktool
替换 D:\AndroidKiller_v1.3.1\bin\adb 路径下的下列三个文件为SDK中的
- adb.exe
- AdbWinApi.dll
- AdbWinUsbApi.dll
JEB
收费的反编译工具,基本被jadx取代
jadx
开源的反编译工具,github上下载的时候有好几个可选链接,自测 jadx-gui-1.4.5-with-jre-win 版本可以直接运行,其他的版本报错
IDA
连接手机步骤:
- 上传IDA服务调试端,其所在路径:D:\IDA_Pro_7.7_Portable\dbgsrv
1 | adb push android_server / data / local / tmp / ands |
- 连接手机shell
1 | adb shell |
- 提升权限(需要root权限,否则最后附加之后显示的进程不全)
1 |
- 切换至调试端所在目录
1 | cd / data / local / tmp |
- 检查调试端权限
1 | ls - l |
- 设置调试端权限为可执行
1 | chmod 777 ands |
- 以 23456 端口运行调试端
1 | . / ands - p23456 |
- 开启第二个 cmd 窗口,安装被调试软件
1 | adb install .\test.apk |
- 启动被调试软件
1 | adb shell am start - D - n com.example.testndk / com.example.testndk.MainActivity |
- 设置端口转发
1 | adb forward tcp: 23456 tcp: 23456 |
- 打开 IDA — Debugger — attach — Remote ARM Linux/Android debgger
- Hostname — localhost
- Port — 23456 — OK
- 设置 Supend on library load/unload (不然会导致后边显示补全)
- 选择被调试程序包
- 启动 Android Device Monitor
- 启动 jdb
1 | jdb - connect com.sun.jdi.SocketAttach:hostname = localhost,port = 8600 |
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
最后于 2023-2-16 18:06
被简单的简单编辑
,原因:
赞赏
他的文章
看原图