SQLite 发表于 2017-5-22 23:47

Android Crackme破解之:从爆破到获取注册码

本帖最后由 SQLite 于 2017-5-22 23:50 编辑

近来从Android编程稍微转到逆向了,在论坛学习之余也看了本《Android软件安全与逆向分析》,用随书附带的Crackme02.apk练练手:
1、安装程序。得到错误提示信息“无效用户名或注册码”。
https://attach.52pojie.cn/forum/201401/08/000634fouo49zizvsviz4s.png


这里使用Android Killer来完成破解。(也可以用IDA Pro + C32Asm , 但是要手工修改“校验和”以及打包签名,比较麻烦)
载入程序,并在“工程搜索”中搜索该提示信息:



看到该提示信息对应的变量为“unsuccessed”,继续搜索之:



看到该字符串在资源文件中的地址为:“0x7f05000c”,继续搜索之,由此可以定位到“关键跳”:



这里把“if-nez”(不等于0则跳转)
改为“if-eqz”(等于0则跳转)(图中是改过之后的),然后“保存”——“编译”——“安装”即完成暴力破解。
然而我们的目的是找到注册算法,继续往上面找计算注册码的函数:

由图可知,这个函数就是计算注册码的。右键“查看”——“查看方法”,进入该方法内部阅读代码。
原来这个函数只是个空壳,关键的在于这个“checkSN”函数,继续往里看:



原来是把用户名进行MD5加密得到32位字符串,然后写一个循环,取奇数位置的字符作为验证码呀!(见下图:)
附样本:






















qwerd52pojie 发表于 2018-5-27 17:54

妲己再美终是妃 发表于 2017-8-5 11:28

作为小白的我,只能看懂这个修改if的方法,至于注册,实在是看不懂!
只是关于这个注册的,可以详细点吗?
我只看到两张张照片。

xyz1125 发表于 2017-5-22 23:56

学习学习方法了

675550115 发表于 2017-5-23 00:20

完全不懂!!!!!

sdaza 发表于 2017-5-23 07:05

看看先。 。

卷翼 发表于 2017-5-23 07:42

orz,学习了

醉饮千觞 发表于 2017-5-23 08:04

哈哈,我也看不懂,不过支持一下楼主

獠牙血狼 发表于 2017-5-23 09:04

学习了,谢谢大佬

潮流、 发表于 2017-5-23 09:15

感谢分享学习心得~

ericqi 发表于 2017-5-23 09:46

感谢分享

xiaoxi2011 发表于 2017-5-23 10:10

学习了,谢谢分享
页: [1] 2 3 4 5
查看完整版本: Android Crackme破解之:从爆破到获取注册码