安卓 美图秀秀 过签名校验 爆破hook检测 教程

查看 110|回复 10
作者:芽衣   
我发现这个和次元壁纸检测hook如出一辙,软件下载地址:https://www.coolapk.com/apk/com.mt.mtxx.mtxx
别人介绍给我的,我花了几分钟看了一下,已经爆破…… 这个不算难,就是有点麻烦。
软件样品为当前最新版9.0.5.1,这个教程出来以后我估计很快就会和谐了。
准备工具:
1、DDMS
2、IDA
3、MT管理器、NP管理器等
我本来想手改的,但是dex和so获取签名的地方实在太多了,apk体积又大,处理很耗时间,遂偷懒不想弄了,所以只好借助mt管理器一键破解签名校验了。

首先用mt管理器进行爆破,一键hook。结果打开软件的时候就弹出“非法请求”的提示,无法加载首页和消息,不出意外肯定是被检测到了。


1.png (98.33 KB, 下载次数: 0)
下载附件
2020-11-17 22:06 上传



1.png (61.19 KB, 下载次数: 0)
下载附件
2020-11-17 22:03 上传

根据ddms的运行记录,我发现一个关键的log,就是上图的【
siglib: pms is hooked
】,表示签名已被拦截。所以可以认定是so搞的鬼。直接搜索
siglib: pms is hooked
,目标锁定
librelease_sig
,直接把这个丢进ida看看怎么回事。


1.png (19.44 KB, 下载次数: 0)
下载附件
2020-11-17 22:14 上传

加载完毕后搜索字符串,只有1个结果,双击进入。


1.png (63.03 KB, 下载次数: 0)
下载附件
2020-11-17 22:17 上传

通过汇编代码可以发现这里进行了一个判断,所以根源不出意外应该在ValidateKey::isHookPMS,现在双击进入这个函数。它的代码如下:
{
  ValidateKey *v2; // r4
  int v3; // r9
  const char *v4; // r2
  int v5; // r8
  int v7; // r7
  int v8; // r6
  v2 = this;
  v3 = ValidateKey::getCurrentPMSObject(this, a2);
  if ( !v3 )
  {
    v4 = "siglib: getCurrentPMSObject return null";
LABEL_5:
    _android_log_print(4, "JNI", v4);
    return 1;
  }
  v5 = (*(*v2 + 124))(v2, v3);
  if ( !v5 )
  {
    v4 = "siglib: GetObjectClass return null";
    goto LABEL_5;
  }
  v7 = (*(*v2 + 40))(v2, v5);
  if ( !v7 )
  {
    v4 = "siglib: GetSuperclass return null";
    goto LABEL_5;
  }
  v8 = (*(*v2 + 24))(v2, "java/lang/reflect/Proxy");
  if ( !v8 )
  {
    v4 = "siglib: FindClass java/lang/reflect/Proxy return null";
    goto LABEL_5;
  }
  if ( (*(*v2 + 44))(v2, v7, v8) )
  {
    _JNIEnv::DeleteLocalRef(v2, v3);
    _JNIEnv::DeleteLocalRef(v2, v5);
    _JNIEnv::DeleteLocalRef(v2, v7);
    _JNIEnv::DeleteLocalRef(v2, v8);
    return 1;
  }
  _JNIEnv::DeleteLocalRef(v2, v3);
  _JNIEnv::DeleteLocalRef(v2, v5);
  _JNIEnv::DeleteLocalRef(v2, v7);
  _JNIEnv::DeleteLocalRef(v2, v8);
  return 0;
}


1.png (76.81 KB, 下载次数: 0)
下载附件
2020-11-17 22:21 上传

很明显这里进行了一系列的检测,如果没有检测到hook,就会返回0,如果有则是1。所以只要把所有的结果修改成0就可以绕过pm检测了。回到IDA视图,text:0000663E的R0值改0即可(0020)。


1.png (101.72 KB, 下载次数: 0)
下载附件
2020-11-17 22:25 上传



1.png (325.96 KB, 下载次数: 0)
下载附件
2020-11-17 22:34 上传

已成功加载首页。
我大概看了一下这个so,这个so主要是进行签名检测,好在没有进行超复杂的混淆,要不然得吃瘪
个人安全建议,这个app不知道为什么有那么多的log输出,一些异常就算了,连检测结果都告诉人家……没必要打印那么多日志,而且也占用资源。程序运行也有些卡,测试手机8895cpu,应该不算太差吧。
附上一个修改好的so

librelease_sig.zip
(20.48 KB, 下载次数: 322)
2020-11-17 22:42 上传
点击文件名下载附件
下载积分: 吾爱币 -1 CB

下载次数, 下载附件

zourongfeng   


芽衣 发表于 2020-11-18 17:03
你那个是微信保存的图片,网络原因会导致数据损坏。
用ps保证能打开。

PS打开图片太麻烦了。我的图片也不是微信保存的,有时候是QQ传送过来的,有时候就是自己PS导出的JPG,经常用电脑自带的图片查看器打不开
Readmy   

然后呢,不会是灌水贴吧
alxstar   

支持一下。
daijiaming111   

支持一下.
我也是个粗人   

感觉没啥用啊
805141715   

支持一下.
AIfeifei   

老哥,给力啊
晚晚丿轻风   

楼主,给力收藏一下
myb666   

感谢分享
您需要登录后才可以回帖 登录 | 立即注册

返回顶部