怎样为程序打补丁.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
怎样为程序打补丁

怎样为程序打补丁 一.本文实用于初学者,需要具备一定的汇编和系统底层的知识。 二.本文只是为了让广大网友共同提高一些基础知识,本人决无卖弄之意,只供需 要这方面知识的读者阅读,如果你是高手,或者不需要这方面知识,请跳过。 三.本文的实例均为普通程序,如有雷同,敬请谅解。 四.本文欢迎传抄转载,如果是商业用途,请联系本人。http://www.zoudan. com zoudan@ 打补丁是常见的一种软件升级和更新手段。打补丁的形式很多,本文所述的方 式基本上为修改原程序二进制代码的方式,适用于Windows95之后的平台(Win32) 。 Windows95(Win32)以后的可执行文件都是PE格式,.exe、.ocx、.dll.等等都 是常见的PE格式的文件映像,看一个文件是否为PE文件,不是看它的扩展名,而是 看它的文件头中是否有PE文件头标示和具体的文件内容。比如常见的软件追捕中 那个wry.dll,就不是一个PE格式的Dll(动态连接库)文件,通常用16进制编辑软 件打开文件首部观察便可得知。关于PE文件的具体格式和教程不是本文的描述范围 ,大家可以查阅相关的资料,我网站上那篇关于95下的可执行文件加密研究中也 有比较详尽的描述。 PE文件是一个程序代码、数据的集合。其中的程序代码是该执行文件本身的, 它可能通过动态连接的形式访问其他附属的程序或者动态连接库,通常一个程序文 件中包含了大量的系统调用和对其他程序及动态连接库的调用。 言归正传,无论是破解,程序改良或者程序升级,在改动不大,且没有源程序 参考的情况下,最直接的方法就是更改PE可执行文件。大家都知道我制作的补丁程 序,基本上就是直接修改程序文件,使之达到我们需要得到的功能。 一个PE可执行文件中通常有很多段(section),分别描述不通的数据结构和代 码。最基本的几种段有.code(.text)(代码段)、.data(数据段)、.rdata、. rscs(资源)等等,这些段的名称可以是程序自定,决定它们属性的不是他的名称 ,而是PE文件头中的描述。有很多查看PE文件结构和内容的软件,我向大家推荐 Borland C自带的一个叫Tdump的小软件,很简单和方便,在现在的Borland C++ Builder和Borland C中都有,大家可以用他来了解PE文件的内部信息。 一般来说,修改资源段中的东西最为简单。那些对话框、字符串、位图等等。 修改这些资源很容易,因为有很多这方面的软件,最常见的就是VC++,只要用VC用 资源修改方式打开程序文件,所有这个程序相关的资源就会很容易的修改了。大家 可以随便找几个程序来试试手,挪挪对话框,改改属性,编辑文字,画画位图,很 容易上手和熟悉。 修改程序文件的其他地方就没有修改资源段容易了,程序当然都是汇编机器代 码,数据也是未知的结构。关于怎样看懂、跟踪、了解程序的运作就是一件非常经 验的事情,不同的程序不同的方法,没有定式,它们唯一的共同点就是都是汇编代 码,都能用软件反汇编和动态调试。这也已经超出了本文的范畴,我想它需要扎实 的汇编基础,系统底层知识以及丰富的程序调试经验,不可能在很快的时间内掌握 。这需要耐心,长时间的实战以及积累。在此我向大家推荐我常用的工具,静态的 反汇编可以用IDA pro,使用该软件你会发现枯燥乏味的汇编代码变得井井有条, 且多了很多帮助理解的注释,当然还有很多重要程序库的符号,比如MFC库类,标 准C库等等。该程序是最好的反汇编工具,为我们读懂苦涩的机器指令提供了良好 的互动环境。光静态分析汇编代码无疑是极其困难的,光靠眼睛看不可能看到寄存 器,内存单元数据等等和程序运行息息相关的东西。关键是汇编代码苦涩难懂,动 态的调试就成了我们深入了解程序、调试程序、探测程序的最重要的手段。我所提 到的动态调试是汇编级别的,并非任何高级语言。值得提到的是有些程序带有调试 符号信息,那会为我们动态调试提供很大很大的便利,不过一般Release版本都不 会把调试信息链接到最终的程序文件中,粗心的程序员有可能犯这个错误。总之, 汇编级的调试一般来说都非常的艰苦,不过动态调试和静态阅读相结合还是会使效 率提高很多。动态调试的软件很多,而且都支持汇编级别的调试。一般集成变成环 境都带有这种工具,比如VC++,C++ Builder等等。专业调试软件有W32dasm、Trw 、Soft-ice等等,在这个领域里,Soft-ice无疑是绝对的佼佼者。我觉得几乎没有 Soft-ice触及不到的深度,Soft-ice为我们了解系统的任何一个细节提供了可能, 从DOS时代到windows时代,Soft-ice无疑是动态调试领域最重要的工具。好话说得 够多了,我不是在为它打广告,实事的确如此,网上很容易下载到它的各种版

文档评论(0)

zw4044 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档