吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11732|回复: 38
收起左侧

[Android 原创] 一次绕过android4.4.2禁止未签名应用安装的操作

  [复制链接]
thenow 发表于 2020-3-20 11:19
本帖最后由 thenow 于 2020-3-24 09:35 编辑

前言

最近学习android 方面的东西,正好手上有一台买屏幕送其他零件的android设备拿来练手,该设备android版本是4.4.2,开机提示  “本机已经拆机自毁,即将关闭,请联系售后人员”,2秒后系统就会自动关闭,幸好这2秒内可以触摸可以用,快速的触摸返回按钮可以把这个窗口关掉。并且系统自带了 ES文件浏览器。

获取维护人员密码,打开USB调试

设置界面被修改过,看到的菜单项有限
1584665849681.png
尝试找一下维修人员登录密码,看看有什么东西。网上搜索了一番,设置界面里增加选项是修改的 Settings.apk

通过ES文件浏览器把 /system/priv-app/Settings.apk 复制出来,用jadx-gui先查看String.xml找到
1584666573433.png

再搜索 maintain 找到如下代码

1584666897474.png

发现密码是一个固定首部+序列号后3位。用密码登陆后,菜单项变多了

1584666793872.png

获取root,去掉开机2秒自动关闭

连上数据线,尝试了几款root工具,KingRoot可以获取root权限。root后在系统核心应用里找到 destroy.apk,删除后重启发现已经没有开机2秒的提示了

destroy.apk 比较简单,就是读取一个属性进行判断,大约是设备拆机以后触发某种机关机制的,会把芯片里的信息改掉吧

1584667538132.png

修改Services.jar,绕过安装app时的签名验证

root完,也不自动关机了,发现用常规方式安装app都无法安装,提示“应用未安装”,网上搜索了下android系统 apk 安装流程,最后确定是在  Services.jar 的 PackageManagerService-->installPackageLI 里有签名验证

1584668266604.png

根据设备里系统属性不同,有3个不同的签名,根据属性值分别校验,校验不通过就返回,app安装失败。想绕过当然是反编译修改上面的默认值false为true再回编,想法很简单,但是第一次修改Services.jar 还是碰到了一些问题

第一,baksmali 生成 smali文件的时候,老提示少一个依赖的jar包,但是并没有这个包

第二,有的文章说要先合并odex,再反编译修改。后来想应该是不同的android版本吧

第三,只改Services.jar的话,把对应的odex 删除以后会不会根据 jar 自动生成,根据网上找到的资料,好像系统核心的这些包odex是在系统编译的时候生成的,自己安装的apk安装的过程中产生(对android了解还少,不一定对)

找资料找的一头雾水,但也有一些发现,了解到有一个 dexopt-wrapper 可以根据 jar 包生成 对应的odex,有一个帖子提到用IDA反编译jar包里的classes.dex,然后定位到字符串用winhex修改了里面的文字,还有一篇帖子其中说了一句有个工具可以修改 Services.jar (BatchApkTool)

根据 IDA+winhex 的那篇文章想到,如果反编译不出 smali,直接修改 classes.dex 文件把 false 改成 true 呢,于是用IDA找到对应的位置

1584670653615.png

1584670778997.png

winhex 中把  0F 改为 1F, 0A 改成 1A

为什么这么改?我也是猜的,虽然查了java字节码的操作码,但是没找到很详细的资料,只知道12指令对应Idc

1584671068883.png

改完保存,然后用 jar 命令打包回 jar包。把新的jar包拖进反编译工具,反编译没报错,找到对应代码,还真就变成了true

1584671300730.png

一切看起来很正常,但是测试用 dexopt-wrapper 生成对应的 odex却失败了,也不清楚是这么修改文件不行,还是dexopt-wrapper有问题

手里没有刷机包,为了尽量避免变砖,决定用另外一个帖子提到能修改jar包的工具试试,解压后目录如下

1584671764047.png

启动后,是一个工具集,看起来很厉害,(使用起来发现真的很厉害)

1584671780854.png

把Services.jar放到_INPUT_JAR 下面,选 06,简简单单的反编译成功了,找到对应的smali文件,修改后再选 07,新的 Services.jar 就出来了,但是对比原版的Services.jar,个头小了不少。尝试用 dexopt-wrapper生成odex,很顺利就成功了。这么看来用winhex修改的文件可能还是有问题。

用新生成的jar和odex覆盖系统原来的文件,并设置好权限和所有者后,可以正常安装app当普通平板用了。

总结一下Services.jar修改步骤就是(android4.4.2)

(1) 反编译Services.jar

(2) 修改后回编

(3) 用dexopt-wrapper生成对应的odex文件

(4)覆盖回去并设定好权限



其他
自己水平有限对安全防范提不了意见,但是像这次如果关机那两秒进制触摸等操作,如果没有必要不预置ES文件浏览器,就没有下文了

附 BatchApkTool 下载地址
链接:https://pan.baidu.com/s/1BDlZOT0PEJYAq6ecgqNHoQ
提取码:y9mk
复制这段内容后打开百度网盘手机App,操作更方便哦

免费评分

参与人数 13吾爱币 +13 热心值 +12 收起 理由
bugof52pj + 1 + 1 用心讨论,共获提升!
刘洪1964 + 1 + 1 用心讨论,共获提升!
oxxo119 + 1 + 1 谢谢@Thanks!
带头大哥Even + 1 + 1 很厉害,猜对了
1ssue + 1 膜拜
西枫游戏 + 1 + 1 用心讨论,共获提升!
真爱与自由 + 1 + 1 用心讨论,共获提升!
konglsh + 1 + 1 我很赞同!
笙若 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Pholhx + 1 + 1 谢谢@Thanks!
oubencoffee + 1 + 1 用心讨论,共获提升!
lzw-723 + 1 + 1 用心讨论,共获提升!
wszbzb + 1 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

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

王帅哥 发表于 2021-12-15 22:50
我也遇到 了差不多同样的问题,车机,好不容易刷进去了re管理器,但是不管安装什么软件都是  应用未安装  用pm命令安装也是直接报internal_error  按您这思路,没有找到正确的位置。。唉
 楼主| thenow 发表于 2020-3-21 10:12
Hmily 发表于 2020-3-21 01:57
MD的图片可以不用它的语言格式,直接用论坛本身的插入就行,这样就不会有很多图了,方法看这里https://www. ...

谢谢,前去学习一下

点评

看了之后编辑一下吧,我给你编辑貌似有的图对不上,不敢保存,怕给你弄乱了。  详情 回复 发表于 2020-3-23 12:50
wszbzb 发表于 2020-3-20 11:45
lynxtang 发表于 2020-3-20 12:27
感谢分享,步骤和思路很清晰啊,学习了。
hxijin 发表于 2020-3-20 12:39
学习啦。。。。。谢谢
aqq1 发表于 2020-3-20 12:57
特别好,,详细的教程,,感谢楼主分享
longsui48 发表于 2020-3-20 13:15
这个是真的牛逼了
雨落惊鸿, 发表于 2020-3-20 13:32
牛啊 厉害厉害
mtda 发表于 2020-3-20 13:55
回帖是一种美德
zkq970413 发表于 2020-3-20 13:56
这个厉害了!膜拜大佬
linruo218 发表于 2020-3-20 14:09
厉害厉害!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-21 17:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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