问一下高手 c++dll文件如何反编译 看源代码啊????
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问一下高手 c++dll文件如何反编译 看源代码啊????相关的知识,希望对你有一定的参考价值。
1、首先在反编译工具中打开DLL文件。
2、然后用“程序集管理器”浏览DLL文件的节点。
3、双击某个节点查看它的代码,然后在右侧栏中,弄清楚不同的代码。
4、接着将代码导到Visual Basic中。
5、最后在Visual Studio中编辑代码,就完成了反编译DLL文件。
参考技术A若这个DLL编译时没有进行C++优化和全局优化,反汇编后是完全可以反编译的,但是变量名函数名全部丢失,这样无法看懂。
若这个DLL编译时经过了C++优化或全局优化,二进制代码小于512个字节,否则是基本不可能反编译的。
<script>window._bd_share_config="common":"bdSnsKey":
,"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16","share":
;with(document)0[(getElementsByTagName('head')
[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/ap
i/js/share.js?v=89860593.js?cdnversion='+~(-newDate()/36e5)];</script>
扩展资料
DLL故障排除工具
DependencyWalker检查是否丢失DLL。DependencyWalker检查是否存在无效的程序文件或DLL。DependencyWalker检查导入函数和导出函数是否匹配。
DependencyWalker检查是否存在循环依赖性错误。DependencyWalker检查是否存在由于针对另一不同操作系统而无效的模块。
通过使用DependencyWalker,可以记录程序使用的所有DLL。DLLUniversalProblemSolverDLLUniversalProblemSolver(DUPS)工具用于审核、比较、记录和显示DLL信息。
组成DUPS工具的实用工具:Dlister.exe该实用工具枚举计算机中的所有DLL,并且将此信息记录到一个文本文件或数据库文件中。
参考技术Bc++dll文件反编译源代码的操作步骤如下:
1、在开始菜单内找到Reflector工具。
2、打开Reflector点击【File】-->【Open Assembly...】在打开的对话框内选择要反编译的DLL文件。
3、打开DLL成功后,会在左侧的最下方看到反编译DLL文件。
4、点击展开该DLL文件就可以看到样关的类,以及类反编译后的代码,这样问题就解决了
参考技术C 所谓的破解就是反编译。。反编译的第一个步骤就是先脱壳。。
关于脱壳可参照这个链接。
脱壳完成了或者根本没壳就可以进行下一步了。
反向编译
高级语言源程序经过 编译 变成可执行文件,反编译就是逆过程。
但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。
计算机软件反向工程(Reversepengineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,作为自己开发软件时的参考,或者直接用于自己的软件产品中。
反编译是一个复杂的过程,所以越是高级语言,就越难于反编译,但目前还是有许许多多的反编译软件:
VB: VBExplorer 和VBRezQ;只能反编译界面图像,好像代码不能完全反编译
JAVA: JAD ;java的反编译比较常见,所以反编译比较完全, 将class文件反编译成java文件也是有可能的
C++ : eXeScope
Dephi: DEDE
c#:Reflector
本回答被提问者采纳 参考技术D 搜索DLL Decompiler
c++代码反编译
我用VS2008开发的windows桌面程序,为什么可以用Reflector.exe反编译出源代码呢 。。。为什么啊 不是说不能看到的吗 ?
c++分为几中啊 为什么还有托管C++之说 ?
其中win32程序,比如mfc程序,使用传统C++语言,是直接编译为机器指令的,最多反汇编到汇编代码
但是.net程序,使用微软为.net平台扩展的C++/CLI语言(.net 1.1时代有一种托管C++语言,是微软的早期作品,因为稳定性欠佳,已被C++/CLI取代),编译之后的是.net平台的IL语言,因为IL汇编语言较传统汇编指令远为“高级”,通过简单的反汇编器就可以得到几乎一摸一样的源代码,楼主实际看到的是这种.net程序,这才是通过Reflector能够看到的反汇编代码 参考技术A VS2008里有微软特有的托管c++
意思就是将c++绑定到类似c#的那种.net虚拟机里运行,所以才能反编译,那是托管代码,c++/cli 参考技术B 微软发明的什么托管c++ , 那根本不是c++ 参考技术C 楼上回答得都很清楚了。
C++语言只有一种!
工具很多!
以上是关于问一下高手 c++dll文件如何反编译 看源代码啊????的主要内容,如果未能解决你的问题,请参考以下文章
如何利用ILSPY反编译工具重建C#NETWeb源码解决方案
如何利用ILSPY反编译工具重建C#NETWeb源码解决方案
PB(PowerBuilder)做的系统,反编译后结构如图所示,现要按此结构重新开发生成abcd.exe和dll文件,怎么做