文章目录
- 前言
- 使用AK导出完整的反编译包
- 新版本(AS 4.1以上)
- 导入smalidea0.6
- 导入反编译包到AS
- 老版本
- 导入smalidea0.05到AS之中
- 导入AS完整的反编译包
- 配置AS
- 使用AS分析反编译包
- 第一种方法:
- 第二种方法:
前言
本篇文章主要内容为:
通过导入反编译出的完整smali代码,设置好调试所需的条件、设置断点。
然后连接模拟器,运行代调试的APK程序
使用AK导出完整的反编译包
将要分析的程序拖入AK,选择“AndroidManifest.xml”,
先看看是否有这个标签,在看看这个debug是否为“true”,
假如是false就要改为true,在重新打包回编译一下,之后在反编译后的APK。
假设没有这个标签就要添加。
右击这个软件的名称,选择“打开文件路径”。
这个就是反编译的工程,可以复制到桌面。
新版本(AS 4.1以上)
导入smalidea0.6
smalidea的作用:
smalidea-0.05.zip用于androidstudio识别smali代码
下载地址:
https://bitbucket.org/JesusFreke/smalidea/downloads/
选择设置,
根据箭头指向选择,
导入刚刚下载的smalidea-0.06
选择OK,
导入反编译包到AS
直接选择Open,
选择上边AK导出的反编译包,之后点击“OK”。
选择“smali”文件夹,给权限。
之后“smali”文件夹会变为绿色,
使用新版本的可以直接跳到“ 配置AS ”处,
老版本
导入smalidea0.05到AS之中
打开下载的AS,
选择从本地导入,选择“smalidea”,
导入AS完整的反编译包
选择导入,
选中,点击OK即可,
记得选择这个“Project”, //在AS上显示的是文件夹的形象。
选择“smali”,给权限。
给完权限后,这会出现一个“小白点”的文件夹,
配置AS
在打开设置界面,
选择一下,java的环境,不要忘记点击下面的“ OK ”,
选择“run”,
点击“ + ”,选择“Remote” //(新版本是“ Remote JVM Debug ”)
名字可以随意改,这个端口建议是8700,不要忘记选择工程,最后点击OK,
这是新版本的,
以上就完成了准备工作,开始分析操作,
使用AS分析反编译包
第一种方法:
先打开模拟器,安装并运行“注册机”程序,
在打开CMD,输入“adb shell ps”,查看当前设备的进程信息。
找到“注册机”程序,
拿到其“PID”进程号“16703”。 //从左到右的第二列,
新开一个CMD窗口,输入“adb forward tcp:8700 jdwp:16703”
这个8700就是刚刚AS设置的端口,jdwp是转发端口的意思。
在第二行出现一个8700,说明转发成功,可以调试了,
选择刚刚新建的工程,点击“debug”
下边窗口出现 “socket”就说明我们可以去找断点了,
新版本为点击这个,
此时,找到之前我们熟悉的“checkSN”,在前面直接打个断点即可。
继续运行程序,点击注册,触发断点。
立马就断了下来,
按键盘快捷键“F8”向下走,
已经开始计算MD5了,
开始拼接sb,一般需要拼接32位,但是这么按太烦了,
在147行,在下一个断点,按“F9”直接掉到新下的断点处。
这个sb已经拼接完毕了,下边的“i”可以看到是32位。
先看看下边有没有出现“ userSN ”,
没有出现的话,在F8一下,运行到150行,
复制出现user SN的值,然后结束调试模式。
直接粘贴复制的值到程序激活码即可成功注册,
第二种方法:
先关闭之前的两个CMD窗口,以调试模式启动程序,CMD命令如下,
输入“adb shell am start -D -n com.qianyu.zhuceji/.MainActivity”回车,
这样我们可以直接看到PID的值,不用在ps寻找了,记的点一下上图中红框处,
接着进行转发,新开一个CMD窗口,
重新打开AS,下断点,运行“debug”,
接下来的步骤都一致了,完结撒花。