我们可以通过使用CRC32算法计算出程序的CRC字节,并将其写入到PE文件的空缺位置,这样当程序再次运行时,来检测这个标志,是否与计算出来的标志一致,来决定是否运行程序,一旦程序被打补丁,其crc32值就会发生变化,一旦发生变化,程序就废了,绕过的方式则是,1.动态打补丁,2.找到crc32算法位置将跳转nop掉,3.直接手动计算出crc32并覆盖到原始程序的crc算法位置。

对文件的CRC32检测

PE头,前面有非常多的无效空间,可以供我们使用,crc32地址应该反写。

另一种通过使用 MapFileAndCheckSum 实现的反破解,先来修改一下C++编译器配置,使其能够支持

C/C++ -> 常规 -> 调试信息格式 --> 程序数据库

连接器 -> 常规 -> 启用增量链接 -> 否

连接器-> 高级 ->设置校验和 ->是

主程序检测程序如下。

对磁盘的CRC32检测

对磁盘完整性检测只能防止文件被修改,但无法防止内存补丁,下面的代码将可以检测内存变化,如果内存被打补丁,则会退出执行。

原理是,定位到.text节首地址,然后计算该节的CRC32值,并存入全局变量,然后开一个线程进行循环检测,一旦发生变化,则立即让程序报废。部分代码片段。

上方代码是保护了整个程序,在实际应用中,有时我们只需要保护其中一个片段代码就好,这样可以提高效率,所有我们对上面代码稍作修改即可实现针对特定片段的内存校验.

C/C++ 通过CRC32实现反破解相关推荐

  1. Android开发笔记(七十三)代码混淆与反破解

    代码混淆 ProGuard是ADT自带的apk混淆器,它的用途有: 1.压缩apk包的大小,能删除无用的代码,并简化部分类名和方法名. 2.加大破解源码的难度,因为部分类名和方法名被重命名,使得程序逻 ...

  2. USB软件狗的设计及反破解技术

    1 软件狗技术 近年来,软件狗技术在保护软件开发者利益.防止软件盗版方面起了很大作用.软件狗技术属于硬加密技术,它具有加密强度大.可靠性高等特点,已广泛应用于计算机软件保护.软件狗技术的发展经历了多次 ...

  3. python爬虫与数据可视化(一)—— 爬取猫眼电影(涉及爬虫反破解)

    又是新的一年,让我们一起来看一下刚刚过去的2018留下了哪些经典影片吧! 一.获取电影详情页链接 进入猫眼官网,按图中的顺序点击,得到2018年按评分排序的影片进入猫眼官网,按图中的顺序点击,得到20 ...

  4. unity 修改Mono反破解加密Assembly-CSharp.dll

    解密无非就为了 修改游戏功能数据.提取游戏资源.加入自己想加的广告... 加密就是保护游戏不被恶意修改,我经常看到有人说:"加什么密,你以为自己写的代码很NB?见不得人?". 我只 ...

  5. VB写的软件加壳都没用,超强反调试反破解分析,检测OD调试器

    这个反调试具有很好的防止OD等动态调试器对 VB软件的调试.是依据OD等调试器原理进行设计的反调试功能,其中包括隐藏字符串等技术.防止单步调试等技术等 csdn下载地址 https://downloa ...

  6. 实例分析正版手游的安卓反破解之路

    "不愿意为游戏付费的安卓玩家们并不是我们的市场"Atypical Games 宣布不考虑制作<辐射岛>安卓版.苹果的独占市场,又多了一面小红旗. 喊出"最大破 ...

  7. 苹果与黑客的破解与反破解暗战

    苹果 和黑客现在正斗得不亦乐乎,苹果设障碍,黑客负责拆除. iPhone买还是不买?对于所有喜爱苹果的中国人来说,是一个问题. 粉丝 们津津乐道于iPhone超酷的多点触摸技术.小型Macos和内置Y ...

  8. 12306网站推出图片验证 反破解

    北京时间,三月十六日. 铁路官方网站推出了图片验证,即需要准确地选取的正确的图片,否则无法的登录. 好事是给黄牛带来的困难,另外不同的照片其中的因素或许有不同的商机,相如经常出现的某口香糖.某快餐店, ...

  9. 如何保护swf文件不被反编译软件破解?

    How to protect SWFs from decompilers? 如何保护swf文件不被反编译软件破解? [ April 24, 2004 ] by Eric Lin 原作:EricLin ...

最新文章

  1. plotly可视化绘制共享坐标轴图
  2. 专家谈计算机体系架构研究获“图灵奖”
  3. 夺命雷公狗---微信开发57----微网站之jquery_mobile之入门案例
  4. 20个命令行工具监控 Linux 系统性能(转载)
  5. python简单代码运行_python代码如何运行
  6. Java并发编程的艺术笔记(七)——CountDownLatch、CyclicBarrier详解
  7. c语言输入若干数输出最小值循环结构,C语言上机150道题
  8. 程序员8大终极杀器,你get了几个?
  9. 1049. 数列的片段和(20)
  10. gnu linux中 使用,在Linux上使用GNU sed的方法
  11. java循环队列_Java 循环队列的实现
  12. 数据结构与算法笔记(一) 程序性能分析
  13. 女孩你让我留恋,你让我痴迷。
  14. bat调用ssis package
  15. 虚拟机Ubuntu中编写C语言程序
  16. 小米10至尊纪念版和iphone11的区别 哪个好
  17. 华为产品升级及打补丁具体步骤
  18. 《交互设计的艺术-ios7拟物化到扁…
  19. 免费的云端软件测试平台-快意测试云V1R1.B21更新发布
  20. 三、matlab绘制三维坐标图

热门文章

  1. P1644 跳马问题
  2. 在idea中,无法使用vue的标签,报红显示错误“Namespace ‘v-ind‘ is not bound“
  3. Android 的好博
  4. Day437438439.秒杀服务 -谷粒商城
  5. 配合GitHub编译openwrt
  6. scrap安装——Windows
  7. 世界三大顶级音响_世界顶级音响有哪些?
  8. 2012 年3月31号
  9. 中国3大通信运营商3G技术的比较
  10. 参加大数据培训学习有前途吗?