JEB静态分析和动态调试
用到的apk
链接:https://pan.baidu.com/s/1zes2_BnauIXpbyyeEIHOjQ
提取码:t6xm
jeb2.2.7下载
链接:https://pan.baidu.com/s/1zLgMojc4P5zmEAos3uPdQg
提取码:u88c
启动JEB
cmd中会报错,不用管
打开如图所示
注册机app,打开如下
如何才能破解呢?怎么才能知道正确的用户名和密码呢?
app拖入JEB中,等待反编译,成功如下
快捷键
q键,smail和java代码互相切换
ctrl+b下断点/取消断点
解读关键代码
在checkSN函数下断点,只能在smail中下断点
调试
下好断点我们要怎么开启动态调试呢?
-
点击工具栏
Debugger->Start
-
弹出框点击确定即可
-
选择模拟器和进程,点击Attach
进程名一定要点一下
哦,对了,如过有ddms的,请关闭ddms
-
出现这些表示成功
查看下的断点
查看寄存器,没有加载说明现在没执行代码
-
app填入值,点击注册,触发checkSN方法
-
此时寄存器会多了很多值
点击这个一步一步往下走
走到什么是个头呢?
不停的点啊点,点啊点,终于看到v6赋值了,并且我们打胎能猜到,v6还是个字符串
顺便再将v6改为string类型,看一下当前他在寄存器的值
是一个"0df06907d431f2ba"
已知v6的值是根据账号运算出来的,那能否确定"zhangsan"对应的就是"0df06907d431f2ba"呢?
来尝试一下
还真是,蒙对了,