LivedForward 发表于 2019-9-28 17:05

对AndroidInlineHook的一些研究和对抗策略

本帖最后由 LivedForward 于 2019-11-7 10:06 编辑

之前有研究过MT管理器的去签名校验Hook,普通版的去签名校验Hook系统的PMS服务,增强版Hook了系统C标准函数库里的Open函数以及Java层的各种IO流函数,对这些函数都进行了重定向,这些都是Android Inline Hook.


导致无论使用Android系统APIPMS还是手动通过C层open函数以及Java层的IO读取的RSA签名公钥都是不真实的信息.对APK自身的安全性有一定的威胁.比如向服务器请求数据时,客户端的公钥信息始终是原始客户端的合法公钥信息.


最佳防Hook的方法当然是关键函数自己来实现,比如dlopen,dlsym.


如何替换系统调用:
https://blog.csdn.net/kwame211/article/details/77964897



关于替换系统服务:
https://my.oschina.net/Draymond/blog/1015187

Hook 技术:
https://www.cnblogs.com/linghu-java/p/9671230.html

Android so注入(inject)和Hook技术:

https://www.cnblogs.com/goodhacker/p/9306997.html


网上比较火热的开源Hook框架是Whale,可以跨平台,免Root,Native以及Java层都可以Hook,针对单个APP注入Hook.以及爱奇艺开源的XHook框架.

之前也有发帖检测这种Hook行为,这里我介绍直接获取真实签名信息的一种方法.有不足之处还望各位大佬海涵和多多批评指正!
检测系统API服务是否被Hook:https://www.52pojie.cn/thread-1026558-1-1.html


这里通过获取到系统内核的Open函数地址,来获取签名文件的公钥信息,这样一些Hook工具也就无效了.


这里的dlopen和dlsym也极有可能被hook,网上已经有大佬自己实现了这两个函数以及与之相关的函数,所以大家可以直接来拿稍作修改使用.


测试APP地址:
接:https://pan.baidu.com/s/13TXEkRAxOUrs0W1vETp6jQ 提取码:k6uf


部分程序代码如下:

获取内核函数地址代码如下:
(网络上已经有定制的dlopen和dlsym,可以稍作修改使用)
void* lookup_symbol(char* libraryname,char* symbolname)
{
   void*imagehandle = dlopen(libraryname,RTLD_GLOBAL|RTLD_NOW);
   if(imagehandle !=NULL){
void* sym = dlsym(imagehandle, symbolname);
if(sym !=NULL){
returnsym;
      }
else{
LOGD("(lookup_symbol) dlsym didn‘t work");
returnNULL;
      }
    }
   else{
LOGD("(lookup_symbol) dlerror: %s",dlerror());
returnNULL;
    }
}

参数libraryname :系统库的绝对地址
参数symbolname:函数名称

dongyun0205 发表于 2019-9-28 17:35

我已经买了永久会员,可是不会用,我不知道我自己为什么要买他。。。。{:301_991:}

608岁的老头 发表于 2019-9-28 19:26

dongyun0205 发表于 2019-9-28 17:35
我已经买了永久会员,可是不会用,我不知道我自己为什么要买他。。。。

这个软件买了不亏的,相对于电脑的调式工具确实有点鸡肋,但是在手机端算是一个不错的静态修改工具了

lnshijia 发表于 2019-9-28 17:11

羡慕你们破解这些的,没那种思维

nnpig 发表于 2019-9-28 17:15

不明觉厉,纯支持

94079490 发表于 2019-9-28 17:20

之前不知道后来会员涨价才知道这个软件

6718522 发表于 2019-9-28 17:22

我表示大脑CPU不够用。运转不过来这些。很想学习,但是也无能为力。{:1_925:}

Oops!Jeff 发表于 2019-9-28 17:50

没钱买会员

frankqq 发表于 2019-9-28 17:58

dongyun0205 发表于 2019-9-28 17:35
我已经买了永久会员,可是不会用,我不知道我自己为什么要买他。。。。

羡慕。。。。。要不卖给我吧,现在永久会员买不起了

ptmaliang 发表于 2019-9-28 18:05

在永久会员买不起了

长歌煮酒 发表于 2019-9-28 18:06

怎么说呢,支持正版吧,等打折入手不亏,也支持楼主的思路
页: [1] 2
查看完整版本: 对AndroidInlineHook的一些研究和对抗策略