@mickeyandkaka wrote:
alfred 4.0.2可以直接修改汇编可用,但是4.0.3不行
需求: 激活alfred 4
**日志: 暂无,就是crash在了某个不相关的函数,不知道为什么修改某个地方汇编为什么会影响这个。
**代码:暴力改汇编不行后,尝试下hook函数
#if !defined(_DYLD_INTERPOSING_H_) #define _DYLD_INTERPOSING_H_ #define DYLD_INTERPOSE(_replacement,_replacee) \ __attribute__((used)) static struct{ const void* replacement; const void* replacee; } _interpose_##_replacee \ __attribute__ ((section ("__DATA,__interpose"))) = { (const void*)(unsigned long)&_replacement, (const void*)(unsigned long)&_replacee }; #endif int (*_isNGiw32TGSAb)(); int my__isNGiw32TGSAb() { return 0x1; } DYLD_INTERPOSE(my__isNGiw32TGSAb, _isNGiw32TGSAb);
操作步骤:
1先暴力直接把_isNGiw32TGSAb的汇编改成类似return 1的写法,然后生成二进制,发现crash
重新load看发现其他地方的函数发生了变化,不知道为什么crash了2 尝试hook 在运行二进制前 在DYLD_INSERT_LIBRARIES环境变量上加入,也没用
是不是自己搞错了什么或者漏了什么
** 任何其他描述: 简单的说,改了一个函数的汇编后,其他没修改的函数似乎也变化了导致crash
** 环境: 10.14.4
Posts: 2
Participants: 2