【锁机分析】AES锁机加密分析及AES加解密源码
我之前发过锁机中的加解密源码DES和Zlib + Base64,进来大部分锁机已经采用AES加解密,特发此贴,公开锁机中的AES加解密源码 (方便大家解密)本次分析以一款名为“秒赞大师”的软件为例
警告:请不要在真机中安装,运行,调试操作,此锁机会上传手机信息,如果出现问题,本人概不负责,强烈建议采用模拟器调试
I 认识锁机
先运行起来,锁机基本都是这个样子,然后我们在把软件拖进JEB(建议),当然也可以用Android killer。
II 反编译锁机现在我告诉你们怎么找关键代码,反编译之后,当然有些人说先看manifest文件,确实,找入口很关键,但是我这里推荐大家另一种方法(技巧),就是看这个锁机界面,找布局(layout文件夹),我们从这些xml中找与锁机图片显示相同文字的那个xml。之后,我们就找到了h.xml (如下图),然后再去找源码中的同名java代码,因此就是h.java
-------------------------- 》
III 分析锁机
(1)找到关键函数
我们从h.xml可知,锁机中显示“确定解锁”就是真正的解锁按钮
<Button android:background="#fff0ff00" android:layout_height="wrap_content" android:layout_width="wrap_content" android:onClick="js" android:text="确定解锁" android:textColor="#ff0006ff" />
这句xml中button的属性,显示js这个函数就是点击button响应的函数,我们回到h.java中,找到js这个函数(如下图)
(2)分析关键函数
找到关键函数就很好分析了,直接找这几个判断(如下图)
v0获取的是编辑框的值,红框显示如果输入的值等于pass就跳转到 i 这个Activity(页面);
蓝框显示,如果输入的值等于v字符串,就设置一些textview控件文件的显示(显然没用);
粉框显示,如果输入的值等于 l.x(v6, "") 的值就退出【涉及到AES加解密】(这个退出是无法退出的,因为退出之后应用会马上自启)
再看右边这两个函数,上边那个是:如果输入的值等于654321,那么执行nwmm这个函数
下边那个是:如果输入的值等于4321,那么执行swmm这个函数
先分析下nwmm函数和swmm这两个函数
从图中可知,这两个函数都是修改PIN码
如果在这个锁机页面输入过654321,那么PIN码会修改成654312
如果在这个锁机页面输入过4321,那么PIN码会修改成4312
最后看重点,红框显示的,如果输入的值等于pass就跳转到 i 这个Activity(页面)
我们追溯pass这个变量,如下图
这里有两个给pass赋值的,那么到底是哪一个呢,上面那个是通过a这个变量获取的,我们再看a这个变量
get是一个获取网络数据的函数,详就不细说了
我在这里给大家捋一捋,锁机作者首先从服务器网站获取锁屏密码,从而赋值给pass这个变量;果这个时候网络状况差或者无网络的情况下,无法获取服务器网站的密码,这个时候执行第二个赋值
总的来说,有网--》服务器密码,无网--》本地密码
作者将网站加密,两种获取网站的方法:
①知道加解密函数,这个时候还要获取c的值,很不幸c的值也被加密了,先解密c,再解密a(l这个函数就是AES加密了)----【文章末尾附上解密源码】
②网络抓包工具Fiddler(我在这里也不做教程解说,大家可以百度)
解密后的网址是http://www.aesbase64.xyz/cs/sj.html 打开网址,设置成UTF8编码即可看到密码---159357,无网络状态的锁屏密码是8810
输入密码后进入第二页锁机,如下图
我们按照开始说的,成功找到 i.java中关键函数js,这里也有三个判断,分别来看
第一个判断是输入4951,我们又跳回第一个页面
第二个判断是输入997998,会触发一些文字的改变
第三个判断是输入l.x(v17, v9)【AES加解密】,跳转到下一个页面
因此重点是第三个,通过解密我们得知密码是 2415
输入密码后如下图显示
现在我们来到了最后的页面,这里需要说的是这个密码并不在 djava 里面,而在c.java里面。
我梳理一下这个app的启动顺序
再看c.java里的主要代码,这次获取密码的网址是 http://www.aesbase64.xyz/cs/pinpassword.html这是个加密的字符串,最后经过解密后的数据是7531(PIN码)
III 总结
******第一页密码******
1、网络环境良好状态下 -----> 159357
2、网络环境差或者无网络状态下 -----> 8810
******第二页密码******
2415
******PIN码(锁机密码)******
1、第一页密码直接输入了解锁码,成功进入第二页 PIN码则为 ---->7531
2、第一页密码未解锁前,输入过 4321 PIN码则为 ---->4312
3、第一页密码未解锁前,输入过 654321 PIN码则为 ---->654312
注:随机码无任何作用
时间仓促,有些地方写的不够详细,还望见谅!!
IV 附件
附件:(推荐百度云连接免费下载)
注:锁机app 在百度云链接中
解压密码:52pojie
土豪通道:
免费通道:链接:https://pan.baidu.com/s/1dFd1ltB 密码:83gy
域名信息:王朝敏
QQ:2564712216
电话:13929242540
厉害,膜拜大神 写的不错,,给你点个赞! 帮你顶一下,跟你学安卓逆向:lol 分析写的挺好的,期待楼主的下篇分析 流程思路很清晰,点个赞 不错哦,很基础,很实用 我真的很想知道这些中招的人后期都是妥协还是怎样的?{:301_998:} 分析得很好。 这个要赞,和这种软件斗到底{:1_921:} 还搞两个锁,,,付费一次的人都崩溃了