有什么方法可以将我的.dll文件再次反汇编为机器代码? 我需要哪些应用程序以及可以恢复多少?反汇编在Delphi中编码的DLL - 如何启动?
回答
你不能获得比汇编代码更多的东西,因为Delphi本身不像Java或.Net语言,你可以从中获得更多的信息。
这取决于德尔福版本。有一个Delphi .NET。即使对于Win32,一些旧工具也可以提取资源(如表单),并用除代码隐藏之外的所有东西恢复它们。 – TrueWill 2010-02-26 18:34:52
你们中的任何一个人都可以看着它并尝试帮助我吗? – user282262 2010-02-27 03:59:28
Microsoft有一篇文章描述如何将MSIL编译为本地代码。 (http://msdn.microsoft.com/en-us/library/ht8ecch6(VS.71).aspx)。您可以使用Ngen或商业工具。 Java字节码也可以编译为本地代码。 – mjn 2010-02-28 17:23:35
您需要像IDA Pro一样的反汇编程序。他们也有free edition。您将取回机器代码(程序集),并且您应该能够挑选出对Windows API进行的函数调用。
奥奇,感谢所有的答案:) 你或任何人都可以帮我翻译整件事,这样我就可以恢复工作了吗? – user282262 2010-02-27 03:57:10
检查PE File Explorer,这个工具很棒,使用Delphi构建,并且对Delphi应用程序有特殊的支持。
您可以分析,分解,编辑资源
PE Explorer是检查自己的软件的内部 运作最功能丰富 程序, 更重要的是,第三方的Windows 应用并且您没有源代码的库文件为 。一旦你 选择了你想要检查的文件,PE Explorer将分析 文件,并显示PE文件中包含的PE 标题信息和所有 资源的摘要。 从这里开始,该工具可以让您探索 中的一个可执行文件。
alt text http://www.pe-explorer.com/img/scr-pex-disassembler.png
如果您丢失了源文件,你真的只需要在“让您的工作回来”,那么你可能也开始重新编码,因为你不会得到任何有用的东西脱离反编译器。自Ms-DOS COM文件开始以来,我一直无法从反编译器中获取任何可重新编译的内容(不要与Windows COM混淆!)。
用高级语言编写的现代文件运行时会抛出优化编译器,而不包括重建源代码所需的所有内容。
的例子,它的只是冰山的顶部:
- 德尔福的优化连接将跳过这不是使用的代码。有没有注意到当你想要在一行代码上放置一个制动点,并且程序启动时,制动点被忽略,因为代码已经被优化了?
- 德尔福的优化编译器有做各种各样的事情与你的代码的选项:
- 它可以内联程序(使他们不再,你写了他们,他们是在调用时)。
- 它可以放松“for”循环(所以你有一个“for i:= 1 to 10 do something”你现在有“东西;某些东西; ...”
- 局部变量得到优化,地址得到重用
- 数据结构与任何一天的规则是一致的。所以你的一个字+ 1字节的结构可能在内存中有4或8个字节,而不是你想象的那样。
- 代码从其他库导入。一个DLL不是一个DCU。 3行DLL可能实际上从这些“使用”子句中导入了数千行代码。
我从来没有见过Delphi编译器展开循环,我怀疑它确实如此。你可以发表一个例子吗? – mghie 2010-02-28 10:38:36
- 1. 反射器反汇编WPF4 beta2 DLL
- 2. 如何反汇编原始MIPS代码?
- 3. 如何反汇编原始x86代码?
- 4. 如何反汇编ABC字节码?
- 5. 如何正确反汇编.NET代码?
- 6. 在Delphi中编写Excel的DLL
- 7. 调试反汇编代码
- 8. 从c反汇编代码#
- 9. 理解反编译汇编代码
- 10. 反编译汇编 - 异常代码
- 11. 如何使用Delphi的内嵌汇编
- 12. 如何在应用程序启动时执行汇编代码
- 13. AspectJ反汇编
- 14. 如何保护我的dll免受反汇编?
- 15. 在delphi 4中反编译* .DLL到.net的程序集
- 16. Visual Studio 2008:如何查看当前未执行的DLL的反汇编代码
- 17. 如何在反编译C#dll后编译dll?
- 18. 如何避免反汇编.NET DLL文件?
- 19. 如何从stdin中逐行反汇编?
- 20. CachedAnonymousMethodDelegate1从代码反汇编代码
- 21. 如何在Delphi 6中编码base64?
- 22. 来自visual studio的反汇编代码
- 23. 反汇编Linux的能够反汇编旧DOS.COM/.EXE文件
- 24. 是否有反汇编程序生成可编译的汇编源代码?
- 25. 试图反汇编
- 26. 反向地理编码getPostalCode启动
- 27. 反汇编自修改代码
- 28. 如何编译汇编代码?
- 29. 如何编译64位汇编代码
- 30. 在C#汇编中引用Java DLL?
经验法则:如果不值得把它交给逆向工程专家,代码是不值得的。重写它。 – 2010-02-27 12:54:21
使用反汇编程序并自己进行逆向工程 - 您的要求太高。你似乎并不了解这个过程耗时多长。谁会说你不是在这里问别人来帮助你闯入别人的代码? – logout 2010-02-28 10:40:35