C/C++ 通过CRC32实现反破解
我们可以通过使用CRC32算法计算出程序的CRC字节,并将其写入到PE文件的空缺位置,这样当程序再次运行时,来检测这个标志,是否与计算出来的标志一致,来决定是否运行程序,一旦程序被打补丁,其crc32值就会发生变化,一旦发生变化,程序就废了,绕过的方式则是,1.动态打补丁,2.找到crc32算法位置将跳转nop掉,3.直接手动计算出crc32并覆盖到原始程序的crc算法位置。
对文件的CRC32检测
PE头,前面有非常多的无效空间,可以供我们使用,crc32地址应该反写。
另一种通过使用 MapFileAndCheckSum 实现的反破解,先来修改一下C++编译器配置,使其能够支持
C/C++ -> 常规 -> 调试信息格式 --> 程序数据库
连接器 -> 常规 -> 启用增量链接 -> 否
连接器-> 高级 ->设置校验和 ->是
主程序检测程序如下。
对磁盘的CRC32检测
对磁盘完整性检测只能防止文件被修改,但无法防止内存补丁,下面的代码将可以检测内存变化,如果内存被打补丁,则会退出执行。
原理是,定位到.text节首地址,然后计算该节的CRC32值,并存入全局变量,然后开一个线程进行循环检测,一旦发生变化,则立即让程序报废。部分代码片段。
上方代码是保护了整个程序,在实际应用中,有时我们只需要保护其中一个片段代码就好,这样可以提高效率,所有我们对上面代码稍作修改即可实现针对特定片段的内存校验.
C/C++ 通过CRC32实现反破解相关推荐
- Android开发笔记(七十三)代码混淆与反破解
代码混淆 ProGuard是ADT自带的apk混淆器,它的用途有: 1.压缩apk包的大小,能删除无用的代码,并简化部分类名和方法名. 2.加大破解源码的难度,因为部分类名和方法名被重命名,使得程序逻 ...
- USB软件狗的设计及反破解技术
1 软件狗技术 近年来,软件狗技术在保护软件开发者利益.防止软件盗版方面起了很大作用.软件狗技术属于硬加密技术,它具有加密强度大.可靠性高等特点,已广泛应用于计算机软件保护.软件狗技术的发展经历了多次 ...
- python爬虫与数据可视化(一)—— 爬取猫眼电影(涉及爬虫反破解)
又是新的一年,让我们一起来看一下刚刚过去的2018留下了哪些经典影片吧! 一.获取电影详情页链接 进入猫眼官网,按图中的顺序点击,得到2018年按评分排序的影片进入猫眼官网,按图中的顺序点击,得到20 ...
- unity 修改Mono反破解加密Assembly-CSharp.dll
解密无非就为了 修改游戏功能数据.提取游戏资源.加入自己想加的广告... 加密就是保护游戏不被恶意修改,我经常看到有人说:"加什么密,你以为自己写的代码很NB?见不得人?". 我只 ...
- VB写的软件加壳都没用,超强反调试反破解分析,检测OD调试器
这个反调试具有很好的防止OD等动态调试器对 VB软件的调试.是依据OD等调试器原理进行设计的反调试功能,其中包括隐藏字符串等技术.防止单步调试等技术等 csdn下载地址 https://downloa ...
- 实例分析正版手游的安卓反破解之路
"不愿意为游戏付费的安卓玩家们并不是我们的市场"Atypical Games 宣布不考虑制作<辐射岛>安卓版.苹果的独占市场,又多了一面小红旗. 喊出"最大破 ...
- 苹果与黑客的破解与反破解暗战
苹果 和黑客现在正斗得不亦乐乎,苹果设障碍,黑客负责拆除. iPhone买还是不买?对于所有喜爱苹果的中国人来说,是一个问题. 粉丝 们津津乐道于iPhone超酷的多点触摸技术.小型Macos和内置Y ...
- 12306网站推出图片验证 反破解
北京时间,三月十六日. 铁路官方网站推出了图片验证,即需要准确地选取的正确的图片,否则无法的登录. 好事是给黄牛带来的困难,另外不同的照片其中的因素或许有不同的商机,相如经常出现的某口香糖.某快餐店, ...
- 如何保护swf文件不被反编译软件破解?
How to protect SWFs from decompilers? 如何保护swf文件不被反编译软件破解? [ April 24, 2004 ] by Eric Lin 原作:EricLin ...
最新文章
- plotly可视化绘制共享坐标轴图
- 专家谈计算机体系架构研究获“图灵奖”
- 夺命雷公狗---微信开发57----微网站之jquery_mobile之入门案例
- 20个命令行工具监控 Linux 系统性能(转载)
- python简单代码运行_python代码如何运行
- Java并发编程的艺术笔记(七)——CountDownLatch、CyclicBarrier详解
- c语言输入若干数输出最小值循环结构,C语言上机150道题
- 程序员8大终极杀器,你get了几个?
- 1049. 数列的片段和(20)
- gnu linux中 使用,在Linux上使用GNU sed的方法
- java循环队列_Java 循环队列的实现
- 数据结构与算法笔记(一) 程序性能分析
- 女孩你让我留恋,你让我痴迷。
- bat调用ssis package
- 虚拟机Ubuntu中编写C语言程序
- 小米10至尊纪念版和iphone11的区别 哪个好
- 华为产品升级及打补丁具体步骤
- 《交互设计的艺术-ios7拟物化到扁…
- 免费的云端软件测试平台-快意测试云V1R1.B21更新发布
- 三、matlab绘制三维坐标图