安卓逆向016之AS+smalidea插件动态调试(注册机)

Posted 划水的小白白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓逆向016之AS+smalidea插件动态调试(注册机)相关的知识,希望对你有一定的参考价值。

前言

本篇文章主要内容为:

通过导入反编译出的完整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”,		

接下来的步骤都一致了,完结撒花。

以上是关于安卓逆向016之AS+smalidea插件动态调试(注册机)的主要内容,如果未能解决你的问题,请参考以下文章

Android逆向 Android Studio动态调试smali代码

安卓逆向 -- IDA动态调试

安卓逆向 -- 实战某峰窝APP(动态分析)

AndroidStudio使用AndroidStudio动态调试Smali文件

安卓逆向 -- Jeb动态调试

Android逆向笔记-使用Android Studio调试Smali代码(方式二)