qtfreet00 发表于 2015-11-21 18:51

记一个弱锁机样本分析

本帖最后由 世事繁华皆成空 于 2015-11-21 18:59 编辑

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

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

0x0 样本结构

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


0x1 安装

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


0X2 分析

直接拉到Jeb中,反编译后发现代码文件并不多,看到一个广播,一个服务类

作为一个开发者,我们经常会使用广播和服务来执行一些后台操作或者是自启等等

来到主活动下的oncreate方法处,看到直接开启了service服务,我们来到service文件下

看到当服务被开启后,调用了主活动下的一个方法,我们观察一下那个方法


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



这里调用的系统的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


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


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


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

0x3 找寻解密方法



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


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


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



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

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

追溯到j.h方法中



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


对密文进行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);
    }

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

解锁成功后直接卸载原程序就行了
最后附上解锁工具,直接算出解锁码











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 19:19

我看到了违规+1?{:301_988:}

1243382835 发表于 2015-11-21 19:37

介个好啊{:301_986:}

867671810 发表于 2015-11-21 20:01

大哥,你的这个解锁工具,怎么打开运行?

rjlly 发表于 2015-11-21 20:41

大牛果然厉害的。。。。
页: [1] 2 3 4
查看完整版本: 记一个弱锁机样本分析