1595901624 发表于 2017-3-9 19:16

【锁机分析】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

雨轩K 发表于 2017-3-13 09:43

域名信息:王朝敏
QQ:2564712216
电话:13929242540

Ameritly 发表于 2017-3-13 11:33

厉害,膜拜大神

ugvnui 发表于 2017-3-10 10:19

写的不错,,给你点个赞!

酒醒黄昏 发表于 2017-3-10 10:22

帮你顶一下,跟你学安卓逆向:lol

苏紫方璇 发表于 2017-3-10 10:29

分析写的挺好的,期待楼主的下篇分析

htcperfect 发表于 2017-3-10 11:43

流程思路很清晰,点个赞

zylyy12358 发表于 2017-3-10 12:10

不错哦,很基础,很实用

PA助手 发表于 2017-3-10 18:08

我真的很想知道这些中招的人后期都是妥协还是怎样的?{:301_998:}

lawlier 发表于 2017-3-10 19:42

分析得很好。

hewok 发表于 2017-3-10 21:01

这个要赞,和这种软件斗到底{:1_921:}

绍离 发表于 2017-3-10 22:47

还搞两个锁,,,付费一次的人都崩溃了
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 【锁机分析】AES锁机加密分析及AES加解密源码