BCB编写的软件,能反编译出C++代码吗?谢谢。
想看看老外的软件。(一个小软件)。 软件发布时,所谓的加壳等,是不是就是防止反编译? 加壳是防盗用,当然也防反编译,防反编译的能力是加密软件的第一指标啦. 能靠电脑从机器码反出C++来,共_产主义也不远了。 呵呵,当然是可以,只是没有什么用而已。大不了反编译成
__asm("MOVEAX, ");
这样的东西,同样是C++语法,C++代码,没什么大不了的。
有一些代码重构的可以重构出部分正规的C++代码出来,完整重构的还没有见到过。
加壳并不一定就是防盗的,更不可能防止反编译。壳有两种,一种是压缩壳(UPX啊,ASPack啊,FSG啊等等),主要目的是为了减少程序集的体积的,程序集文件改变了,也起到一定的防盗作用(其实是根本没用,能轻易的脱壳出来),这是由于他们的目的所决定的。另一种壳是加密壳,主要目的就是为了防盗(印象中好像PECompact啊、北斗啊都属于这一类),不过似乎作用也并不是非常大。所有程序集运行中都是要解密后映射到内存中去的,有些软件就能将内存中的映像Dump出来。
另外,所有的程序集都无法阻止反编译,除非文件根本就不是程序集。反编译啊!反汇编也是一种反编译。所以,无论是静态的反编译(如IDA)或动态的反编译(如SoftICE),都无法阻止。 怎么可能呢? 楼主先尝试从香肠变成猪看看? 转帖:
楼主SYJ_SUN()2006-02-02 12:15:34 在 VC/MFC / 非技术类 提问
我分析了一下VC++6.0生成的EXE,觉得把VC++6.0生成的EXE反编译成VC++代码并非不可能的任务.
现在我已可以把VC资源中的菜单/按钮对应的消息函数找出来(是静态的,并非动态跟踪),再把这些汇编
代码反编译成C++代码也是基本可能的(只是可能要用一些内嵌汇编,变量也不可能是原来的名字,而是用"参数1""参数2"来代表).不过我的日程表里还有很多重要的工作要做,我也不想在这反向工作上花太多时间,这进一步的工作就留待以后有闲时再说了.如果有人用这项技术能产生大效益,或者可以出大价钱,可以跟我联系. WWW.MCU-HOME.COM,SUN-TECH@21CN.COM google exe2c
没用过,正在下,看看如何。 http://www.itee.uq.edu.au/~cristina/dcc.html 回复【7楼】Excellence精益求精
转帖:
楼主syj_sun()2006-02-02 12:15:34 在 vc/mfc / 非技术类 提问
我分析了一下vc++6.0生成的exe,觉得把vc++6.0生成的exe反编译成vc++代码并非不可能的任务.
现在我已可以把vc资源中的菜单/按钮对应的消息函数找出来(是静态的,并非动态跟踪),再把这些汇编
代码反编译成c++代码也是基本可能的(只是可能要用一些内嵌汇编,变量也不可能是原来的名字,而是用"参数1""参数2"来代表).不过我的日程表里还有很多重要的工作要做,我也不想在这反向工作上花太多时间,这进一步的工作就留待以后有闲时再说了.如果有人用这项技术能产生大效益,或者可以出大价钱,可以跟我联系. www.mcu-home.com,sun-tech@21cn.com
-----------------------------------------------------------------------
找到资源什么的其实BCB的更加方便,比如DeDe都能定位到控件、方法,更不用说资源了。只是每一个方法都只能反编译出汇编代码,按照他的汇编代码原则上是有部分可以转换成C++的。最典型的就是异常处理,不管是C++的try...catch...finally还是Delphi的try...except...end还是try...finally...end都是可以反编译到高级语言的。 汇编是可以的。
简单的可以转成C或C++.
复杂的可能就够呛。
页:
[1]