APK逆向工具详解对应的配套视频课程、工具详见:
Android安全逆向技术入门课程--移动安全视频教程-信息安全-CSDN程序员研修院
模拟器
app不一定要在手机上安装,模拟器是一样的。这样可以不同的手机版本切换,随时进行root。
缺点:app模拟器是基于X86的虚拟机,有一些xposed的操作会失败,这时还得在真机上。
夜神模拟器
雷电模拟器
adb命令
ADB是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备。
为了方便可以直接将模拟器中的adb.exe配置环境变量,这里我用了我夜神里面的adb模拟器配置的环境变量,这里有一点如果用adb连接夜神的模拟器需要用夜神的nox_adb.exe
直接在cmd中输入adb
shell命令
adb devices #查看存在的android设备 adb shell #进入手机的超级终端Terminal adb connect tcpip:5555 #统一局域网中直接连接手机ip(默认端口5555) adb pull <A> <B> #A为手机路径,B为电脑路径,意思为:把文件从手机中复制到电脑上 adb push <B> <A> #A为手机路径,B为电脑路径,意思为:把文件从电脑复制到手机上 adb install apk文件名称.apk #安装软件 adb install -r apk文件名称.apk #重新安装该软件 adb uninstall apk包名.apk #卸载apk软件 adb logcat #查看日志
Logcat查看-DDMS
android-sdk-->tools-->ddms #ddms路径 android测试类\工具包\android测试工具包\android-sdk_r24.4.1-windows\android-sdk-windows\tools\ddms.exe
查看某个apk日志
左边点击该app,右边可以看到其Process ID,在左下角Savad Filters中点加号进行配置
常见逆向工具
java环境
因为apk都是java写的,因此需要先安装jdk,这里可以选着java1.8兼容性比较强,安装好后需要配置环境变量:
我的电脑--->属性-->高级系统设置-->Path-->配置环境变量
java的安装路径也要记住哦,后面AndroidKiller都会用到路径进行配置:D:\software\jdk1.8
下图为配置成功图;cmd-->java -version
apktool
APKTool是GOOGLE提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架,清理上次反编译文件夹等功能。需要java支持。
apktool d demo.apk -o demo #将demo.apk发编译到demo目录中 apktool b demo -o demo_unsigned.apk #将demo打包为demo_unsigned.apk
ApkToolBox
大佬封装好的apktool UI版本,更加的方便。里面集成了编译、回编译、签名等
jadx
启动后先配置jdk哦,参考“java环境”
启动后选择需要编译的apk
jadx类似是dex2jar & jd-gui的组合,直接将apk转换为java代码,并且较其他反编译工具逻辑是最强,乱码最少的工具。
工具支持apk、dex、jar、aar等格式的文件
getCert
apk反编译中常用的一个小工具,可以看apk签名信息,hash值等。
直接将apk拖到getCert.bat中
集成工具
AndroidKiller
androidkiller是一款集成性的工具,里面包含了编译反编译,签名打包等功能。
配置java环境
主页-->配置-->Java
识别模拟器
Android-->已找到的设备(刷新)
类方法索引
方法再各类的交叉引用
自定义代码块一件插入
根据上面编辑好的直接引入
关键字语法显示、Unicode转换
直接显示java代码
反编译,回编译,签名,安装
反编译:添加apk后自动会进行反编译
回编译:Android-->编译
安装:Android-->安装(回编译后默认进行了签名)
避坑点
随着时间的推移,apktool会有新的版本,自己可以添加新版本,以及在参数处配置自己需要的apktool参数。