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