smali学习笔记之四种方法破解一个简单creakme
概述
自己以前学习android逆向的一个笔记,虽然超级简单,但是涉及到smali汇编,java层逆向的思路以及xposed hook的编写,log等浅显知识,适合零基础以及刚学android的同学看。
从为知笔记里导出来,貌似图片不能导出,要一个一个贴好麻烦
不知道有什么好办法
工具
androidkiller
androidstudio
夜神模拟器
pycharm
分析过程
安装到模拟器查看提示信息
我们看到这里提示无效用户名或注册码
androidkiller中反编译为smali
搜索字符串,定位关键点
先搜索无效用户名或注册码如果搜索不到可以转为Unicode再搜索,这里直接能搜到,而且只有一处
再去搜索unsuccessed
我们看到这个String类型的引用ID是0x7f05000b
我们看看哪里引用了这个ID 所以我们再搜索0x7f05000b发现只有一个地方引用
我们看这个引用的地方时在哪个方法中,我们发现是在OnClick方法中。
我们看这个类中有哪些方法
我们猜测 checkSN就是关键方法
关键代码分析
我们进到里面分析,我在里面做了详细的注释,可以看一下
由于我们是为了学习smali所以这里就不编译成java代码了我们需要一条一条的看smali汇编
我们这里梳理下登录的验证过程
判断用户名是否为空和长度是否为0
判断注册码是否为空和长度为0
求用户名的MD5值
将MD5转为宽字节字符串
将MD5的每隔1个取出作为注册码
解题思路
1. 爆破
第一种爆破:改判断的地方,比如长度,字符串等。
第二种爆破:将checkSn的返回值改为1 也就是true
都比较简单 这里不再赘述,有兴趣的可以自己试一试
2. smali注入log或者toast进行追码
插入log
插入toast
3. xposed hook
基本步骤
手机或者模拟器端安装框架
android studio 导入xposed模块
配置xml清单
编写代码
设置入口类
代码
本文由看雪论坛 lcdxsun 原创