非越狱app下能否根据地址hook指定的地址的c代码库?

想调回原函数,要把原函数被覆盖的前几条指令写好

抱歉,是我没搞清楚,把偏移量算错了,上面的提问请忽略哈

@jmpews 请问一下 如果有多个函数需要hook , MachOStaticPatcher 多次使用?

不需要多次使用,一次使用就够了
./MachOStaticPatcher [macho] [地址1] [地址2] ····

@calssion 好的

0x10046EE4C 0x10046EDC0,这两个函数长什么样,来自于什么段?
这两个函数地址需要是在macho中的物理地址喔

这个MachOStaticPatcher是inline hook,是patch函数的,写参数和返回值避免污染寄存器
指针的话不太合适

1、可信,因为是读二进制里面的指令解析的
2、写不写都行,看你想不想拿参数做事,但返回值最好给,这两个函数还是比较鲁棒
2、 ZzReplace( void *function_address, void *replace_call, void **origin_call)用这个的话你填的是运行时地址
3、运行时hook和Staticpatcher的inline hook不同
3、用Staticpatcher最好写参数,因为怕操作污染寄存器,所以用参数保存
抱歉,不知道我有没有说清楚

我是开源的, 兄弟, 看一下代码.

lipo提取为单架构尝试下,可以自己写个demo测下嘛,
找dSYM就是物理地址了或者我是用hopper看的
如果有符号直接nm都能看到了
如果自己写的demo都不行那再聊

大佬们,问下 monkeyDev里面怎么使用这个libRuntimeSupport.dylib动态库,monkeyDev本身生成的动态库里面用不了这个动态库,有没有办法

MachOStaticPatcher是什么静态Patch吗,可以实现非越狱环境下hook c函数?

MachOStaticPatcher这个代码在哪里还能下到

https://github.com/jmpews/Dobby/tree/793b9c3bd11d7666eb8ca186e2ddea7072f92f73/Plugins/MachOStaticPatcher

被移除了?我运行有问题 segmentation fault

1 个赞