Closed mingkuang-Chuyu closed 4 weeks ago
考虑到这样维护成本太高。因为系统自带的经常更新。遇到lld链接时提示符号冲突的,暂时手工忽略一下错误吧。
怎么手工忽略?lld这个重复符号报错的功能,没法关闭。
@wangwenx190 加入 -Wno-XXXX
参数试试?
@wangwenx190 加入
-Wno-XXXX
参数试试?
不是警告,没法用这个方法屏蔽。重复符号直接报错了。我直接看lld源码,有个-force:multiple的参数,可以允许重复符号,然而我用了发现lld直接崩溃
lld-link 重复符号默认会报告错误,所以YY-Thunks提供修改后的 kernel32.lib ws2_32.lib和advapi.lib
支持这种使用场景
Lib模式大致框架,以
RegDeleteKeyExW
函数为例想法是,向
kernel32.lib
注入YY-Thunks.obj
,然后提供符号YY_Thunks_RegDeleteKeyExW
再向advapi.lib注入WeakAlias,将RegDeleteKeyExW
符号自动转发到YY_Thunks_RegDeleteKeyExW
最终RegDeleteKeyExW就被链接器转换到kernel32.lib里的YY_Thunks_RegDeleteKeyExW(YY-Thunks.obj),完成这个链接时Hook。