易语言反调试手段,检测自身是否被断点

写法很简单,思路也很简单,就是第一次初始化时将代码段的开始地址到结束的地址所有的字节累加起来,然后再写个死循环重新累加对比初始化时的字节累加总数,不同就是被下了断点,改下初始化逻辑能应付下破J新手,其原理是当设置断点后,对应位置的机器码(第一个字节)会被替换成0XCC(对应的汇编指令为int3)字节变化了那么累加起来的数就会不同,达到了检测断点的效果,新手可以看看,大佬绕道咯

.版本 2 .程序集 函数 .子程序 初始总和 .局部变量 i, 整数型 _启动窗口.按钮1.禁止 = 真 _启动窗口.标签1.标题 = “初始化字节中” ' 简单的检测一些简单的断点 _启动窗口.标签1.文本颜色 = #芙红 初始总和 = 0 .判断循环首 (真) .如果真 (4198400 + i = 4718591) 跳出循环 () .如果真结束 初始总和 = 初始总和 + 内存.读字节 (进程_取自进程ID (), 4198400 + i - 1) ' 将程序代码段地址的字节遍历累加成总数 i = i + 1 .判断循环尾 () _启动窗口.时钟循环调用.时钟周期 = 5000 ' 初始化累加完毕后让时钟来一直循环累加代码段地址的字节 .子程序 计算总和 .局部变量 i, 整数型 检测总和 = 0 .判断循环首 (真) .如果真 (4198400 + i = 4718591) 跳出循环 () .如果真结束 检测总和 = 检测总和 + 内存.读字节 (进程_取自进程ID (), 4198400 + i - 1) i = i + 1 .判断循环尾 () .如果 (检测总和 ≠ 初始总和) ' 如果累加的总数和初始化时的不同就是被下断点了 _启动窗口.时钟循环调用.时钟周期 = 0 _启动窗口.标签1.标题 = “程序被下断点 ×” _启动窗口.标签1.文本颜色 = #红色 _启动窗口.时钟循环调用.时钟周期 = 5000 .否则 _启动窗口.时钟循环调用.时钟周期 = 0 _启动窗口.标签1.标题 = “程序未下断点 √” _启动窗口.标签1.文本颜色 = 41984 _启动窗口.时钟循环调用.时钟周期 = 5000 .如果结束

易语言反调试手段,检测自身是否被断点.png

相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注