Visual Basic 6 逆向工程与反逆向工程 (2)

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 xixiaolou 的 blog

visual basic 6 逆向工程与反逆向工程 (2)

版权声明:本文作者拥有对此文章的所有版权,转载、翻译等都必须得到本人的书面同意。


vb编译奥秘

摘自john chamberlain. take control of the compile process. visual basic programmer’s journal 1999, nov。
 

    如图所示:采用伪代码编译时,每个vb源文件(包括.frm、.bas、.cls文件)经vb ide编译后各自生成相应的.obj文件,交链接程序link.exe生成伪编译的可执行文件(exe、dll、ocx等)。
    而用自然编译时,每个vb源文件由c2.exe编译生成汇编代码,生成相应的obj文件,再由link.exe链接成为完整的可执行文件。
熟悉vc6的读者可以发现,在vc6安装目录下也存在c2.dll及link.exe文件,查看c2.dll与c2.exe属性,都表明是微软的32位编译程序。比较可以发现vb与vc的编译、链接程序具有一致性。

文件 版本
c2.exe (visual basic 5)  5.00.0.7182
c2.exe (visual basic 6 sp5)  6.00.8783
c2.dll  (visual c++ 6)   6.00.8168
link.exe (visual basic 6 sp5)  6.00.8447
link.exe (visual c++ 6)  6.00.8168

    实际上,当初微软为了回应客户对vb代码进行自然编译的强烈要求,在没有推翻重来的情况下,就借用了vc的编译引擎来实现自然编译。
    你可以用vc.net所带的link.exe替换vb6中的同名程序,这样链接生成的可执行文件就不能被vbde所分析了。

注:此篇很大部分来于网络资料,大家看过就是。

本文关键:Visual Basic 逆向工程 软件保护
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top