VB 共享软件防破解设计技术初探(一)

合集下载

基于VB下的共享软件注册技术

基于VB下的共享软件注册技术
设 置 . 器 码设 置 等 的设 计 原理 和 实现 方 法 。 机 关键词 : B 共 享软 件 注册技 术 设计原理 注册码 机器码 认证 限制 V
中图 分 类号 : P T 3
文 献标 识码 : A
文 0 1 7 -3 9 ( 0 0 0 ( ) 0 2 - 2 现 提 示 菜 单 的 自动 弹 出 。

4 共享软 件功 能的屏蔽与开放
软 件 功 能 的 屏 蔽 与 开 放 , 们 可 以 通 我 过设 置Vi a a i 中相 应 控 件的 E a ld s l B sc u n be ¥ V sb e 性 , 与 条 件 判 断 语 句 相 结 合  ̄ ii l 属 并 来实现 。
信息技术
SC TNG2 N8 OE E0Y0 O皿圆 I &CL . E H0一 0 N 1 0
基于 VB下 的共享软件注册技术
陆 竞 ( 黑河学 院计算机 系 黑龙江黑 河 1 4 0 3 0) 6
摘 要: 本文 着重介 绍基于M coot i a ai下的 共 享软 件注册技 术 中的注 册认 证 , 能屏蔽 与开放 、 i sf r V s l s u B c 功 软件 使 用次数 限 制, 注册码
多 数 读 者 对 于 “ 享软 件 ” “ 册 码 ” 中是 否存 在 用 于判 断 “ 册 ” 共 和 注 注 与否 的一 个 “ 文 都 一 定 不 会 陌 生 , 享 软 件 通 常 是 功 能 不 件 ” 我 们称 其 为 注 册 支 , 。只 有 当用 户获 共 , 牛。 。 完 整 或 者 有 试 用 时 间 、 数 限 制 的 版 本 软 得 这 个 软 件 的 “ 册 码 ” 并 且 正 确 地 进 行 次 注 , 件 。 者 可 以 通 过 互联 网免 费下 载 、 买 计 “ 册 ” 读 购 注 以后 , 该软 件 才 能在 系 统的 某 个 目录 算机 设 备 附 增 、 盘 ( 盘 ) 代 等 多种 方 式 下 , 光 软 附 自动 产 生( 建) 个 “ 创 这 注册 文件 ” 。 获 得 , 用 满 意 后 再 向软 件 作 者 或 机 构 缴 使 由于 我 们 是 通 过 检 查 “ 册 文 件 ” 否 注 是 纳一 定 的 费 用 , 取 该 软 件 的 “ 获 注册 码 ” 并 存 在 , 作 为 判 断 共 享 软 件 是 否 注 册 的 认 , 来 进 行 注 册 后 , 享 软 件 的 使 用 者 才 能 得 到 证 手 段 , 此 , 们 只 看 重 这 个 文 件 的 共 因 我 该 软 件 的 完 整 功 能 或 者 没 有 限 制 的 正 版 软 “ ” 给 “ 册文 件 ” 个 什 么 “ ” 放 在 哪 名 , 注 起 名 , 件 。 种 “ 使 用 后 付 费 ” 共享 软 件 , 保 个 目录 下 , 看 你 的 想 象 力 和 创 造 力 了 。 这 先 的 对 就 障 软 件 开 发 者 、 用者 的合 法 权 益 , 到 了 Wi d w 系统 庞大 , 使 起 no s 目录和 文件 繁 多 , 其 在 定 的积 极 作 用 。 中“ 藏 ” 个 文 件 , 其 不 易被 人 察 觉 , 隐 一 使 对 购买 过 共 享软 件 的 读者 都 知 道 , 享 软 于 广 大 的 电脑 爱 好 者 来 说 , 谓 小 事 一 桩 。 共 可 件成功注册后 , 无需 再 次 下 载 , 件 的 限 制 软 自动取 消 、 能 自然 齐 全 , 功 而且 以 后 升级 、 版 2 注册码 的设置 本 更 新 时 , 不 用 再 次 注 册 。 享软 件 的注 也 共 我 们 可 以通 过 在 程 序 的 “ 册部 分 ” 注 设 册 技 术 似 乎 很 神 秘 , 方 法 在 报 刊 、 志 和 置 一 个 条 件 判 断 语 句 , 比较 用 户 输 入 的 其 杂 以 专 业 书 籍 上 也 少 有 介 绍 , 鲜 为 人 知 。 脑 字 符 串变 量 和 我 们 预 先 在程 序 中 内 置 的一 并 电 爱 好 者 能 否 将 自己 开 发 的应 用 软 件 做 成 共 串字 符( 就 是 “ 也 注册 码 ”为 条 件 , 在 条件 ) 而 享 软件 呢 ? 现 共享 软件 注 册 的技 术 和 方法 语 句 中嵌 入 创 建注 册 文件 和 开 放 软 件 中屏 实 很 多 , 里我 们将 在V s a a i下 , 这 i l s u B c 向大家 蔽 的 某 些 功能 、 闭注 册 按 钮 的 命 令 。 户 关 用 介 绍 一 种 简 单 易 学且 行之 有效 的共 享 软 件 在 注 册 时 , 只有 输 入 的 字 符 串 与 “ 册 码 ” 注 注 册技 术 , 您 揭开 共享 软 件 注册 技 术 的神 相 同 时 , 执 行 条 件 语 句 中 的 这 些 命 令 , 为 才 同 秘 面 纱 , 大 家 将 自己 开 发 的软 件 , 作 成 时 关 闭注 册 按 钮 。 帮 制 共 享软 件 。 方 法的 实 用性 、 该 可操 作性 强 , 非 常 适 合 广大 的 电 脑爱 好 者 学 习 和 掌 握 。 3 自动弹出提示软件未注册菜单 设计原 理和思想 。 有 些 共 享 软 件 , 未 注 册 时 , 每 隔 一 在 会 定 的时 间就 自动 弹 出一 个 提 示 菜 单 来 提 醒 1 软件注册 与否 的判断和认证 用 户。 在Vi a B s 中 , 做 到这 一点 也很 s l ai 要 u c 我 们 可 以通 过 设 置错 误 陷 阱 , 软件 每 容 易 , 们 可 以 在 程 序 中 添 加 一 个 计 时 器 在 我 次运行 载入 (p 行F r la ) , u执 o m—o d 时 检查 系统 tme 控 件 , 过 它的 I tr a 属性 来 实 i r 通 nev l

VB资料-解密

VB资料-解密

本文将简要介绍Sentinel SuperPro软件加密锁的编程开发知识,可供需要进行软件加密锁开发的软件开发商快速学习掌握这种类型的加密锁的编程开发,快速保护自己的软件不受侵害,防止加密狗被破解。

本文资源来源于Sentinel SuperPro加密锁开发套件中的开发手册,仅供大家学习,文字版权属于Sentinel SuperPro所有。

一、加密锁简介Sentinel SuperPro加密锁是一个硬件/软件保护系统,功能主要是保护软件,即防止未经允许非法使用开发商的软件。

如未把正确的加密锁与计算机连接,则被保护的应用程序将无法实现全部功能。

因此,只有合法用户才能使用开发商的产品。

使用SuperPro软件保护锁完成软件保护,就是将软件开发商的未被保护的应用程序与SuperPro软件保护锁加密算法相绑定过程。

最终实现绑定后的应用程序没有软件保护锁不能单独运行,只有插入软件开发商自己定义算法的软件保护锁,应用程序才能正常运行。

当软件开发商的软件销售给最终用户后,软件即使被非法复制,而没有软件开发商提供的软件保护锁软件不能被使用。

这样一来,从技术上防止盗版起到软件保护的作用。

应用程序和Sentinel Superpro软件保护锁加密算法的绑定,是通过API函数调用来校验软件保护锁是否存在来实现的。

API函数验证分由三部分组成:1)询问部分:开发商的应用程序通过API调用向软件保护锁的驱动程序发出的“查询串”,驱动程序自动将“查询串”传给并口或USB口上的SuperPro软件保护锁上的算法单元。

2)运算部分:加密锁通过内部的算法芯片计算“查询串”,并将运算结果“响应串”返回给驱动程序。

3)程序鉴定、行动部分:驱动程序将“响应串”返回给应用程序中的API函数调用。

应用程序对返回值—“响应串”进行比较判断,判断与预知运算结果是否相等,根据判断的结果进行相应的行动。

如果返回值—“响应串”与预知运算结果相等,则说明保护应用程序的软件保护锁存在,使用程序的用户为合法用户。

VB 共享软件防破解设计技术初探(一)

VB 共享软件防破解设计技术初探(一)

VB 共享软件防破解设计技术初探(一)作者:爱琴海[SCG] 2008/09/04 (转载请保留该信息)一转眼又过去了一年,回头一看,今年我没发表过任何破解类文章,没有任何有价值的文章,名下的精华只是徒有其表的7个,也许太忙,也许读大学读得后悔,也许堕落了。

在看雪注册的帐号一晃就是两个春夏秋冬了,大三要忙自己的学业了,估计以后也不会再有时间和精力破解软件,学习加密思想了。

两年的时间发生了太多的事情,来不及回忆,来不及思考,我们班班长不久前溺水去逝了,估摸着也到头七了……这世事总无偿,让人来不及追忆,来不及哀悼。

今天实习的时候,好好的,竟然被车床飞出来的铁屑烫伤……趁现在还在坛子里活动,趁现在脑子还没生锈,我琢磨着把自己两年来积累的部分经验和思想写下来,留下点什么有用的东西。

学习VB编程也就一年,只是入门而已,谈不上什么高手。

本系列是作者本人尝试过和破解过的一些技术经验之谈,如果有问题或者有纰漏和错误,敬请高位高手点明和说明;也不知道该系列能写多少,能写多久;若是有时间,有精力,有能力,我会继续写下去,谢谢大家的观看。

加密解密一直是相辅相成的技术,没有矛何必有盾?有盾怎能没矛?在不断的尝试和实践中,才能积累起丰富的加密解密经验,为自己写的共享软件设计出一套完善的加密系统,或者攻克一个高度加密的共享软件,两者都是件令人欢心令人耗尽精力。

终记起这样的一段诗句:“衣带渐宽终不悔,为伊消得人憔悴”。

本系列第一篇,粗略的讲解我认识到的VB防破解技术,后续篇将实战演练教学我个人认识的VB防破解包括如下几下方面:1、文件完整性,防止被非法修改2、运行时的校验,防止被LOADER3、反调试,防止动态跟踪和挂接4、防静态反汇编分析5、注册码系统(算法部分,核心内容)6、加壳防脱壳7、隐蔽性设计8、另辟蹊径由于VB天生的原因,有些功能实现起来非常麻烦,比方说算法部分,如果采用大数运算的话,缺少大数运行库。

所以,有时也可以采用第三方DLL来补充大数的不足。

VB 共享软件防破解设计技术初探(三)

VB 共享软件防破解设计技术初探(三)

VB 共享软件防破解设计技术初探(三)作者:爱琴海[SCG] 2008/09/10 (转载请保留该信息)第一篇我粗略的讲了以下几个内容:1、文件完整性,防止被非法修改2、运行时的校验,防止被LOADER3、反调试,防止动态跟踪和挂接4、防静态反汇编分析5、注册码系统(算法部分,核心内容)6、加壳防脱壳7、隐蔽性设计8、另辟蹊径第二篇我详细得讲解了以下内容:1、设计思想:水桶原理2、完整性校验,包括VB-CRC32注射器和主体的编写;文件修改时间自校验;文件大小自校验等3、防LOADER设计,包括查找标题,经典时值,还有重点的“金蝉脱壳”反LOADER上节课我忘讲了种常见的反LOADER的方法:释放程序法(借鸡生蛋)这里赶紧补上:释放程序法(借鸡生蛋)原理:讲需要保护的程序作为自定义资源添加到新的VB程序里,新程序一运行就自动释放内部包含的程序到特定位置,然后通过SHELL调用,自身则结束运行,怀疑就是“借鸡生蛋”,也是常用的木马病毒免杀技术。

打开VB6.0 新建工程,然后单击“外接程序”――“外接程序管理器”――“VB 6 资源编辑器”,在右下角选项里选择“加载/卸载”,然后单击“确定”这时,在VB6.0主程序窗口上方的工具条最后,就会出现一个跟注册表编辑程序挺像的绿色图标,单击它。

如图:如图:添加完资源后,按下“保存”按钮这样,资源就被添加为代号为101的数据,同理,就绪添加,就从102开始,一直增长上去,你也可以自己修改代号,方便记忆。

下面我们来写一个自动释放子体的过程SUB我是代码启示线————————————————————————————————Private Sub Shifang()On Error GoTo TakeErrorDim Lujing As StringLujing = "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'关闭通道ElseKill Lujing'发现已经存在就删除它,然后就重新创建;目的是为了防止有人故意同名替换'定义一个数组储存数据Shuzu() = LoadResData(101, "CUSTOM")'加载数据,101代号指的就是我们添加的EXE子体Open Lujing For Binary As #1'定义一个缓存路径Put #1, , Shuzu()'开始写入Close #1'关闭通道End IfShell Lujing, vbNormalFocus'释放好后就SHELL使其运行,接下去就结束掉自己EndTakeError:'一般发生错误是因为子体正在运行,无法删除或者覆盖,或者是因为OD的HIDEOD插件引起SHELL错误MsgBox "请检查我是否正在运行?或者,是因为调试器?请检查", , "发现问题了"EndEnd Sub我是代码终止线————————————————————————————————调用的话,在FORM的LOAD事件里,或者其他启动事件里即可,如下:Private Sub Form_Load()ShifangEnd Sub看看效果吧!正常运行,跟运行一个程序感觉上没有什么差别如果加载OD调试器的话,如果OD刚好加载HIDEOD插件的话,就会提示错误,发现调试器:如图:如图:需要注意一点,只要够小心的人,一定会发现真正的程序所在,所以子体程序最好加上自删除代码,也就是检测到UNLOAD事件后,自动删除自己,或者调用批处理,隐藏删除自己。

如何对vb的应用程序进行加密,防止拷贝

如何对vb的应用程序进行加密,防止拷贝
如何对vb的应用程序进行加密,防止拷贝
如 何 对 vb的 应 用 程 序 进 行 加 密 , 防 止 反 拷 贝 ?

一 个 办 法 是 买 现 成 的 软 件 狗 或 加 密 包 , 当 然 你 要 破 费 一 点 , 但 一 般 安 全 性 好 些 , 而 且 比 较 省 事 。
另 一 个 办 法 是 读 取 硬 盘 驱 动 器 的 序 列 号 (用 Windows API的 GetVolumeInformation, 参 见 “如何调用GetVolumeInformation获得磁盘序列号”), 然 后 偷 偷 地 保 存 起 来 , 如 果 发 现 硬 盘 的 序 列 号 同 保 存 的 不 一 样 就 拒 绝 运 行 。 还 有 一 些 类 似 的 办 法 , 比 如 每 个 用 户 指 定 一 个 序 列 号 和 密 码 , 如 果 序 列 号 和 密 码 不 匹 配 就 拒 绝 运 行 。 至 于 匹 配 关 系 , 你 可 以 自 己 决 定 。
<END>

2023年全国计算机等级考试VB经典必考资料知识点总结

2023年全国计算机等级考试VB经典必考资料知识点总结

全国计算机等级考试辅导材料Visual Basic程序设计基础冲刺阶段要点(必考知识点梳理与总结)Visual Basic程序设计基础知识要点(概念分析篇)知识点1:(1)在工程资源管理器窗口中可以包括:工程文献、窗体模块文献、原则模块文献和类模块文献(其中可以包括许多多种文献类型)。

(2)Visual Basic应用程序可以以解释方式执行和编译方式执行。

例题:(1)如下论述中错误旳是 AA.在工程资源管理器窗口中只能包括一种工程文献及属于该工程旳其他文献。

B.以.bas为扩展名旳文献是原则模块文献。

C.窗体文献包括该窗体及其控件旳属性。

D.一种工程中可以有多种原则模块文献。

(2)如下论述中错误旳是 CA.打开一种工程文献时,系统自动装入与该工程有关旳窗体、原则模块等文献。

B.保留Visual Basic程序时,应分别保留窗体文献及工程文献。

C.Visual Basic应用程序只能以解释方式执行。

D.事件可以由顾客引起,也可以由系统引起。

知识点2:(1)窗体和多种控件旳名称(Name)是唯一旳,用来标识一种窗体或控件旳。

而窗体和控件旳标题是用来阐明旳,是可有可无旳。

(2)多种控件之间有部分相似旳属性,并不是拥有所有属性。

控件有些属性只能在属性窗口中设置,但也有少数属性只能在代码状态设置。

(3)Form1.Hide措施和Unload Form1措施旳区别:第一种措施窗体消失但仍存在于内存中;第二个措施窗体消失并不存在于内存中。

例题:(1)如下论述中对旳旳是 AA.窗体旳Name属性指定窗体旳名称,用来标识一种窗体。

B.窗体旳Name属性旳值是显示在窗体标题栏中旳文本。

C.可以在运行期间变化对象旳Name属性旳值。

D.对象旳Name属性值可认为空。

(2)如下论述中错误旳是 CA.Visual Basic是事件驱动型可视化编辑工具。

B.Visual Basic应用程序不具有明显旳开始和结束语句。

C.Visual Basic工具箱中旳所有控件都具有Width和Height属性。

VBA中的安全设置与密码保护技巧

VBA中的安全设置与密码保护技巧

VBA中的安全设置与密码保护技巧VBA(Visual Basic for Applications)是一种用于编写宏和自定义功能的编程语言,常用于各种Microsoft Office应用程序中。

然而,由于VBA代码的易读性与执行性质,它也经常成为潜在的安全威胁。

为了确保VBA代码的安全性,我们需要采取一些安全设置和密码保护技巧。

本文将介绍一些重要的VBA安全设置和密码保护技巧,以防止未授权的访问和意外修改。

1. 设置VBA项目密码VBA项目密码是一种最基本的保护措施,可以防止未经授权的人员查看和修改VBA代码。

在VBA编辑器中,选择"工具" > "VBAProject属性" > "保护性"选项卡,在“输入密码”下输入所需的密码,然后点击“确定”。

请注意,务必保持密码安全,并且经常更换密码,以提高安全性。

2. 限制VBA项目的访问权限为了进一步保护VBA代码,可以限制对VBA项目的访问权限。

在VBA编辑器中,选择"工具" > "VBAProject属性" > "保护性"选项卡,选中“锁定项目为只读”复选框。

这将限制对VBA代码的修改和插入,只有拥有正确密码的用户才能进行更改。

这个措施可以有效防止恶意代码的注入,并保护VBA项目的完整性。

3. 禁用宏禁用宏是另一种有效的安全措施,可以防止恶意宏的执行。

通过在Microsoft Office应用程序的安全设置中禁用宏,可以阻止恶意宏的自动运行。

在“文件” > “选项” > “信任中心”中,选择“宏设置”,然后选择“启用所有宏”或“禁用所有宏”。

如果您不确定代码的来源或不需要运行宏,建议始终禁用所有宏。

4. 数字签名为了确保VBA代码的真实性和完整性,可以使用数字签名进行验证。

数字签名是通过使用私钥对代码进行加密生成的,在验证过程中使用公钥解密。

基于VB引擎反汇编技术的软件破解方法及防范策略

基于VB引擎反汇编技术的软件破解方法及防范策略

基于VB引擎反汇编技术的软件破解方法及防范策略
周显春
【期刊名称】《现代计算机(专业版)》
【年(卷),期】2015(000)008
【摘要】通过分析基于反汇编技术对保护软件的破解步骤,提出一些增加软件破解难度的方法.这些方法在一定程度上弥补现在保护技术的不足,从而使得破解软件增加难度,加强软件的保护.
【总页数】4页(P58-61)
【作者】周显春
【作者单位】三亚学院,三亚572022
【正文语种】中文
【相关文献】
1.基于TTS引擎技术的VB可视编程方法 [J], 马强
2.基于云平台的软件服务流引擎技术研究 [J], 蔡茂;徐凌宇;东韩;陈亮;杜金峰
3.基于反汇编技术的软件破解及其应对方法 [J], 陈闯
4.基于VB技术管理的数字多用表输入阻抗与零\r电流计算软件的设计与实现 [J], 刘梓涵;袁美玲;冯涛;宁梦
5.基于VB技术管理的数字多用表输入阻抗与零电流计算软件的设计与实现 [J], 刘梓涵;宁梦;冯涛;王守志
因版权原因,仅展示原文概要,查看原文内容请购买。

VBA中的文件加密和解密方法详解

VBA中的文件加密和解密方法详解

VBA中的文件加密和解密方法详解VBA(Visual Basic for Applications)是一种用于自动化任务和定制化Microsoft Office等软件的编程语言。

在VBA中,我们经常需要处理和保护敏感数据和文件,因此文件加密和解密是一项非常重要的任务。

本文将详细介绍VBA中的文件加密和解密方法,帮助读者保护重要数据。

文件加密是将文件内容通过特定算法进行转换,使其变得不可读或不可理解,只有经过解密操作才能恢复原始内容。

在VBA中,我们可以使用各种加密算法来对文件进行加密。

下面是一些常用的加密算法:1. 对称加密算法:对称加密算法使用相同的密钥加密和解密文件。

VBA中常用的对称加密算法有DES(Data Encryption Standard)和AES(Advanced Encryption Standard)。

这些算法使用密钥对文件内容进行转换,使其变得不可读。

对称加密算法的优点是加密解密速度快,但密钥的安全性需要额外关注。

2. 非对称加密算法:非对称加密算法使用一对密钥,公钥用于加密文件内容,私钥用于解密文件内容。

VBA中常用的非对称加密算法有RSA(Rivest-Shamir-Adleman)。

非对称加密算法的优点是密钥的安全性相对较高,但加密解密过程较为耗时。

3. 混合加密算法:混合加密算法结合了对称加密算法和非对称加密算法的优势。

在文件加密过程中,混合加密算法先使用非对称加密算法将对称密钥进行加密,再使用对称加密算法对文件内容进行加密。

这样既保证了密钥的安全性,也提高了加密解密的速度。

在VBA中,使用文件加密算法可以采取以下步骤:1. 选择合适的加密算法并生成一个密钥。

2. 打开需要加密的文件,并读取文件的内容。

3. 使用密钥对文件内容进行加密,并将加密结果保存到一个新文件中。

4. 关闭原始文件和新文件。

下面是一个简单的示例代码,演示了在VBA中如何使用AES算法对文件进行加密:```VBASub EncryptFile(fileToEncrypt As String, encryptionKey As String)Dim objStream As ObjectSet objStream = CreateObject("ADODB.Stream")objStream.Type = 1 ' binaryobjStream.OpenobjStream.LoadFromFile fileToEncryptobjStream.Position = 0objStream.Type = 1 ' binaryobjStream.Write (encryptionKey)objStream.Position = 0objStream.Type = 2 ' text' Perform encryptionobjStream.SaveToFile "EncryptedFile.txt", 2 ' overwrite existing fileobjStream.CloseSet objStream = NothingEnd Sub```在上述示例代码中,`EncryptFile`方法接受两个参数,`fileToEncrypt`表示需要加密的文件路径,`encryptionKey`表示用于加密的密钥。

VB程序的破解思路

VB程序的破解思路

VB程序的破解思路VB程序使很多朋友感到头痛,主要是VB程序反编译时产生大量的垃圾代码,而且也找不到有用的信息,在动态调试过程中,垃圾代码太多,往往迷失于冗余的代码中,找不到方向。

记住VB常用的一些函数:MultiByteToWideChar 将ANSI字符串转换成UNICODE字符WideCHatToMultiByte将UNICODE字符转换成ANSI字符rtcT8ValFromBstr把字符转换成浮点数vbaStrCmp比较字符串(常用断点)vbaStrComp字符串比较(常用断点)vbaStrCopy复制字符串StrConv转换字符串vbaStrMove移动字符串__vbaVarCat 连接字符串rtcMidCharVar 在字符串中取字符或者字符串!__vbaLenBstr 取字符串的长度vbaVarTstNe变量比较vbaVarTstEq变量比较rtcMsgBox显示对话框VarBstrCmp比较字符串VarCyCmp比较字符串用OD载入脱壳后的程序,在命令行输入:bpx hmemcpy,然后回车,会弹出程序运行调用的所有的函数,在每个函数上设置好断点!说明:我破VB程序喜欢用这个断点设置方法,通过一步步跟踪,基本可以把握程序保护的思路,所以我破VB程序基本用这个断点,当然你可以用其它的断点,只要能找到关键,任何断点都是用意义的。

关于VB的程序,注册没有提示的二个办法:第一(提示错误):用GetVBRes来替换里面的提示串,一般是以'111111','222222'之类的替换因为:VB,用的字来存放提示还有加了点东东,我们用的工具一般是字节分析。

换成'22222'之类的就是字节了,用静态分析,就有你该的串了。

GetVBRes(网上很多,自己下吧)第二(没有提示):用vbde这个工具(不知道,有没有用过DEDE,是一样思路),主要是找出破解的按钮窗口的位置,来进行跟踪。

与破解过招,保护你的共享软件

与破解过招,保护你的共享软件

§暴力破解(爆破)
这是最常见,也是最简单的破解的方法。该法最适合于对付没有CRC效验的软件,破解新手乐于采用。
大凡共享软件,验证是否注册大多数要采用if条件语句来进行判断,即使你采用了什么RSA或ECC等强力加密算法,也免不了使用if条件语句。呵呵,这里就是共享软件最为危险的地方哦,当然也是爆破手孜孜不倦所寻求的目标呀!
第三,你是可以用些小技巧来使他的生活更加痛苦一些的,呵呵。这里我推荐大家使用DSA公开密匙加密算法,它和RSA一样,可以进行数字签名(RSA还可以加密,DSA则只能进行数字签名)。我这里选用它的原因就是它有一项非常实用的特性:随机数填充机制。即DSA每次签名都要使用一个随机数K,正因为有这个K的存在,即使是相同的用户名和机器识别码,由DSA加密过的每份注册文件都不会相同。这对Cracker拆解你的注册文件来说是一个极大的障碍。
另外一定要使用公开密匙算法保护你的软件,RSA、DSA和El Gamal之类的算法都可以从网上找到。但注意:将你算法单元中的所有涉及到算法名称的字符串全部改名。避免被Cracker发现你用的算法而模仿写出注册机来!你还可以张冠李戴,明明用的DSA,将名字全部替换成RSA,呵呵,让他模仿去吧!:)
{ 将逻辑判断改为否 }
if not RSAVerify(MD5(Key), MD5(Code), e, n) then
ShowMessage('注册成功!')
else
ShowMessage('注册失败!');
就可以了。这时戏剧性的结果会产生:随便输入任何注册码都可以注册通过,相反输入正确的注册码却无法通过注册。:) 其具体操作是先反汇编或者跟踪你的程序,找到判断注册码的cmp、test等汇编指令后的关键跳转指令处,通常是je、jz之类的汇编指令,把它们修改为jne或jnz即可,这样常常只需要修改一个字节就可以完美破解之。:)

软件防破解方法

软件防破解方法

共享软件如何防破解2008-06-02 16:18共享软件如何防破解中文部分1.共享软件如何防破解首先要说的是任何软件都会被破解,下面所讲到的方法只能起到一定的保护作用,延长破解时间。

如果想永远都不被破解,那么只有一个办法:不要把它做出来。

让我们来做出最简单的注册验证算法。

1、简单的讲,就是一个数值(a)通过某种运算方法(c)变成另一个数值(b)方法。

举个例子,a1=b1 xor c1,a1就是a,表示用户名;b1就是b,表示注册码;运算部分x xor c1就是运算方法c。

根据用户名a1通过上面的表达式生成b1(当然运算方法c只能你自己知道),用户得到a1和b1,输入到软件中,如果它是成立的,表明注册成功,当然不成立则表示注册失败。

上面的例子非常简单,主要说明注册的原理。

当然用它做注册算法,普通的用户是无法破解出来,但对于一些喜欢破解软件的人来说当然太简单了。

下面让我们做出一个复杂的注册算法。

2、更为复杂的算法--RSA,这种方法和上面的方法原理基本一样,但可以生成更为复杂的注册码,其用法和源代码可以在网上找到。

注意的事是选择的参数不要太长,如果太长很麻烦,也不要太短,太短很容易被破解,用多长的注册码最好呢,以目前主流电脑上一秒种完成验证的时间长度为最好。

用RSA做注册算法理论上是做不出来注册机,但事实上仍然可能做出注册机。

所以我们把它和一些其它方法配合使用。

3、不要忘了你自己也可以做注册算法的,当然你不可能做出超过RSA的算法,但你的算法仍然是很有威力的,原因在于你的算法是独特的。

如果破解者对你的算法非常熟悉,再好的算法也没用,但如果破解者对你的算法不清楚,即使很容易,他也要思考一下。

好了,我相信你已经做出了一个类似a1=b1 xor c1的注册算法,我们的软件现在不会那么容易就被破解了。

现在告诉你一个很不幸的消息,由于你的独特算法,破解者已经对你的软件很感兴趣了。

那么我们不得不使用更好的方法来保护你的软件。

VBA在数据加密与隐私保护中的技巧

VBA在数据加密与隐私保护中的技巧

VBA在数据加密与隐私保护中的技巧数据安全是在当今数字化时代中最关键的问题之一。

随着信息技术的迅速发展和数据大规模的传输与处理,保护数据的隐私和完整性变得至关重要。

在这方面,Visual Basic for Applications(VBA)技术可以帮助我们实现数据加密和隐私保护。

本文将介绍一些在使用VBA时可以使用的技巧,以保护数据的安全。

1. 使用VBA进行数据加密数据加密是保护数据安全的一种常用方法。

通过使用VBA的加密算法,我们可以将数据转化为不可读的形式,从而防止未经授权的访问者获取数据的真实内容。

一个常用的数据加密方法是使用密码算法,如AES(高级加密标准)或RSA(Rivest-Shamir-Adleman)加密算法。

通过在VBA代码中使用这些算法和相应的密钥,我们可以有效地保护敏感数据的机密性。

2. 采用访问控制手段除了加密,访问控制也是保护数据的重要手段。

使用VBA,我们可以利用各种访问控制技术来限制对数据的访问。

例如,我们可以通过在VBA代码中添加身份验证机制,要求用户提供有效的用户名和密码才能访问受保护的数据。

此外,我们还可以使用VBA提供的各种权限设置,对不同用户或用户组进行细粒度的权限控制,从而确保只有有权限的人可以访问和修改数据。

3. VBA中的数据屏蔽数据屏蔽是另一种常用的隐私保护技术,它可以通过隐藏或部分显示敏感数据来保护数据的隐私。

在VBA中,我们可以使用掩码技术将数据部分遮盖,只显示部分信息。

这可以防止未经许可的人获取完整的敏感数据,同时保持数据的可用性。

例如,我们可以使用VBA代码将银行账号的中间几位数字部分替换为*,以保护用户的隐私。

4. 数据删除与覆盖除了保护数据的机密性和隐私性,安全地删除或覆盖敏感数据也是非常重要的。

在VBA中,我们可以使用相应的函数和方法来确保数据的完全删除。

例如,我们可以使用VBA的Delete函数删除Excel工作表中的数据,并使用Overwrite函数将敏感数据所在的内存位置进行覆盖。

软件的防护与破解方法的探析

软件的防护与破解方法的探析

软件的防护与破解方法的探析作者:雷波来源:《数字技术与应用》2014年第03期摘要:随着互联网技术的发展,各类网络应用软件越来越多,人们对于网络软件的安全问题也越来越关注。

本文主要就当下常用的软件加密技术进行简要介绍,具体的介绍了流行的破解方法。

关键词:软件加密软件防护破解中图分类号:TP309.7 文献标识码:A 文章编号:1007-9416(2014)03-0222-01为了保护软件公司自己的知识产权,各个公司都采用适合自己产品的防盗方式,但是任何加密手段都会被技术人员破解,这是由于任何一小段的软件加密技术都是一段程序,这就会造成我们只需要研究加密技术的程序来完成对软件的破解。

1 软件加密技术1.1 时间限制保护技术对于时间限制软件技术的破解方法,一般都要从软件的设计原理入手,这些软件的标志和数据记录通常都是在注册表中隐蔽存在的。

我们只需要找出这些软件的时间标志就能够对其进行破解。

目前从注册表中查找这些时间标志大部分是借助其他软件,比如像RegSnap,通过对于软件运行前后的快照差别,然后查出软件的时间标志,或者是找出软件记录次数的键值,更改这些数值就能够破解软件的时间限制。

具体步骤如下,首先要建立注册表快照,利用RegSnap进行扫描并保存数据。

具有时间限制软件在运行中,出现剩余时间提示后,再利用RegSnap进行扫描一次并保存数据。

然后通过RegSnap的照片对照功能,从而发现哪些键值发生了变化,进一步确定时间记录的位置,用户根据时间记录去修改注册表,然后重启软件再运行。

1.2 序列号保护技术序列号保护技术主要是先让用户的私人信息比如硬盘序列号发送给软件公司,软件公司根据用户的信息通过之前编写好的程序计算出一个序列号,然后用户在软件安装过程中出现的提示,输入相关信息和序列号,在获得软件公司的确认后,软件公司在给这些已经确认的用户通过权限,用户之后使用时就可以任意使用软件的各种权限。

对于这种序列号保护做饭看起来比较严谨,但其实目前有两种方法可以将其破解。

VBA中的数据共享与保护技巧与应用

VBA中的数据共享与保护技巧与应用

VBA中的数据共享与保护技巧与应用VBA(Visual Basic for Applications)是一种流行的编程语言,用于扩展微软Office套件中的应用程序功能。

在Excel中,VBA可以用来自动化任务、创建自定义函数和处理数据。

然而,由于Excel文件中储存着许多重要的数据,我们需要确保数据的安全性和保密性。

本文将介绍几种VBA中的数据共享与保护技巧与应用,以帮助读者更好地管理Excel文件中的数据。

1. 数据共享技巧在VBA中,我们可以通过不同的方式与外部文件或数据库进行数据共享。

下面是几种常用的数据共享技巧:1.1. 文件导入和导出使用VBA,我们可以将数据从Excel文件导出到其他文件格式(如CSV、TXT)或从其他文件格式中导入数据。

这在与其他系统集成、数据交换和备份等方面非常有用。

1.2. 数据库连接通过连接到外部数据库,例如SQL Server、Access或Oracle,我们可以在Excel中对数据库执行查询、读取数据、更新数据等操作。

这样一来,我们可以利用数据库的强大功能来管理和操作大量的数据。

1.3. API调用许多Web服务都提供了API,可以用来获取或更新数据。

使用VBA,我们可以通过API调用与这些服务进行交互,获取所需的数据并在Excel中进行处理。

2. 数据保护技巧数据保护是确保数据完整性、保密性和可靠性的重要方面。

以下是一些VBA中常用的数据保护技巧与应用:2.1. 数据备份在对重要数据进行更新或修改之前,我们应该先进行数据备份。

使用VBA,我们可以自动创建备份副本,确保在意外情况下可以恢复到之前的数据状态。

2.2. 密码保护对于包含敏感数据的Excel文件,我们可以使用VBA编写代码来添加密码保护。

这样一来,只有知道密码的人才能打开或修改文件。

此外,我们还可以对特定的工作表或单元格进行密码保护,以提高数据的安全性。

2.3. 数据加密为了确保数据的保密性,我们可以使用VBA中的加密算法对敏感数据进行加密。

VB程序设计教学方法的思考与探索

VB程序设计教学方法的思考与探索

VB程序设计教学方法的思考与探索
陈霜霜
【期刊名称】《科技信息》
【年(卷),期】2009(000)027
【摘要】VB程序设计课具有较强的理论性与实践性,文章就如何提高学生VB程序设计能力和课堂的教学质量,从理论与实践教学两方面,不同角度地分析和探索了多种教学方法.
【总页数】2页(P493,502)
【作者】陈霜霜
【作者单位】盐城师范学院信息科学与技术学院,江苏,盐城,224002
【正文语种】中文
【相关文献】
1.关于VB程序设计教学方法的探索 [J], 王娜
2.VB程序设计课程教学方法的探索与思考 [J], 李一清;刘晓琴
3.VB程序设计教学方法的探索 [J], 薛亚玲
4.探索VB程序设计课程教学方法 [J], 尹纪庆
5.文科专业VB程序设计课程教学方法探索 [J], 朱友红
因版权原因,仅展示原文概要,查看原文内容请购买。

浅谈软件的破解与保护

浅谈软件的破解与保护

浅谈软件的破解与保护保护知识产权,抵制盗版软件,是目前中国软件业所面临的迫切问题。

目前绝大多数软件都采取了加密技术来应对,本文分析了软件破解中几个重要的专业术语和常见的软件破解方法,并具体介绍了软加密和硬加密技术。

1.引言开发软件时,尤其当用到商业用途时,注册码和激活码是非常重要的,未注册的用户会加上某些限制,如使用天数,延迟,未注册画面等等。

但是现在的软件破解技术十分强大,各种国内外大型软件都有注册机制,却同时也不断地被破解,国家一再加大力度,打击非法软件出版物,扶持正版软件,但实际效果并不理想。

大多的软件商选择了购买加密产品或者加密技术来保护自己的软件,软件保护一般分为软加密和硬加密。

2.常见的软件破解方法2.1首先我们来了解一下破解中几个重要的专业术语。

2.1.1断点,所谓断点就是程序被中断的地方,中断就是由于有特殊事件发生,计算机暂停当前的任务,转而去执行另外的任务,然后再返回原先的任务继续执行。

解密的过程就是等到程序去获取我们输人的注册码并准备和正确的注册码相比较的时候将它中断下来,然后我们通过分析程序,找到正确的注册码。

2.1.2领空,所谓程序的领空,就是程序自己的领土地盘,也就是我们要破解的程序自己程序码所处的位置。

每个程序的编写都没有固定的模式,所以我们要在想要切人程序的时候中断程序,就必须不依赖具体的程序设置断点,也就是我们设置的断点应该是每个程序都会用到的东西。

2.1.3API,即Application Programming Interface的简写,我们叫应用程序编程接口,是一个系统定义函数的大集合,它提供了访问操作系统特征的方法。

API包含了几百个应用程序调用的函数,这些函数执行所有必须的与操作系统相关的操作,如内存分配、向屏幕输出和创建窗口等,WINDOWS程序以API为基础来实现和系统打交道。

无论什么样的应用程序,其底层最终都是通过调用各种API函数来实现各种功能的。

共享软件防“暴破”经验谈

共享软件防“暴破”经验谈

共享软件防“暴破”经验谈
陈洪彬
【期刊名称】《网上俱乐部:电脑安全专家》
【年(卷),期】2005(000)001
【摘要】共享软件一直是软件的重要组成部分。

开发者以极大的热忱投入其中,
用自己的“汗水”和“心血”换回应得的报酬,然而,有一个问题一直让大家兴疼,那就是软件破解。

【总页数】2页(P84-85)
【作者】陈洪彬
【作者单位】无
【正文语种】中文
【中图分类】TP31
【相关文献】
1.例谈实用暴破法在高中数学解题中的应用 [J], 徐锡滨
2.暴破“黑客字典Ⅱ”并编写注册机 [J], 震震有词
3.Word密码极速暴破 [J], 飘零雪
4.暴破Gmail和Yahoo!邮箱 [J], 飘零雪
5.慧眼识珠暴破优选QQ号 [J], 飘零雪
因版权原因,仅展示原文概要,查看原文内容请购买。

VBA安全性和权限控制注意事项

VBA安全性和权限控制注意事项

VBA安全性和权限控制注意事项VBA(Visual Basic for Applications)是一种允许用户自定义和扩展Microsoft Office应用程序功能的编程语言。

它为用户提供了一种强大的方式来自动化重复性任务、增强数据处理和创建用户界面。

然而,由于VBA具有广泛的功能和访问权限,如不正确使用,可能会导致安全风险和权限滥用。

因此,本文将介绍一些VBA安全性和权限控制的注意事项,以确保您的VBA项目安全可靠。

1. 验证来源和完整性:在使用VBA编写的宏或脚本中,应始终验证宏的来源和完整性,以防止未经授权的宏执行和损坏的宏对系统造成损害。

要实现这一点,可以考虑使用数字签名和证书来验证VBA项目的来源,并使用代码签名来确保宏的完整性。

2. 限制并仅授予必要权限:VBA具有访问系统和文件的广泛权限,因此我们必须仔细限制和授予宏的权限。

在编写宏时,应仅授予所需的权限,并避免不必要的访问。

可以通过使用最严格的安全设置、限制宏的访问权限和仅授予权限所在的对象来实现这一点。

3. 防止宏病毒:宏病毒是一种利用VBA功能的恶意软件,它可以自我复制和传播,并对系统和数据造成损害。

为了防止宏病毒的传播,应该启用安全设置并限制宏执行的来源。

此外,还应注意不要在未知来源的文件中启用宏,并避免打开或执行未经检验的宏。

4. 加密敏感数据:在编写VBA代码时,应采取适当的措施来保护敏感数据,如加密。

这样可以确保在数据传输或存储过程中,即使数据被窃取,也无法轻易解密或使用。

可以使用加密算法和密钥管理来实现数据的安全传输和存储。

5. 强制访问控制:为了确保VBA项目的安全性和权限控制,可以考虑实施强制访问控制机制。

这种机制可以限制对VBA项目的访问和操作,并为每个用户或用户组分配适当的权限。

通过这种方式,可以减少潜在的滥用和安全漏洞,并保护敏感信息的机密性和完整性。

6. 定期更新和审查代码:要确保VBA项目的安全性,应定期更新和审查代码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VB 共享软件防破解设计技术初探(一)作者:爱琴海[SCG] 2008/09/04 (转载请保留该信息)一转眼又过去了一年,回头一看,今年我没发表过任何破解类文章,没有任何有价值的文章,名下的精华只是徒有其表的7个,也许太忙,也许读大学读得后悔,也许堕落了。

在看雪注册的帐号一晃就是两个春夏秋冬了,大三要忙自己的学业了,估计以后也不会再有时间和精力破解软件,学习加密思想了。

两年的时间发生了太多的事情,来不及回忆,来不及思考,我们班班长不久前溺水去逝了,估摸着也到头七了……这世事总无偿,让人来不及追忆,来不及哀悼。

今天实习的时候,好好的,竟然被车床飞出来的铁屑烫伤……趁现在还在坛子里活动,趁现在脑子还没生锈,我琢磨着把自己两年来积累的部分经验和思想写下来,留下点什么有用的东西。

学习VB编程也就一年,只是入门而已,谈不上什么高手。

本系列是作者本人尝试过和破解过的一些技术经验之谈,如果有问题或者有纰漏和错误,敬请高位高手点明和说明;也不知道该系列能写多少,能写多久;若是有时间,有精力,有能力,我会继续写下去,谢谢大家的观看。

加密解密一直是相辅相成的技术,没有矛何必有盾?有盾怎能没矛?在不断的尝试和实践中,才能积累起丰富的加密解密经验,为自己写的共享软件设计出一套完善的加密系统,或者攻克一个高度加密的共享软件,两者都是件令人欢心令人耗尽精力。

终记起这样的一段诗句:“衣带渐宽终不悔,为伊消得人憔悴”。

本系列第一篇,粗略的讲解我认识到的VB防破解技术,后续篇将实战演练教学我个人认识的VB防破解包括如下几下方面:1、文件完整性,防止被非法修改2、运行时的校验,防止被LOADER3、反调试,防止动态跟踪和挂接4、防静态反汇编分析5、注册码系统(算法部分,核心内容)6、加壳防脱壳7、隐蔽性设计8、另辟蹊径由于VB天生的原因,有些功能实现起来非常麻烦,比方说算法部分,如果采用大数运算的话,缺少大数运行库。

所以,有时也可以采用第三方DLL来补充大数的不足。

我先粗略的讲下以上8大点的大概分类:1、文件完整性,可采用CRC32或者MD5或者哈希算法等,计算出文件的加密值,在适当的时候进行对比,判断文件被修改与否。

当然那也可以加猛壳来防止文件非法修改。

还有简单点的检查文件最后修改时间,看看是否是你自己设置好的时间,如果不是,则很有可能被修改过;也可以检测文件大小,往往压缩壳被脱掉后,文件的大小会增加;保护壳被脱掉后,文件大小会变小,我们可以根据这个设置好临界值来检测有没有被脱壳。

常用的还有故意设计好关于算法方面的陷阱,如果是破解者会主动掉进你的陷阱,而事实上,这个跳转除非爆破,不然在算法上是永远也无法到达的,这样就检出破解者在修改程序流程。

你可以无声无息的程序死掉,不要直接退出,不然会被追踪到退出函数。

2、防止LOADER,这个实现起来不容易,但是可以巧妙的应用VB里的SHELL函数,进行“金蝉脱壳”。

常用的保护壳里有些也能防止LOADER。

在下次系列里将讲解“金蝉脱壳”技术3、反调试,如同《使用VB进行反跟踪的技术点滴》一文讲解,基本差不多了。

常见的有:检测父进程;遍历所有进程检查程序标题栏,看看是否有敏感字符;反SMARTCHECK加载;经典时值步长比较;异常处理技术(这个要当作重点)一些猛壳本身也有反调试功能。

4、还可以检测程序启动时间,一般调试器加载都是比正常启动程序要慢10倍左右还可以检测内存分配,如果OD调试器启用了HIDEOD插件的话,那么程序获得的内存分配上限和下限都是不一样的还可以检测所有标题,枚举进程等一般要加几个TIMER控件来时时反调试,这样可以在OD挂接到程序的时候检测出来可参考实例:/showthread.php?t=67232/showthread.php?t=57181以前看雪论坛里有篇文章,laomms大侠写的《使用VB进行反跟踪的技术点滴》一文,对我们学习VB的防破解设计是很有帮助的,为了大家观看方便,我将它引录到下文中:原文地址:/showthread.php?t=26213———————————————————————————————————————跟其它语言相比,VB总是被人“鄙视”,其实没有好与不好的语言,正如某程序员说的:没有最好的语言,只有最好的程序员。

VB也有它自己的特点,简单、方便、可视化强、利于快速开发,6M的迷你版更是让人在不释手。

而且容易入门,也是通往其它语言最好的一个奠基。

可惜关于VB方面的保护技术的文章很少,软件加密技术里面有涉及VB的保护内容,但是源码太少了,大部分是C和MASM源码,这里我们也粗略的讲讲VB的一些保护技术,如果你还有更好的方法希望在下面补充。

一、检测父进程反RING3调试器,我们知道WIN32系统一般软件的父进程都是EXPLORE,而OD 等RING3调试器对软件进行调试时都是将它们的线程设为它的子线程,我们只要让程序检查父进程是否为EXPLORE就行,看附件里的Anti-Debug,如果发现父进程不是EXPLORE.EXE就自动退出,源码如下:'相关的API自己查查hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&) '建立进程快照If hSnapShot ThenProcess.dwSize = 1060If (Process32First(hSnapShot, Process)) Then '遍历第一个进程,获得PROCESSENTRY32结构 Doi = InStr(1, Process.szExeFile, Chr(0)) '获得映像名称mName = LCase(Left(Process.szExeFile, i - 1)) '并转换成小写If mName = "explorer.exe" Then '是不是explorer.exeexplorer = Process.th32ProcessID '获得进程IDElseIf Process.th32ProcessID = GetCurrentProcessId() Then '是不是自己pid = Process.th32ParentProcessID '获得自己父进程IDElseflag = FalseEnd IfLoop Until (Process32Next(hSnapShot, Process) < 1) '遍历所有进程直到返回值为FalseEnd Ifl1 = CloseHandle(hSnapShot)End IfIf pid <> explorer ThenTerminateProcess hprocess, 0ElseMsgBox "ok"On Error Resume NextEnd IfEnd Sub当然这个方法也不是万能的,在Process32First下断,更改跳转轻易躲过。

二、反SMARTCHECK加载,SMARTCHECK是调试VB的利器,有必要对其进行防范。

小楼前辈在软件加密技术内幕中提到两种检测方法:利用VB的AppActivate函数激活SMARTCHECK窗口,然后发送ALT+F4进行关闭该窗口和利用FindWindow发现SMARTCHECK窗口直接将其关闭,其代码基本上是这样:winHwnd = FindWindow(vbNullString, "Numega SmartCheck")If winHwnd <> 0 ThenAppActivate "Numega SmartCheck"sendkey "%{f4}", Truesendkey "%y", True其实,我觉得直接检测进程SMARTCHK.EXE是否存在也可以,方法跟上面类似,你还可以检测其它比如W32DASM等进程,附件中的Anti-Load就是实例,发现SMARTCHK调用,自动退出:…..If InStr(LCase(Process.szExeFile), "smartchk.exe") > 0 Thensmart = Process.th32ProcessIDTerminateProcess hprocess, 0Unload MeExit DoEnd If…….三、检测SOFTICE,附件里的Anti-ice就是Aming前辈的代码,在内存中直接检测SOFTICE。

四、利用IsDebuggerPresent检测调试器,这个对于OD来说已经一点用都没有了。

具体看附件中的IsDebuggerPresent。

Private Declare Function IsDebuggerPresent Lib "kernel32" () As LongPrivate Sub Command1_Click()If IsDebuggerPresent ThenEndElseMsgBox "没有被调试"End IfEnd Sub五、加密字符串。

比如Text1.text=”恭喜”,我们可以这样写:Text1.text=Chr(-18009) & Chr(-12366) & Chr(33),另外一种就是写算法将字符串进行加密,实例Encodestring里你将找不到字符串信息,找到的是乱码。

六、实现软件代码校检防止被修改,比如用CRC或者MD5进行自身代码完整性检测,实现方法:先写一个用于增加CRC特征码的软件,假设定义为结尾部分:Const CRC_HEAD = &H761226 '用于判断是否添加了CRC校验Private Type stCRClHead As Long '验证是否进行CRC校验的标识lCRC As Long 'CRC校验值End TypePrivate Sub Command1_Click()CRC_Exe App.Path & "\工程1.Exe"End SubPrivate Function CRC_Exe(ByVal strExe As String) As BooleanDim hFile As LongDim lFileLen As LongDim sCRC As stCRCDim btExe() As ByteOn Error GoTo Err_CRC_ExelFileLen = FileLen(strExe)hFile = FreeFileOpen strExe For Binary As #hFile '打开加密文件Seek hFile, lFileLen - LenB(sCRC) + 1 '定位CRC标识域,位于Exe文件尾部文件Get hFile, , sCRCIf sCRC.lHead = CRC_HEAD Then '如果已经添加了CRC校验则退出,反之添加CRC校验 MsgBox "已CRC验证!"Close #hFileExit FunctionElseSeek hFile, 1 '定位到文件首部ReDim btExe(lFileLen - 1)Get hFile, , btExe '按字节方式将Exe数据读入数组sCRC.lHead = CRC_HEAD '添加CRC验证标识sCRC.lCRC = Get_CRC(VarPtr(btExe(0)), lFileLen) '获取Exe内容CRC值Put hFile, , sCRC '将CRC校验写入Exe文件尾部End IfClose #hFileMsgBox "CRC校验完成!"CRC_Exe = TrueExit FunctionErr_CRC_Exe:If hFile <> 0 Then Close #hFileCRC_Exe = FalseMsgBox Err.DescriptionEnd Function为程序本身增加CRC校检代码:Const CRC_HEAD = &H761226 '用于判断是否添加了CRC校验Private Type stCRClHead As Long '验证是否进行CRC校验的标识lCRC As Long 'CRC校验值End TypePrivate Sub Form_Load()Dim hFile As LongDim sCRC As stCRCDim strExe As StringDim lFileLen As LongDim btExe() As BytestrExe = App.Path & "\" & App.EXEName & ".exe"lFileLen = FileLen(strExe)ReDim btExe(lFileLen - LenB(sCRC) - 1) As Byte '定义Exe字节缓存数组hFile = FreeFileOpen strExe For Binary As #hFile '读取Exe数据到数组Get #hFile, , btExeGet #hFile, , sCRCClose #hFileIf sCRC.lHead = CRC_HEAD Then '如果程序添加了CRC验证则验证CRC值If Get_CRC(VarPtr(btExe(0)), UBound(btExe) + 1) = lCRC Then '验证Exe数据CRC和保存的CRC值是否相同MsgBox "文件未修改!".ElseMsgBox "文件被非法修改!"End IfElseMsgBox "文件尚未进行CRC验证!" '检查尾部是否已已经增加CRC校检End IfEnd Sub其中的CRC模块网上很多。

相关文档
最新文档