anti-frida检测某书

案例:5bCP57qi5LmmIHYuOC4yNS4xLjAx

现象

尝试frida

frida -H ip:port -f com.xingin.xhs --no-pause

进程直接被杀死
在这里插入图片描述

定位问题

找到检测的so

function hook_dlopen() {
    let is_hook = false;
    Interceptor.attach(Module.findExportByName(null, "android_dlopen_ext"),
        {
            onEnter: function (args) {
                var pathptr = args[0];
                if (pathptr !== undefined && pathptr != null) {
                    var path = ptr(pathptr).readCString();
                    console.log(path)
                }
            }
        }
    );
}

setImmediate(hook_dlopen)
frida -H ip:port -f com.xingin.xhs --no-pause -l xhs.js 

在这里插入图片描述
定位到检测的so文件 libmsaoaidsec.so

过检测

经过多次测试 0x17FC8 这个位置就是开启frida检测的地方,nop掉它,检测逻辑都在 0x175F8 函数里面。
完整代码

function nop(addr) {
    Memory.patchCode(ptr(addr), 8, code => {
        const cw = new Arm64Writer(code, { pc: ptr(addr) });
        cw.putNop();
        cw.putNop();
        cw.putNop();
        cw.putNop();
        cw.flush();
    });
}
 
function bypass(){
    let module = Process.findModuleByName("libmsaoaidsec.so")
    nop(module.base.add(0x17FC8))
}

 
function hook_dlopen(soName = '') {
    Interceptor.attach(Module.findExportByName(null, "android_dlopen_ext"),
        {
            onEnter: function (args) {
                var pathptr = args[0];
                if (pathptr !== undefined && pathptr != null) {
                    var path = ptr(pathptr).readCString();
                    if (path.indexOf(soName) >= 0) {
                        // 刚要加载libmsaoaidsec.so
                        locate_init()
                    }
                }
            }
        }
    );
}
 
function locate_init() {
    let secmodule = null
    Interceptor.attach(Module.findExportByName(null, "__system_property_get"),
        {
            onEnter: function (args) {
                var name = args[0];
                if (name !== undefined && name != null) {
                    name = ptr(name).readCString();
                    if (name.indexOf("ro.build.version.sdk") >= 0) {
                        // 这是.init_proc刚开始执行的地方,是一个比较早的时机点
                        bypass()
                    }
                }
            }
        }
    );
}
// 找到检测的so,寻找检测开启多线程的位置,然后nop掉
hook_dlopen("libmsaoaidsec.so")

成果展示

尝试frida hook

frida -H IP:port -f com.xingin.xhs --no-pause -l xhs.js

在这里插入图片描述
objection 查看所有的Activites

objection -N -h ip -p port -g com.xingin.xhs explore -P ~/.objection/plugins

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值