【签名校验分析】姨妈来咯签名校验再次分析
本帖最后由 lianquke 于 2022-5-8 12:51 编辑这个软件的签名校验我在一年前就发过帖子,手撕“姨妈来咯”签名校验。当时对逆向的理解还不深,现在重新分析一下。
一年前我的贴子:https://bbs.binmt.cc/thread-68293-1-2.html
芽衣大佬的分析帖子:https://www.52pojie.cn/thread-1511100-1-1.html
(我认为此软件的最简单的过签方式就是改掉Java层判断,只改一处即可过签,可见我一年前的贴子)
{:301_1009:}
今天写的方式反而麻烦一些。
一、目录:
此次要处理的校验:
1.native层的获取签名
2.软件入口校验
3.PMS代{过}{滤}理校验
二 、详细:
1.native获取签名
DA打开 libnative-interface.so;
找到java方法getSHA1Signature的native实现
F5转C代码
可以看到有两处获取了签名值。
第一处 signatures是最常用的,也是pms代{过}{滤}理就能过掉的。
第二处是getApkContentsSigners,是API 28以上新增的方法,PMS过不掉。
至于用哪个获取签名,则有一处判断。
“v11<28“
此处是判断API是否大于28,也就是能否用新方法获取签名。
鉴于大规模改so我没那个能力,此时的想法是,把判断改成无条件,一律用signatus来获取签名,再配合pms代{过}{滤}理,不就行了?
把这个改成”B“跳转,直接运行signatures即可
改完之后转C看看,果然只有这一种方式获取签名值了。
打包放回去,替换原来的libnative-interface.so即可。
2.入口校验
用mt的过签普通版,再替换修改好的so文件,本以为可以了,打开之后,直接闪退。
抓一下闪退日志。
问题发生在这个类的这个方法。进去看看。
转成Java后,一看就明白了。
这不是入口类校验吗?
入口字符串MD5加密后,和一个字符串进行对比。字符串应该是正确的类名的MD5加密。
此处把对比的结果改成1,即可绕过入口校验。
全局搜索一下,看看是否只有一处入口校验?
搜索那个特定的字符串即可,进去看看。
”a6ea472b4530e56b0f089fe0a887677a“
有三处入口检验,每个都进去,修改对比的结果为1.
此时,入口校验已经绕过。
3.PMS代{过}{滤}理校验
再次打开,主页进去了,点击设置闪退。
查看日志。
进入发生闪退的类看看,转Java
研究过PMS代{过}{滤}理的,一眼就能看出,这是校验自身是否被代{过}{滤}理。
修改方式和入口校验类似。
让它和正确值的对比结果一样即可。
再全局搜索一下,有没有其他代{过}{滤}理检测的地方。
有四个,每个都进去,和上面修改方式一样。
此时,pms代{过}{滤}理校验已经绕过。
打开:
一切正常。
三、总结:
1.getApkContentsSigners,pms代{过}{滤}理过不掉,通过修改,使其用能被pms代{过}{滤}理的来获取签名。
2.入口校验
3.pms代{过}{滤}理校验。
ps:确实很麻烦,不如之前的方式简单,但是分析一次还是很有趣的。{:301_997:}
yyc247020 发表于 2022-5-8 18:07
请教下楼主 请问使用的是什么工具查看崩溃记录
酷安搜索“日志记录器” lianquke 发表于 2022-11-20 01:03
具体是哪个软件?不同软件方式不同
https://oaesrc.lanzouy.com/iZWpS0d2fnuj
提取码ysdq
这个App是不改包名随便揉搓拿捏,一改包名脾气大的不行,直接闪退。请教了几个说是包名验证,至于怎么去除,他们也说不清楚{:301_1004:} 大佬,你这图片排版可以再改一改{:301_997:} 这 路过 瞅瞅姨妈是谁 正己 发表于 2022-5-8 12:33
大佬,你这图片排版可以再改一改
哇 正己大佬 我第一次发没经验 一会改一下 看到你过审了 马上就来点个★ 楠枫nf 发表于 2022-5-8 12:46
看到你过审了 马上就来点个★
谢谢支持~ 大佬能讲讲怎么定位到这个so的吗 Tonyha7 发表于 2022-5-8 15:07
大佬能讲讲怎么定位到这个so的吗
大佬你好,我不是大佬。你看看帖子最开头的两篇文章,就知道了 lianquke 发表于 2022-5-8 15:37
大佬你好,我不是大佬。你看看帖子最开头的两篇文章,就知道了
ok 谢谢了 请教下楼主 请问使用的是什么工具查看崩溃记录