我分析了一下VC++6.0生成的EXE,觉得把VC++6.0生成的EXE反编译成VC++代码并非不可能的任务.
现在我已可以把VC资源中的菜单/按钮对应的消息函数找出来(是静态的,并非动态跟踪),再把这些汇编
代码反编译成C++代码也是基本可能的(只是可能要用一些内嵌汇编,变量也不可能是原来的名字,而是用"参数1""参数2"来代表).不过我的日程表里还有很多重要的工作要做,我也不想在这反向工作上花太多时间,这进一步的工作就留待以后有闲时再说了.如果有人用这项技术能产生大效益,或者可以出大价钱,可以跟我联系. WWW.MCU-HOME.COM,[email protected]
现在我已可以把VC资源中的菜单/按钮对应的消息函数找出来(是静态的,并非动态跟踪),再把这些汇编
代码反编译成C++代码也是基本可能的(只是可能要用一些内嵌汇编,变量也不可能是原来的名字,而是用"参数1""参数2"来代表).不过我的日程表里还有很多重要的工作要做,我也不想在这反向工作上花太多时间,这进一步的工作就留待以后有闲时再说了.如果有人用这项技术能产生大效益,或者可以出大价钱,可以跟我联系. WWW.MCU-HOME.COM,[email protected]
解决方案 »
- 大虾急救,EVC4编程中字符、字符串操作问题
- 招合作P2P即时通讯软件开发
- 我想用VC调用一个Com组件中的接口,但是没有.h文件不知道该怎么实现!
- 请教 如何在VC里 加入.chm帮助文件,使客户可以打开?最好能有个小例子代码,多谢大家!
- 我每次HTTP POST的数据不同的。为什么得到结果都是相同?
- 关注windows/linux的socket开发
- 生成tif并在生成的tif文件中写字
- ATL写的中间件在ASP页面调用的问题,急急急!!!!!!!
- dll中使用了Excel中的Font,进程不退出
- 是否有工具能将ppt文件直接转换成doc格式或者txt格式(图片可以忽略)?
- 得到了位图的句柄,怎么在客户区中显示出来啊??大家帮帮忙,万分感激!!
- #include <shlobj.h> 编译错误问题
DeviceIoControl
operator delete(void *)
MessageBoxA
CDialog::CDialog(uint,CWnd *)
CDialog::OnInitDialog(void)
DDX_Control(CDataExchange *,int,CWnd &)还有,不能一一列举。
0.预处理
1.生成符号表
2.生成分析树
3.生成中间代码
4.中间代码优化
5.生成二进制代码
6.地址转换
7.生成目标代码关键是这个0步是把宏替换了,2-4步把代码给弄混了,最终出来的是一个线性代码,没有对象结构的。特别是代码优化时,特定编译器的优化方法不尽相同,而c语言中又可能嵌入了汇编成分,或者和其它库连接等操作。想弄出一个像样的C源码难,C++源码更难
按楼主的描述,简单的helloworld,反编译出来估计是没问题的。也就是一个按钮里面一个MessageBox的那种弱智逻辑的代码。。如果像我现在手头写的程序,上百个没界面的逻辑处理的类,相互间有嵌套有继承有静态工具类,因为没有写注释的习惯,虽然自认为代码风格一流,但是光溜溜源代码我自己经常看迷糊,不得不画图,慢慢分析。据我所知,反编译出来的变量是地址我真替反编译者的脑细胞担心。
最后,就算真有那么神,这个任务我看就免,不是 存心砸兄弟们的饭碗嘛~~~~