吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2617|回复: 4
收起左侧

[Android 原创] 实战:AliCrackme

[复制链接]
宸道移动安全 发表于 2020-9-12 13:19
1.1  分析AliCrackme
将AliCrackme程序拖入jdax-gui进行分析。

1.从xml中找到程序入口点,如下图所示。

图片1.png

2.分析Oncreate,前面是布局初始化和设置监听的操作,如下图所示。

图片2.png

3.点击onclick里的内容,如果这个函数返回值为真,就进行页面跳转,否则显示弹窗失败,如下图所示。

图片3.png

4.点击函数,发现被native修饰,说明是使用NDK开发,直接分析so库,如下图所示。

图片4.png

5.加载这个so库,如下图所示。

图片5.png

1.2  使用IDA分析so库


1.使用压缩打开程序的压缩包,在lib中找到so库,如下图所示。

图片6.png

2.将so拖入IDA,在模块列表中查找JNI_Load或者JAVA_函数,搜索找到JNI函数,如下图所示。

图片7.png

3.进来后,直接F5,查看伪代码,修改参数类型和类名,如下图所示。

图片8.png

4.根据伪代码分析逻辑,找到动态注册函数RegisterNative,最后一个函数调用了GetEnv,也就是说,java的调用的方法并不是通过静态注册,如下图所示。

图片9.png

5.继续寻找静态注册,如下图所示。

图片10.png

6.修改前面两个参数,如下图所示。

图片11.png

7.查看最后一下参数,看到java代码对这个方法的调用处,发现一个字符串,如下图所示。

图片12.png

8.修改第三个参数,修改的效果,如下图所示。

图片13.png

9.将str给v4,然后作为参数给GetStringUTFChars函数传进去,将返回值给v5,如下图所示。

图片14.png

10.接着是一个while死循环,如下图所示。

图片15.png

11.对比v6和v7,如果不相等,直接break,然后返回给java0,如下图所示。

图片16.png

12.如果v7为空,取反为真,就表示结束对比,直接返回v7,否则v7取反一直为0,不会执行这里,继续比较,如下图所示,直接动态调试来,查找v7的地址即可。

图片17.png

1.3  IDA动态调试

1.在JNI_load里面,在执行完这个函数时,程序直接FFFFFFFFF,传了四个参数,如下图所示。

图片18.png

2.F7进来该函数,显示是创建一个线程,如下图所示。

图片19.png

3.直接nop掉即可,继续向下执行,如下图所示。

图片20.png

4.继续往下走,如下图所示。

图片21.png

5.一路F8到底,发现程序没什么变化,如下图所示。

图片22.png

6.与密钥有感的逻辑肯定是在静态注册,已经分析过静态注册的伪代码,直接在这里下断,然后F5识别伪代码,同步伪代码到汇编窗口,通过静态分析已经知道字符串对比的地方,直接这里下断点,如下图所示。

图片23.png

7.观察此时寄存器的值,R2是要对比的值(这个就是正确密钥),如下图所示。

图片24.png

8.取R2地址处的第一个值,a的ASCALL为0x61,如下图所示。

图片25.png

9.R0地址处的是我们自己输入的,如下图所示。

图片26.png

10.R1就是我们自己输入字符的第一个字母,z的ASCALL,如下图所示。

图片27.png

其实,这里就是将正确的字符和我们自己输入的字符进行比较,到此为止,整个程序也就分析完成了。


小结:
通过本次的分享,我们了解了如何jdax-gui反编译apk文件,以及IDA静态分析so文件,并且掌握了通过IDA动态调试过掉反调试寻找密钥的方法。

AliCrackme.zip

262.21 KB, 下载次数: 36, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 1威望 +1 吾爱币 +20 热心值 +1 收起 理由
qtfreet00 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

seattle^-^ 发表于 2020-9-16 16:54
为什么前几篇帖子都被删除了啊,我还想看看呢
 楼主| 宸道移动安全 发表于 2020-9-17 09:36
seattle^-^ 发表于 2020-9-16 16:54
为什么前几篇帖子都被删除了啊,我还想看看呢

违规了吧,想看可以联系我,发你
dayneno 发表于 2020-11-30 13:18
ida动态调试一定要用真机吗,我用模拟器一直都找不到那个so文件在运行,不知道是哪里出了问题。
 楼主| 宸道移动安全 发表于 2020-11-30 14:01
dayneno 发表于 2020-11-30 13:18
ida动态调试一定要用真机吗,我用模拟器一直都找不到那个so文件在运行,不知道是哪里出了问题。

最好用真机;模拟器是x86的so,
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 18:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表