| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 编程开发 > VB教程 > 文章正文 用户登录
HiShop网店系统一
苏能科技100M/FTP
全球著名社区网站
Flash2k4+CF制作留
CFMX For F2K4 We
在flash中构建asp
ViewletBuilder 4
FlashMX2004的事件
Flash MX 2004 vi
V2组件事件模型pa

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

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

作者:佚名 来源:csdn 作者: xixiaolou 更新:2006-8-25 21:05:35 错误报告 我要投稿

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

作者  小楼

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


简介

    自从微软公司推出VISUAL BASIC 5/6版本以来,摆脱了前版程序只是单纯调用vbrun*.dll的方式;在继续保留P-code编译同时也引入了native编译方式,使得生成本地二进制代码成为可能。
    以下将介绍目前对VB6的反编译研究情况;也将演示如何保护你的VB6程序。(因为VB6逆向工程资料的缺乏,我仅将在目前能得到的资料基础上结合个人研究所得进行演述)。关于vb.net,也就是所谓的“VB7”,其生成的exe程序完全可用.net反编译工具完成,此处不再介绍。


P-code传奇

      编译器的编译技术可以分为native-compile(自然编译)与pcode-compile(伪编译)两种。
      自然编译是编译器将高级语言转换为汇编代码,并经链接生成EXE程序的过程。
      伪编译是编译器将高级语言转换为某种编码后,将能解释、执行此编码的一段程序一同链接,生成EXE程序。
       伪代码p-code,最早应该叫做Pascal-Code,其名称起源于一个pascal编译器使用的“中间代码”编译技术。现在一般作为pseudo-code(伪代码),或packed-code(压缩代码)简称。
    此项编译技术的出现,最终导致了“虚拟机”的出现。而微软在其编程工具basic、c、vb中都使用了类似的编译技术。
        所谓伪代码,其基本工作原理是编译器先把执行程序编译为比80X86机器码紧凑得多的中间代码形式,然后在链接时把一个小工作引擎嵌入执行程序中,最后在运行时由此工作引擎把P-Code解释为本地机器码实际执行,所以叫做packed-code;同时又由于此代码并不是最终的机器码形式,实际上是“变形的源代码”,所以也被称为pseudo-code。依靠P-code编译技术,使得编程语言不依赖于机器或照作平台称为可能。
        目前实现伪代码编码方式的最流行方法是在特定硬件系统(比如x86,Mac)上,用基于“堆栈stack”的字节码编码实现。

        虽然目前伪代码编译形式大多见于vb,但java,powerbuilder的编译实质也是一样;最新的microsoft visual studio.net中,只是将名称换成“中间语言(Microsoft Intermediate Language)”。(不管怎么解释我还是不能理解IL与p-code的不同。(参考http://windows.oreilly.com/news/hejlsberg_0800.html《Deep Inside C#: An Interview with Microsoft Chief Architect Anders Hejlsberg》))。

      因为vb3、4都是使用伪代码编译形式;也因为伪代码编译的代码实际只是“变形的源代码”,所以只要我们能理解其对应机制,就能做出反编译器来,所以Dodi's vb3/4 disassembler来了。同样,java反编译器来了,对付最新microsoft .net的反编译程序也可以被得到。
    为什么见不到vb5/6 伪代码反编译器,现在已经有了几个“半个”,就是exdec及建立在其基础上的wkt vb p-code debugger,还有VBDE;2001年有人写出一个vb6 add-in来实现vb6源代码-> P-code转换。

注:本文的写作引用了很多书及网上资料,在本系列文章的最后将详细注明所参考的文章、书籍的名字及出处


文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。