吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16040|回复: 37
收起左侧

[移动样本分析] 记一个弱锁机样本分析

  [复制链接]
qtfreet00 发表于 2015-11-21 18:51
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 世事繁华皆成空 于 2015-11-21 18:59 编辑

样本地址:http://www.52pojie.cn/thread-436767-1-1.html

下载这个样本花了我不少时间,楼主传的是苏宁云盘,试了n次才访问成功

0x0 样本结构

下载下来后第一时间以压缩包形式打开APP,发现程序结构很简单,没有so库,没有加壳,那就非常简单了
QQ截图20151121180808.png

0x1 安装

我这里使用的模拟器,安装成功后,软件直接开始申请root权限,赋予权限后机子被锁,并有提示信息
QQ截图20151121180918.png

0X2 分析

直接拉到Jeb中,反编译后发现代码文件并不多,看到一个广播,一个服务类
QQ截图20151121181225.png
作为一个开发者,我们经常会使用广播和服务来执行一些后台操作或者是自启等等
QQ截图20151121181325.png
来到主活动下的oncreate方法处,看到直接开启了service服务,我们来到service文件下
QQ截图20151121181535.png
看到当服务被开启后,调用了主活动下的一个方法,我们观察一下那个方法
QQ截图20151121181619.png

这里就是申请root权限的地方,当用户赋予权限后,即执行oncreateView方法

QQ截图20151121182602.png

这里调用的系统的getSystemService("window"),获取到了windowsManager管理类

下面的lp即为WindowManager.LayoutParams,看到程序给lp定义了一些属性,首先是type,我们搜索下资料

  系统窗口。非应用程序创建。
  public static final int FIRST_SYSTEM_WINDOW    = 2000;
当type为2000时即为系统的置顶窗口


系统内部错误提示,显示于所有内容之上。
public static final int TYPE_SYSTEM_ERROR      =  FIRST_SYSTEM_WINDOW +10;


接下来分析flags,1280这个值看上去很奇怪,在源码中也没有看到明确的定义,1280对应的16进制是0x500,初步判断是几个值的相加结果,首先想到的就是0x100,和0x400
QQ截图20151121183619.png

那这两个值分别对应的就是全屏以及:
窗口占满整个屏幕,忽略周围的装饰边框(例如状态栏)。此窗口需考虑到装饰边框的内容。
public static final int FLAG_LAYOUT_IN_SCREEN   =0x00000100;


那我们就知道了锁屏的原理,利用type和flags属性使得这个窗口被系统置顶并且忽略了所有的系统按钮,包括状态栏和返回键,等等
QQ截图20151121184031.png

并且给广播设置了开机自启,每当系统启动时,都会发送一个boot completed的广播,当程序接收到后就会开启,即达到他说有的重启也无效

0x3 找寻解密方法

QQ截图20151121184219.png

这个样本默认就给我们提供了一个突破口,他给我们了一个密码,判定真正的解锁码就是根据此码来生成的,由此追溯

QQ截图20151121184320.png
在子线程中我们看到了调用了s方法,传入了6,生成了sj值,并将其中的0全部替换成6,我们看下s方法

QQ截图20151121184417.png
很简单,一个随机数而已,并根据这个随机数进行一些处理,再替换之后就成了锁屏界面中的那个密码

QQ截图20151121184535.png

这里就是锁屏界面那个按钮的功能,如果密码正确则结束自身,否则提示信息,我们看下错误信息是怎么存储的

         v0.this$0.tv2.setText(g.e(j.h()));

追溯到j.h方法中

QQ截图20151121184707.png

这里存储了一个加密后的字符串,就知道g.e方法就是解密方法
QQ截图20151121185031.png

对密文进行4次base64解密,即为提示的错误信息

我们看到上面进行的判断处,当Edittext中的值等于js变量中的值时即为正确答案

js的值是通过     service.this.js = service.this.b(service.this.sj); 生成的,即找到b方法即可

    public String b(String arg8) {
        return String.valueOf((Integer.parseInt(arg8) - 100) * 3);
    }

这一串就是解锁码的生成方法了,不知道为什么这么简单

解锁成功后直接卸载原程序就行了
最后附上解锁工具,直接算出解锁码
解锁工具.zip (229.54 KB, 下载次数: 164)

QQ截图20151121190157.png








点评

楼楼我这里一个薄荷锁机的是+q1728145037 ,它的解锁密码是yzs520 用你的工具算出来是889467515,是不是有几种锁机软件每种需要对应的解锁方法?比如第一批软件用了第二批方法  发表于 2015-12-4 03:22
现在手机锁机软件越来越多,是不是大多都用易安卓写的  发表于 2015-11-24 19:46

免费评分

参与人数 23热心值 +23 收起 理由
zhangbo093 + 1 谢谢@Thanks!感谢楼主详细的教程,学习了!!
本物天下霸唱 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
倾听回忆 + 1 膜拜
永遠 + 1 我很赞同!
Thefirst1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
zcm2005 + 1 牛人啊牛人
丨丶钟情 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
罒_罒 + 1 那个苏宁网盘访问不了,没有样本啊
Mr.Mlwareson_V + 1 鼓励转贴优秀软件安全工具和文档!
caleb110 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
茗清逸 + 1 我很赞同!
阿超学破解 + 1 楼主工具的用法:需先安装java run-time env.
山顶的一棵草 + 1 干的漂亮~
小伦子 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
林不二 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
rong578951269 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
就爱玩玩 + 1 我很赞同!
萋小磊 + 1 前排~
ppszxc + 1 谢谢@Thanks!
夜之零落兮 + 1 哈哈,你俩基友。
苏紫方璇 + 1 膜拜繁华大牛,评分差点手抖点-1
cz5420 + 1 膜拜花花
Cizel + 1 没错,我是第一个~

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

MISS_林 发表于 2015-11-21 18:55
大牛你好,再见
Cizel 发表于 2015-11-21 19:01
丶懒喵喵 发表于 2015-11-21 19:02
大牛,求教怎么逆向APK。。论坛置顶的图文看不懂
小朋友呢 发表于 2015-11-21 19:12
请问下论坛哪儿有Android的逆向工具。
苏紫方璇 发表于 2015-11-21 19:16
膜拜一下繁华大牛,密码的算法好简单。。。。为何P叔给了一个违规呢@Peace

点评

在哪在哪?  发表于 2015-11-21 22:49
夜之零落兮 发表于 2015-11-21 19:19
我看到了违规+1?

点评

在哪在哪??  发表于 2015-11-21 22:49
1243382835 发表于 2015-11-21 19:37
介个好啊
867671810 发表于 2015-11-21 20:01
大哥,你的这个解锁工具,怎么打开运行?
rjlly 发表于 2015-11-21 20:41
大牛果然厉害的。。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 11:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表