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位字符串,然后写一个循环,取奇数位置的字符作为验证码呀!(见下图:)
附样本:
作为小白的我,只能看懂这个修改if的方法,至于注册,实在是看不懂!
只是关于这个注册的,可以详细点吗?
我只看到两张张照片。 学习学习方法了 完全不懂!!!!! 看看先。 。 orz,学习了 哈哈,我也看不懂,不过支持一下楼主 学习了,谢谢大佬 感谢分享学习心得~ 感谢分享 学习了,谢谢分享