周杰伦3/15/2025, 2:00:11 AM
文章分类Android安全阅读数 : 20阅读时长 : 3分钟
【Android安全-一种防止app inline hook自身的思路及其实现】此文章归类为:Android安全。
一般的app不会主动去hook自身内存中so模块的一些函数,但经过加固的app就往往会在app启动后立即去inline hook自身内存中一些关键so模块中的关键函数,这主要是为了防止一些注入工具主动调用这些函数完成注入或者其他的一些事情。
inline hook在hook之前需要修改相应内存段的权限,因为一般的可执行段都是不可写的,如果要对其进行inline hook,那必然要修改相应内存段的权限,而这就必然涉及系统调用__NR_mprotect,如果我们直接通过内核模块hook这个系统调用,使app在调用__NR_mprotect系统调用申请修改特定内存段权限时让其直接失败,那是不是就能直接阻止app完成inline hook。经过我的实验其实大部分加固厂商都没注意到这个点,所以绝大部分app都是能用这个思路的。基于此我简单写了个kpm内核模块。65dK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6m8L8X3c8J5L8$3W2V1f1X3g2$3k6i4u0K6k6i4u0Q4x3X3c8f1k6i4y4@1i4K6u0r3e0X3!0t1L8$3!0C8k6i4t1`.
更多【Android安全-一种防止app inline hook自身的思路及其实现】相关视频教程:www.yxfzedu.com