VB 共享软件防破解设计技术初探(三).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文档。上传文档
查看更多
VB 共享软件防破解设计技术初探(三)

VB 共享软件防破解设计技术初探(三) 作者:爱琴海[SCG] 2008/09/10 (转载请保留该信息) 第一篇我粗略的讲了以下几个内容: 文件完整性,防止被非法修改 运行时的校验,防止被LOADER 反调试,防止动态跟踪和挂接 防静态反汇编分析 注册码系统(算法部分,核心内容) 加壳防脱壳 隐蔽性设计 另辟蹊径 第二篇我详细得讲解了以下内容: 1、设计思想:水桶原理 2、完整性校验,包括VB-CRC32注射器和主体的编写;文件修改时间自校验;文件大小自校验等 3、防LOADER设计,包括查找标题,经典时值,还有重点的“金蝉脱壳”反LOADER 上节课我忘讲了种常见的反LOADER的方法:释放程序法(借鸡生蛋) 这里赶紧补上: 释放程序法(借鸡生蛋) 原理:讲需要保护的程序作为自定义资源添加到新的VB程序里,新程序一运行就自动释放内部包含的程序到特定位置,然后通过SHELL调用,自身则结束运行,怀疑就是“借鸡生蛋”,也是常用的木马病毒免杀技术。 打开VB6.0 新建工程,然后单击“外接程序”――“外接程序管理器”――“VB 6 资源编辑器”,在右下角选项里选择“加载/卸载”,然后单击“确定” 这时,在VB6.0主程序窗口上方的工具条最后,就会出现一个跟注册表编辑程序挺像的绿色图标,单击它。 如图: 选择自定义添加图标,然后在出现的窗口里,选择你要保护的EXE程序。 如图: 添加完资源后,按下“保存”按钮 这样,资源就被添加为代号为101的数据,同理,就绪添加,就从102开始,一直增长上去,你也可以自己修改代号,方便记忆。 下面我们来写一个自动释放子体的过程SUB 我是代码启示线———————————————————————————————— Private Sub Shifang() On Error GoTo TakeError Dim Lujing As String Lujing = C:\WINDOWS\system32\缓存.exe 定义缓存路径 If Dir(Lujing) = Then 检测子体是否已经存在 不是的话就直接释放一个即可 Dim Shuzu() As Byte 定义一个数组储存数据 Shuzu() = LoadResData(101, CUSTOM) 加载数据,101代号指的就是我们添加的EXE子体 Open Lujing For Binary As #1 定义一个缓存路径 Put #1, , Shuzu() 开始写入 Close #1 关闭通道 Else Kill Lujing 发现已经存在就删除它,然后就重新创建;目的是为了防止有人故意同名替换 定义一个数组储存数据 Shuzu() = LoadResData(101, CUSTOM) 加载数据,101代号指的就是我们添加的EXE子体 Open Lujing For Binary As #1 定义一个缓存路径 Put #1, , Shuzu() 开始写入 Close #1 关闭通道 End If Shell Lujing, vbNormalFocus 释放好后就SHELL使其运行,接下去就结束掉自己 End TakeError: 一般发生错误是因为子体正在运行,无法删除或者覆盖,或者是因为OD的HIDEOD插件引起SHELL错误 MsgBox 请检查我是否正在运行?或者,是因为调试器?请检查, , 发现问题了 End End Sub 我是代码终止线———————————————————————————————— 调用的话,在FORM的LOAD事件里,或者其他启动事件里即可,如下: Private Sub Form_Load() Shifang End Sub 看看效果吧! 正常运行,跟运行一个程序感觉上没有什么差别 如果加载OD调试器的话,如果OD刚好加载HIDEOD插件的话,就会提示错误,发现调试器: 如图: 如果关闭HIDEOD插件,就会自动借鸡生蛋,使调试器无法加载正确的子体程序 如图: 需要注意一点,只要够小心的人,一定会发现真正的程序所在,所以子体程序最好加上自删除代码,也就是检测到UNLOAD事件后,自动删除自己,或者调用批处理,隐藏删除自己。 我碰到过的一些用VB写的外挂也就是用这种技术来逃避调试器的。 这种技术就讲解到这里,我们开始新的篇章喽 第三篇我将具体介绍 1、VB反调试反跟踪 2、防静态反汇编分析 设计加密解密不久,能力有限,见识短浅,请各位高手见谅,有错误和不足之处敬请原谅,并请你阐述你自己的见解,共同完成《VB 共享软件防破解设计技术初探》系列文章,您的参与和支持是我的荣幸和骄傲。 这篇开篇前我把自己想到的VB程序防破解设计图展示下,看看大家想到了什么?自由发挥 我心中总有个声音:你设计的只是针对技术层面,无法真

文档评论(0)

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

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

1亿VIP精品文档

相关文档