怎样编程实现反汇编?

zrpzf 2005-10-28 08:35:37
组件?函数?方法?


请赐教

...全文
334 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝色光芒 2005-11-01
  • 打赏
  • 举报
回复
如果要针对Dede的话,LY的方法可行,DeDe就公布源代码的版本来说有部分缺陷,可以用这些缺陷来完成。
如果要针对大众话的静态反汇编的工具来说的话,可以用以下方法之一或者结合起来:
1、加入花指令
2、SMC
3、虚拟机执行
4、某部分代码执行前还原,执行后的销毁

还有很多方法...
ly_liuyang 2005-11-01
  • 打赏
  • 举报
回复
自己看DeDe的源码吧

_____________________
http://lysoft.7u7.net
Eastunfail 2005-10-31
  • 打赏
  • 举报
回复
你要用你的程序实现反汇编的话,可以使用DeDe的反汇编代码,不过作者要求你必须在你软件的关于等地方中加入你使用了他的代码这样的信息
ehom 2005-10-31
  • 打赏
  • 举报
回复
模型匹配,回溯查找,把机器指令的数据转译成可阅读的汇编指令
herman~~ 2005-10-30
  • 打赏
  • 举报
回复
学习
Adamlee 2005-10-29
  • 打赏
  • 举报
回复
保护软件,反编译大讨论正在火热进行。。。。

http://www.delphipages.cn/index.asp?boardid=12&page=
lovendII 2005-10-28
  • 打赏
  • 举报
回复
Delphi 反编译工具

复位工程一直被认为是技术奇才的专有艺术,需要熟悉汇编语言和调试器。下面几个Delphi反编译器允许任何人复位大多数Delphi可执行文件,即使只有有限的技术知识。

如果你对Delphi程序复位工程感兴趣,我建议你看一看以下几个“反编译器”:

DeDe

DeDe是一个非常快的程序,用于分析Delphi编译的可执行文件。反编译之后,DeDe会提供以下信息:

所有的目标dfm文件。你可以用Delphi打开并编辑它们;
带有良好的注释的ASM代码的所有发布的方法,它涉及字符串、输入函数调用、类方法调用、单元的组件、Try-Except和Try-Finally块。默认情况下,DeDe仅仅只获得已发布方法的源代码,但如果你通过使用Tools | Disassemble Proc菜单知道RVA偏移量的话,你也可以处理可执行文件中的其他过程。
大量的附加信息。
你可以创建一个带有所有的dfm、pas、dpr文件的Delphi工程的文件夹。注:pas文件包含上面提及的被良好注释过的ASM代码。他们不能被再编译!
Revendepro

Revendepro可以找到程序中几乎所有的结构(类、类型、过程等),并生成pascal表达式、过程则以汇编程序的形式写出来。由于汇编程序的某些限制,生成的结果不能被在编译。这个反编译器的源代码可以免费获得。不幸的是,这是唯一一个我不能使用的反编译器—当试图用它反编译某些Delphi可执行文件时,总提示异常。

MRIP

这个对用途文件分割器可以从其它文件中寻找和摘取文件。MRIP分割100多种文件格式。对我们而言,最重要的是MRipper可以反编译任何Delphi可执行文件。该工具可以从Delphi应用程序中摘取所有的资源:cursors(光标)、icons(图标)、dfm文件、pas文件和其他资源。pas文件不包含事件过程执行。MRIP是一个DOS工具。

DfmExplorer

以下是DfmExplorer的说明(包括原始资料):

通过调用Win32 API的“LoadLibrary”或“LoadLibraryEx”函数在内存中载入可执行模块(EXE\DLL\BPL\DPL)。
通过Win32 API的“EnumResourceName”函数找寻RCDATA资源。
载入每个发现的DFM块,解码它并以表的形式(包括它们的名称)存储在内存中。
在程序的主窗口我们可以以文本方式可视化所有载入可执行文件的所有的DFM。
最后,程序可以保存到DFM选择的磁盘,作为ASCII文件(.RC)或作为二进制块(DAT)连接到可执行文件中。
Exe2Dpr

如果你试图放松你的工程源代码,这个Delphi工程源代码救助器可以挽救丢失的源码部分。救助器生成所有的带已分配属性和事件的工程表单和数据模块。生成的事件过程没有主程序(它不是反编译器),但又在可执行文件中的代码地址。这个工具没有GUI—它使用命令行的形式:'exe2dpr [-o] exeFile'。工程源代码在当前目录创建。如果你想覆盖当前目录的任何已存在的文件,就可以使用选项 '-o'。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧