在Linux中修改共享库

在Linux中修改共享库,linux,shared-libraries,elf,Linux,Shared Libraries,Elf,是否可以在Linux中修改共享库(.so),而不获取其源代码 我知道LD_PRELOAD,但这对共享库本身使用的函数有用吗 有没有办法反编译/反汇编然后重新编译/重新组装二进制ELF文件?即使有所有可用的文档、代码和支持,也很难正确修改应用程序。因此,试图以二进制形式修改应用程序(可能)而不使用调试符号,也不使用文档(根据您没有代码的事实判断),是一项更加艰巨和危险的任务 应用程序逆向工程很难,但只要有足够的资源、决心、工具和知识,就可以完成:所有这些都取决于有一个足够有价值的目标。不容易,不。

是否可以在Linux中修改共享库(.so),而不获取其源代码

我知道LD_PRELOAD,但这对共享库本身使用的函数有用吗


有没有办法反编译/反汇编然后重新编译/重新组装二进制ELF文件?

即使有所有可用的文档、代码和支持,也很难正确修改应用程序。因此,试图以二进制形式修改应用程序(可能)而不使用调试符号,也不使用文档(根据您没有代码的事实判断),是一项更加艰巨和危险的任务


应用程序逆向工程很难,但只要有足够的资源、决心、工具和知识,就可以完成:所有这些都取决于有一个足够有价值的目标。

不容易,不。什么库?您试图更改什么?webkit共享库;)共享库是webkit的专有构建,但它使用了大多数相同的开源函数。我想做的是修改一个内部函数。此函数用于在屏幕上呈现文本。我想在将文本发送到帧缓冲区之前修改文本(用于BiDi)。我可以从开源repo构建同一个库并添加这些修改,但由于它是专有的(这意味着它有未开源的修改),我可以进一步看到的唯一方法是二进制补丁(或者LD_PRELOAD,如果它支持的话)。顺便说一句,rendertext函数只在库中调用,不在外部调用。