或VC编译的DLL文件可以部分反编译吗?
1、VB\BC等编译的DLL文件,目前还不能完全反编译无论是exe还是dll都可以反汇编,即使是静态的,也可以动态调试。只需破解反汇编vb可以反编译源码,您不必反编译。
2.呵呵 这只能用反汇编软件反编译成汇编代码,不可能恢复到用VB编写的方式。这也是 DLL ---防止盗版的用途之一。
3. 使用单独的程序集加密混淆工具,如智能锁、.NET 反应器,但必须是最新版本。核心算法在 C++ 中编写为 DLL,然后 C# 调用此 DLL;第一件事可以在服务器端完成,允许客户端程序在需要时从服务器端获取它。
4.VB源级反编译工具只能更改少量资源属性。从理论上讲,从源代码到目标代码的过程不是一对一的,也就是说,不同的源代码可能会编译相同的目标代码;相同的源代码由不同的编译器编译,也可能生成不同的目标代码。
5.据我所知,它不能。VB是一个解释器,编译生成目标文件后不执行,没有这个功能。
要求母版反编译 Dll 文件如果DLL
采用C++优化或全局优化进行编译,则二进制代码大于512字节,否则基本无法反编译。
DLL函数查看器可以查看内部函数,
符号等,也可以使用依赖沃克查看 PE 依赖和查看 DLL 函数。如果要反汇编整个文件,请使用IDAPro,它比较复杂,需要阅读专门的书籍才能学习。
打开C:\Program Files\Microsoft SDKs\Windowsv0A\bin\ildasm.exe,这个程序是谷歌提供的反编译软件,打开dll进行反编译。
打开
要反编译的DLL文件,工作栏:文件打开程序集,选择文件,或:ctrl+O;选择要反编译的DLL文件 选择DLL文件后,您选择的DLL文件也将出现在左侧工作栏中。展开以查看 DLL 泛型上方的所有类。DLL 函数
查看器可以查看 DLL 文件的内部函数、符号等。还可以使用依赖关系查看器查看 PE 依赖关系和 DLL 函数。如果要反汇编整个文件,请使用IDAPro,它比较复杂,需要阅读专门的书籍才能学习。
Dll 文件,如 EXE 文件,是 Windows 可执行文件,遵循 PE 文件格式。静态反汇编可以通过IDA等软件进行,动态反编译可以通过Windbg和Ollydbg进行。
反编译后C++DLL 的运行方式
在开始菜单中找到反射器工具。打开反射器并单击[文件]--[OpenAssembly...],在打开的对话框中选择要反编译的DLL文件。成功打开DLL后,您将在右下角看到反编译的DLL文件。
下载并安装反编译工具。在反编译工具中打开 DLL 文件。如果您使用的是dotPeek,只需单击“文件”vb可以反编译源码,单击“打开”,然后找到要反编译的DLL文件。使用程序集管理器浏览 DLL 文件的节点。
Dll 文件,如 EXE 文件,是 Windows 可执行文件,遵循 PE 文件格式。静态反汇编可以通过IDA等软件进行,动态反编译可以通过Windbg和Ollydbg进行。
要跟踪您的系统,
使用百度搜索xxxx.DLL,向下搜索,根据您的系统(如Windows XP,Windows 7)下载,然后单击您的系统盘,单击Windows文件夹,然后单击system32文件夹,然后将下载的dll文件复制进去。
DLL函数查看器可以查看内部函数,
符号等,也可以使用依赖沃克查看 PE 依赖和查看 DLL 函数。如果要反汇编整个文件,请使用IDAPro,它比较复杂,需要阅读专门的书籍才能学习。
-c 选项编译和组合指定的源文件(即编译源文件),而不链接它们。使用 -c 选项将每个源文件编译为相应的对象文件。
目标文件是
中间文件或临时文件,如果未设置此选项,GCC 通常不保留目标文件,生成可执行文件后手动删除可执行文件。
以下示例演示了 gcc-c 选项的使用。
$gcc -c test1.c test2.c test3.c $ls -l *.o -rwxr--r-- 1 root 23 Feb 7 02:57 test1.o -rwxr--r-- 1 root 17 Feb 7 02:57 test2.o -rwxr--r-- 1 root 20 Feb 7 02:57 test3.o
如果不使用 -c 选项,则只会生成可执行文件,而不会生成目标文件。
请注意编译gcc源码需要多久,使用 -c 选项意味着只编译源文件,而不是链接,因此链接中的错误很难检测到。
下面的示例演示 GCC 编译器在使用 -c 选项时未注意到链接错误。
1) 编译以下两个源文件。
func_a() 函数在 func.c 中定义
#include void func_a(){ printf("FUNC_An"); }
func_a() 和 func_b() 函数在 main.c 中调用
#include int main(void) { func_a(); func_b(); return 0; }
未定义 func_b() 函数编译gcc源码需要多久,因此在链接时形成错误(编译时不会形成错误)。
2) 使用 -c 选项编译两个源文件,如下所示:
$gcc-cfunc.cmain.c
编译器不输出任何错误信息。
3) 编译两个没有 -c 选项的源文件:
$gccfunc.cmain.c
您将看到以下错误消息:
/
tmp/ccLlOhvh.o:在函数“main”中:
main.c:(.text+0x14):对“func_b”的未定义引用
collect2:错误:ld 返回 1
发生链接错误,因为找不到 func_b() 函数的定义。