记录一次frida反调试

2023-05-05  本文已影响0人  萌木盖

前言

首先是我有个app,我就不说是谁了,里面的反调试是libmsaoaidsec.so实现的。
然后看到一个文章bilibili反调试
有两个问题

找方法偏移地址

他写的我就不重复写了

主要就是找地址


image.png
image.png
image.png

偏移地址分别为1AEE4,1A574

找pthread_create创建的地址

打开ida 搜索pthread_create , 双击


image.png

交叉引用


image.png
image.png
看最后两个
image.png

sub_7DE0就是pthread_create,上面的箭头熟悉吧1AEE4 刚才找的便宜地址 ,说明就是这里。
另一个同理,那就nop掉这两个就可以了。

找nop 地址

image.png

1A5B0+2A8 = 0x1A858 1B88C+28 = 0x1B8A8

对原论坛代码进行修改

function bypass(){
    var module = Process.findModuleByName("libmsaoaidsec.so")
    // 32位
    // nop(module.base.add(0x10AE4))
    // nop(module.base.add(0x113F8))
    // 64位
    nop(module.base.add(0x1A858));
    nop(module.base.add(0x1B8A8));
}

nop方法 ThumbWriter方法会提示找不到 64要用Arm64Writer 且putNop要写四个 32位写两个

function nop(addr) {
    Memory.patchCode(ptr(addr), 4,
            code=>  {
        // 64位
        const cw = new Arm64Writer(code, { pc: ptr(addr) });
        // 32位
        // const cw = new ThumbWriter(code, { pc: ptr(addr) });
        //  32位putNop两次       64位要putNop四次
        cw.putNop();
        cw.putNop();
        cw.putNop();
        cw.putNop();
        cw.flush();
    });
}

为啥个数有区别呢?


image.png

结语:
还有其他方式也能过 我就卖关子了 :)奸笑

上一篇下一篇

猜你喜欢

热点阅读