如何从linux库文件中恢复cpp数据?

时间:2011-03-23 13:57:52

标签: c++ file data-recovery

我不小心删除了一个包含我的一些有价值代码的.cpp文件。 它是我自己的库的一部分:libandrissh.so 我该如何恢复?我试过手术刀,但没找到它。

我想知道我是否能以某种方式从我的.so或.o其他文件中提取信息。我认为这是可能的,因为我使用该库的程序仍然有用。

有什么建议吗? 谢谢你们

3 个答案:

答案 0 :(得分:3)

如果它被删除而不是在回收站或垃圾箱中,则无法从已编译的二进制文件中轻松恢复。有一些反汇编程序可以帮助你,但我还没有看到任何生产就绪的反编译器可以让你回到原始资源。即使它们可能无论如何都可能无法恢复原始符号/变量名称。

您最好的选择是查看PhotoRec之类的内容来搜索硬盘上的空闲扇区。尽管它的名字,它实际上发现了许多不同的文件格式,包括视频,音乐,文档,文本甚至C源文件。只要您的文件没有被覆盖,您就可以找到它。当她的文件系统损坏时,我用它从我妻子的硬盘驱动器中恢复了大量数据。此外,它在GPL下是免费的。

答案 1 :(得分:2)

如果您有库二进制文件,您当然可以对其进行反汇编(例如使用objdump --disassemble libandrissh.so),但是从“裸”机器代码返回到更高级别的语言(如C ++)并不容易。我不知道有任何标准工具可以做到这一点。

答案 2 :(得分:0)

你可以试试像[{3}}

这样的反汇编程序

根据所使用的编译器,标志和其他一切你可能得到不错的结果。