反编译delphi_反编译Delphi(1/3)

本文探讨了反编译Delphi项目的意义和可能性,包括恢复丢失的源代码、迁移应用、查找病毒等。虽然全自动反编译完全重现原始源代码是不可能的,但存在一些工具如IDR、Revendepro和DeDe等,可以帮助恢复部分源代码。同时,文章强调了反编译的法律界限,指出在不同国家的版权法规定下,反编译的合法性各有不同。
摘要由CSDN通过智能技术生成

反编译delphi

Simply speaking, decompilation is the inverse of compilation: translating an executable file into a higher level language.

简而言之,反编译是编译的反面:将可执行文件翻译成高级语言。

Suppose you lose your Delphi project's source and you only have the executable file: reverse engineering (decompilation) is useful if the original sources are not available.

假设您丢失了Delphi项目的源代码,并且只有可执行文件:如果原始源不可用,则逆向工程(反编译)很有用。

Hm, "sources not available", does this mean that we can decompile other people's Delphi projects? Well, yes and no...

嗯,“资源不可用”,这是否意味着我们可以反编译他人的Delphi项目? 好吧,是的,不是...

真正的反编译可能吗? ( Is True Decompilation Possible? )

No, of course not. Fully automated decompilation is not possible - no decompiler could exactly reproduce the original source code.

不,当然不是。 不可能进行全自动反编译-没有反编译器可以准确地复制原始源代码。

When a Delphi project is compiled and linked to produce a standalone executable file, most of the names used in the program are converted to addresses. This loss of names means that a decompiler would have to create unique names for all the constants, variables, functions, and procedures. Even if a certain degree of success is achieved, the generated "source code" lacks meaningful variable and function names.Obviously, source language syntax no longer exists in the executable. It would be very difficult for a decompiler to interpret the series of machine language instructions (ASM) that exist in an executable file and decide what the original source instruction was.

编译并链接Delphi项目以生成独立的可执行文件时,该程序中使用的大多数名称都将转换为地址。 名称的丢失意味着反编译器将必须为所有常量,变量,函数和过程创建唯一的名称。 即使取得了一定程度的成功,生成的“源代码”也缺少有意义的变量和函数名。显然,可执行文件中不再存在源语言语法。 反编译器很难解释可执行文件中存在的一系列机器语言指令(ASM),并决定原始源指令是什么。

为什么以及何时使用反编译 ( Why and When to Use Decompilation )

Reverse engineering can be used for a several reasons, some of which are:

可以使用逆向工程有几个原因,其中一些是:

  • Recovery of lost source code

    恢复丢失的源代码
  • Migration of applications to a new hardware platform

    将应用程序迁移到新的硬件平台
  • Determination of the existence of viruses or malicious code in the program

    确定程序中是否存在病毒或恶意代码
  • Error correction when the owner of the application is not available to make the correction.

    应用程序所有者无法进行更正时的错误更正。
  • Recovery of someone else's source code (to determine an algorithm for example).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值