吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 19163|回复: 47
收起左侧

[移动样本分析] 简单锁屏app分析

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

样本区的一个锁屏app
https://www.52pojie.cn/thread-661872-1-1.html

1.初步观察

apk安装后界面如下,点击解锁后会出现“加油你还差xx次就可以解锁了”字样
Screenshot from 2017-11-27 18-49-07.png Screenshot from 2017-11-27 18-49-28.png
2.定位关键代码
猜想关键代码应该是OnClick之类的,使用jeb打开apk,搜索setOnClickListenter,得到下面
Screenshot from 2017-11-27 18-51-49.png
查看类100000000和100000001中的OnClick()
Screenshot from 2017-11-27 18-53-13.png Screenshot from 2017-11-27 18-53-29.png
第一个onClick作用是在你点击按钮的时候显示“加油xxxx”,用来调戏人的,没实际用途;第二个才是解锁的关键,其中主要操作有a.set,b.decrypt,v0.this$0.a.decrypt,v0.this$0.m
3.算法分析1
(1)a.set
a_set.png
进行字符串替换后返回

(2)b.decrypt
b_decrypt.png
主要过程为hex2byte和decrypt
hex2byte.png b_decrypt2.png createKey.png
hex2byte将16进制字符串转化为byte,例如"7f"转化为byte(128)。decrypt为 AES/ECB/PKCS5Padding 解密操作,秘钥由createKey产生。

(3)v0.this$0.a.decrypt
Screenshot from 2017-11-27 19-04-08.png Screenshot from 2017-11-27 19-06-19.png Screenshot from 2017-11-27 19-24-31.png

v0.this$0.a.decrypt调用的是myapp中的a成员的decrypt方法,最终使用a.decryptCipher.doFinal,加密算法为des,秘钥为包名转化为byte数组后取前8位(a的构造函数和v5.getKey)
(4)v0.this$0.m
Screenshot from 2017-11-27 19-28-50.png Screenshot from 2017-11-27 19-29-45.png Screenshot from 2017-11-27 19-30-22.png
对字符串decode后再用zlib解压缩,decode使用了base64编码(4, 3, 61等数字和codes数组已经暗示了是base64)

到这里算法就分析的差不多了,再次搬出验证的代码,其中v2就是你的输入,v0.this$0.lock1xlh是序列号。


这里修改下源程序打印Log得到密码。
这里输入密码后点击“我要解锁”发现没反应,重新看了前面注册事件的控件id,2131165186,将apktool反编译apk后查看public.xml(所有资源编号都在这里),得到资源名,再根据资源名去查看layout目录,可以发现注册事件的控件为“解除锁定”,点击后顺利得到密码。
Screenshot from 2017-11-27 19-35-31.png Screenshot from 2017-11-27 19-37-30.png Screenshot from 2017-11-27 19-39-34.png


4.算法分析2
Screenshot from 2017-11-27 19-40-29.png
输入密码后进入第二关,代码跳转到了
Screenshot from 2017-11-27 19-42-34.png Screenshot from 2017-11-27 19-42-05.png
关键代码在100000002的onClick这里。onClick中比较了两个字符串。字符串一为将输入字符串的前3位进行sha1,md5后拼接上剩余的字符串;字符串二由"9fd09fe7fd77ab118ef78795668bc8a1"与v3的前9个字符拼接,v3为序列号进行md5,sha1后再replace()。

观察可知字符串二前缀为字符串一前3位的哈希(SHA1+MD5),所以字符串一前3位是固定的,对应字符串2的前缀。按理说由哈希是不可逆的,抱着试试的想法,找了个在线哈希解密网站把字符串2前缀扔进去,发现解开了,”187“,有点惊讶,md5和sha1组合居然可以解开。
在关键代码处插入Log可以得到后面9个字符,前面再拼接187得到密码。
xx.png Screenshot from 2017-11-27 19-46-18.png

到这里算法分析就真正结束了,现在可以根据加密算法写出密码计算程序了。emmm......

虽然算法分析出来,但是编写程序还是有点麻烦,这里我选择对app进行修(调)改(教),使它自己吐出密码。修改后的app在密码框输入序列号可以得到密码,具体看附件。
5.锁屏原理
Screenshot from 2017-11-27 20-42-18.png Screenshot from 2017-11-27 20-43-14.png
通过android的
WindowManagerService创建一个全屏置顶的view,不受事件影响,程序监听了开机广播,开机自启动,简单粗暴?什么root,设备管理服务权限都不需要。

6.清理方案
1.可以通过计算密码进行解锁,因为没有赋予该app特殊权限(root,设备管理),所以不用担心后门,解锁后卸载即可。
2.adb卸载
Screenshot from 2017-11-27 20-44-15.png
3.recovery模式下进入shell删除安装包。

链接: https://pan.baidu.com/s/1i6YifXz 密码: 4c6x

免费评分

参与人数 20威望 +2 吾爱币 +29 热心值 +20 收起 理由
喜子12131 + 2 + 1 楼主能补一下链接?
15502632622Zx + 1 + 1 谢谢@Thanks!
xxjoo1 + 1 热心回复!
o也 + 1 + 1 我被锁住了啊 输入序列号没出现密码啊
一叶忆春秋 + 1 + 1 我很赞同!
Alosu + 1 + 1 谢谢@Thanks!
15139437077 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
WBSL + 1 + 1 热心回复!
c0zzy + 1 + 1 我很赞同!
kikyoulin + 1 + 1 用心讨论,共获提升!
ESRGA18 + 1 + 1 谢谢@Thanks!
ycshm + 1 + 1 已答复!
MrGoblin + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Hmily + 2 + 10 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
我是淡淡 + 2 + 1 用心讨论,共获提升!
策士 + 1 + 1 热心回复!
zhaolisheng + 1 + 1 热心回复!
zzzLucas + 1 + 1 谢谢@Thanks!
大九丶 + 1 热心回复!
hpsales + 1 + 1 热心回复!

查看全部评分

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

 楼主| 安卓小白 发表于 2017-11-28 21:52
webspider88 发表于 2017-11-28 21:10
如果不知道安装后的名字怎么用adb卸载?请赐教

jeb查看AndroidManifext.xml文件
也可以使用adb查看当前活动栈顶信息:
Linux:adb shell dumpsys activity | grep "mFocusedActivity"
window:adb shell dumpsys activity | findstr "mFocusedActivity"
小烦凡 发表于 2017-12-28 18:38 来自手机
安卓小白 发表于 2017-11-28 12:26
在模拟器分析的,分析这种东西一般不都是在模拟器吗,如果用手机分析,万一解不出来就尴尬了

楼主给个模拟器呗谢谢啦
Hmily 发表于 2017-11-27 16:01
 楼主| 安卓小白 发表于 2017-11-27 20:46
Hmily 发表于 2017-11-27 16:01
@安卓小白 图片需要上传再贴到正文中,直接粘贴是不行的,方法见帮助:https://www.52pojie.cn/misc.php?mo ...

谢谢,图片已经补上
头像被屏蔽
hxrjian 发表于 2017-11-28 11:17
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 安卓小白 发表于 2017-11-28 12:26
hxrjian 发表于 2017-11-28 11:17
是在手机上使用的吗?

在模拟器分析的,分析这种东西一般不都是在模拟器吗,如果用手机分析,万一解不出来就尴尬了
我是淡淡 发表于 2017-11-28 16:51
讲的不错,给你加分
xuanshao6 发表于 2017-11-28 17:06
感谢分享
wang4585 发表于 2017-11-28 17:16 来自手机
大神级别的
ljw5201314 发表于 2017-11-28 17:17
高科技的东西~~~~~
小贺贺 发表于 2017-11-28 17:25 来自手机
学习了 不错 很不错的分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-15 13:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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