2010-07-12 52 views
2

是否可以在不获取源代码的情况下修改Linux中的共享库(.so)?在Linux中修改共享库

我知道LD_PRELOAD,但是对于在共享库本身中使用的函数有用么?

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

+0

不容易,没有。什么库?你想改变什么? – Rup 2010-07-12 09:08:04

+0

一个webkit共享库;) 共享库是webkit的专有构建,但它使用大部分相同的开源函数。 我想要做的是修改一个内部函数。该功能用于在屏幕上呈现文字。我想在发送给framebuffer之前修改文本(用于BiDi)。我可以从开源repo构建相同的库并添加这些修改,但由于它是专有的(这意味着它具有UNopensource修改),我可以进一步看到的唯一方法是二进制修补(如果它支持它,则为LD_PRELOAD)。 – UAE 2010-07-13 12:55:27

+0

顺便说一句,rendertext函数只能在库中调用,不能从外部调用。 – UAE 2010-07-13 12:55:55

回答

1

即使拥有所有可用的文档,代码和支持,修改应用程序也很困难。试图以二进制形式修改应用程序(大概)没有调试符号,因此没有文档(根据您没有代码的事实来判断)因此是一项艰巨且冒险的工作。

应用程序逆向工程很困难,但可以在给予足够资源,决心,工具和知识的情况下完成:所有这些都取决于具有足够有价值的目标。