前言:看了那么多人发一些心得帖子,看着一些人说的东西有的对有的不对,如下纠正,当然在最后做点小guanggao,呵呵

1 CRC  很多人老是把CRC和检测联系到一起,我也不知道这个概念是谁先灌输的, CRC是一套算法, 目的是来检测代码是否被更改过,所以DNF里

的CRC大都用来检测的是HOOK,至于一些数据异常,我拿个例子来说,比如以前的无消耗冷却,改物品代码为3,为什么用之后会小三?因为DNF

在使用的函数里加了一个判断跳转,当物品代码是3的时候跳转到一个地方进行详细检测,他的跳转不是一般的cmp 跳转之类的而是

mov eax,代码
jmp dword ptr[eax+基址]

当你的代码正常是跳转到一个地方,改过之后会跳转到另外一个地方,这种检测不叫CRC,请大家以后分清楚了,不要吧过检测直接就说是CRC

2 关于注入追封的,说实话我到现在没有被追过,检测有以下几点(非输入法注入,直接正常注入)

(1) 当然就是DLL模块的检测, 枚举本身进程, 可以在内核里挂个钩子NtQuerySystemInformation过滤一下你的模块

(2) 关于读取写入内存的,在R3中DNF没有HOOK检测,而是用了TP在R0中检测,R0中的检测最后结果是导致你网络连接中断

过掉NtReadVirtualMemory ,和NtWriteVirtualMemory即可,当然你如果注入DLL之后,不需要使用这两个函数,直接把地址转换

为指针即可

*(ULONG *)address=值

或者直接内联汇编

mov ecx,address

mov [ecx],值

(3) 过掉了以上还是不行的,在强行注入DLL的时候或者启动线程,会使用以下函数,没有恢复之前是没有任何效果的

1 GetProcAddress

2 LdrLoadDll

3 LdrInitializeThunk

4 ZwCreateThread

5 LoadLibraryExW

在几个月前,直接恢复这几个钩子就可以直接强行注入,但是在上个月,DNF用了一个CRC来检测这部分,不过这部分的检测代码VMP的镜像大

都是2层的

可以在2层进行HOOK跳转绕过,目前稳定

(4)在注入代码之后会有一个线程循环读取你注入的代码,模块名字好像叫tp什么什么的,微软本身也有这一个模块,我也不清楚这模块是DNF改

过的,还是原来微软没有公开的用来回收内存的机制,直接返回

(5)还有一个更深层的检测,这个留一手吧,呵呵,DLL注入不需要考虑这种情况,我也就不多加介绍了

3 关于DNF登陆的检测

这个部分主要针对的是工作室了,登陆的时候会获取CPU 的ID,获取的实现方法并不是一般的函数,而是cpuid这个汇编来获取,所以相对来说

不是很好HOOK,解决办法可以分析出什么地方获取的, 进而在那个地方做一些手脚,当然你工作室的技术人员够厉害可以进入r-1,这样是可以

HOOK 这个汇编指令的,这样的话TP的所有反调试基本作废了

4 DNF的检测

请大家把这部分与CRC分开,这是两个概念,这里的检测很像一种异常检测机制,有如下两点,对于有编程功底的深有体会

(1) 已知异常检测 对于一些特定的数据出现,直接认定为是智辅,比如召唤吧,召唤的怪物代码,在我改召唤的时候召唤深渊BOSS

直接小三,或者是一些99W代码,一旦使用直接小三

(2)未知异常检测 这也是DNF高级的检测部分,我也不知道是不是大家口中所说的obj,本人一直深居,不知道各种名词

每一个类派生出对象之后都是有各种值来记录的,当这种值不符合常理之后就会出现下三

体现在这里,你在调试智辅的时候经常有些功能是用好几把才会出现小三,或者用很多把才会出现,我以前直接使用狂龙CALL

是直接CALL不是改代码那种,在刷100多疲劳的时候会出现小三

(3) 这一部分在上面两者之间,怎么说呢,DNF也没法认定这样会是非法,只能认定出现多少次就是不寻常的,比如我以前通过瞬移技能

直接调用的瞬移CALL,不是一般的瞬移CALL,这种CALL很稳定,但是到达一定次数就会出现小三

(4) CRC计数器应该就是异常的计数器吧,呵呵,我是这么理解的,可能定义这个CRC计数器的人又是另外一个概念了

5 静态CRC和动态CRC

起先我都没听过静态和动态,因为我没这么叫,我把他们叫为大检测和小检测,呵呵,不是很形象,这也证明大牛还是很多的、

静态:研究过DNFCRC的人应该都知道,有一个线程在反复反复的扫描整个DNF内存空间,这个地址大家都很熟悉了,呵呵0x1d什么什么的

在DNF中保存有黑名单的函数,这就是重点扫描对象,一旦发现就小三,但是一个扫描过程需要3-5分钟所以很慢

动态:在很久以前遇到的,确实有点意思,在这个地址你会发现每次启动DNF之后扫描的线程不是一样的,有时候是这了两个,有时候是其他两个

或者三个,这种随机的检测可能就是你们所叫的动态CRC了,但是你会发现变来变去就是这几个

静态CRC我以前处理过,很是复杂的,当时分析了一点现在与大家分享,因为没有分析完全所以不知道结果是不是这样的

(1) 这个线程检测是与其他线程息息相关的,肯定不能直接写返回

(2) 你会发现在这个检测中挂上钩子进行处理之后还是会被检测的,但是又没有其他代码读取这部分,呵呵我的分析有2

1 DNF使用readProcessMemory来进行读取,所以触发不了硬件读断点

2 DNF使用一些深层API获取每次执行的时间差,来判断自身是否被HOOK

对于以上两个我做了实验如下,在两句不相干汇编的地方进行上下位置变换比如

0x12345678 mov eax,0

0x1234567d mov ebx,0换成了

0x12345678 mov ebx,0

0x1234567d mov eax,0

结果一直没有出现小三,之后我又加上了跳转没有过滤任何内容包括状态寄存器,出现小三,经过我和一位大牛分析,可能原因是

通过对比代码段执行的时间来检测的,当然这是个可能,并没有深究下去,DNF要在WINDOWS这种非实时的操作系统下实现这部分

内容也是很不容易的

总结:过DNF检测其实难就难在VM上了,反调试很容易搞定,尤其是内核中的几个VM,做一个简单的映射镜像就处理过了,而R3里的检测因为大部分

都是VM所以不好分析,可以通过追踪EIP把所有执行路径打印出来详细分析具体流程,DNF的VM镜像一般都是两层,当然大部分都是没有VM过的,分

析VM是个很头疼的事情通常打印几十M的代码内容到记事本,所以与其找到VM的代码不如找没有VM的做一些HOOK,这样反而省事不少呢

DNF检测原理分析篇相关推荐

  1. 【SemiDrive源码分析】【MailBox核间通信】44 - 基于Mailbox IPCC RPC 实现核间通信(RTOS侧 IPCC_RPC Server 消息接收及回复 原理分析篇)

    [SemiDrive源码分析][MailBox核间通信]44 - 基于Mailbox IPCC RPC 实现核间通信(RTOS侧 IPCC_RPC Server 消息接收及回复 原理分析篇) 一.RT ...

  2. OpenCV——角点检测原理分析(Harris,Shi-Tomasi、亚像素级角点检测)

    一.角点(corner) 角点通常被定义为两条边的交点,或者说,角点的局部邻域应该具有两个不同区域的不同方向的边界.角点检测(Corner Detection)是计算机视觉系统中获取图像特征的一种方法 ...

  3. xposed检测原理分析 -案例某付宝、某音

    一. 1.支付宝的Xposed hook 检测原理: Xposed Hook 框架将Hook信息存储在fieldCache, methodCache,constructorCache 中, 利用jav ...

  4. php采集分析,PHP采集程序原理分析篇

    由于需要,要写一个简单的PHP采集程序,照例是到网上找了一堆教程,然后照猫画虎,可是发现网上的教程全是似是而非,没有一个真正能用的.苦想了几天,终于弄明白了里面的道理.在这里写出来,请高手指正. 采集 ...

  5. PHP采集程序原理分析篇

    由于需要,要写一个简单的PHP采集程序,照例是到网上找了一堆教程,然后照猫画虎,可是发现网上的教程全是似是而非,没有一个真正能用的.苦想了几天,终于弄明白了里面的道理.在这里写出来,请高手指正. 采集 ...

  6. 【Audio音频兴趣拓展】耳机类型检测原理

    =耳机类型检测原理分析= 手机的耳机常见的3芯音频插头立体声耳机或带有麦克风的单声道耳机,带有麦克风的立体声耳机. ==利用比较器检测== 可以用比较器区分出立体声和单声道+麦克风耳机.电路设计依据为 ...

  7. 一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)

    更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,共同探讨软件知识经验,关注就有海量学习资料免费领哦: 目录 0背景 1.手机USB接口通信特点 1.1 使用方便 1.2 通用性强 1.3 ...

  8. 一篇读懂无线充电技术(附方案选型及原理分析)

    更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,一起学习探讨软硬件技术知识经验,关注就有海量学习资料免费领哦: 目录 一篇读懂无线充电技术(附方案选型及原理分析) 0.背景 1.无线供电特 ...

  9. 第14篇:Struts2框架下Log4j2漏洞检测方法分析与总结

     Part1 前言  Log4j2漏洞出现有大半年的时间了,这个核弹级别的漏洞危害很大,但是这个漏洞检测起来却很麻烦,因为黑盒测试无法预判网站哪个应用功能在后台调用了log4j2记录日志功能.目前通用 ...

  10. 原理剖析(第 009 篇)ReentrantReadWriteLock工作原理分析

    2019独角兽企业重金招聘Python工程师标准>>> 原理剖析(第 009 篇)ReentrantReadWriteLock工作原理分析 一.大致介绍 1.在前面章节了解了AQS和 ...

最新文章

  1. 回文数:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
  2. jQuery判断当前元素显示状态并控制元素的显示与隐藏
  3. Hough变换的方法检测直线段,效果良好
  4. Redis大乱探------哨兵(二)
  5. 数据库优化:SqlServer的with(nolock)关键字的用法介绍
  6. 开源Dapper的Lambda扩展-Sikiro.Dapper.Extension V2.0
  7. Sphinx编译docs文档
  8. mysql数据库容量和性能_新品速递丨容量盘性能提升超 300%,数据库支持 MySQL 8.0...
  9. [No000089]String的(补空位)左对齐,(补空位)右对齐
  10. 【求助】如何从 Spark 的 DataFrame 中取出具体某一行?我自己的一些思考
  11. oracle exists替换,oracle 优化or 替换为in、exists、union all的几种写法,测试没有问题!...
  12. matleb2016A安装教程
  13. linux shell 编程之变量总结
  14. freecodecamp小练习——Falsy Bouncer过滤数组假值
  15. ThinkPHP3.1.3 { Fast Simple OOP PHP Framework } — [ WE CAN DO IT JUST THINK ] 报错解决办法。...
  16. 好用的Mac免费视频后期软件推荐
  17. Android数据持久化存储(一)
  18. java 生成根据图片内容生成图片包含格式有【png jepg GIF tiff wbmp】
  19. 十大宽带共享组建网络方式推荐
  20. Gateway--概述

热门文章

  1. (转载)反垃圾邮件技术解析
  2. 滴滴估值630亿美元开启新一轮融资,2021年前上市;索信达新三板退市后二次“流血”冲击香港IPO;蜻蜓FM COO肖轶离职...
  3. mstar的android方案,Mstar Android 方案.pdf
  4. c语言 char * 遍历,使用指针遍历char数组
  5. android快速复制粘贴,Android开发复制和粘贴
  6. 生物光子学 19节 加州大学戴维斯分校
  7. 如何区分项目组合管理,项目集管理,和项目管理
  8. Gmail终于对中文用户开放注册! update:2008.5.6
  9. vue3 loadsh 防抖功能
  10. [OpenAirInterface实战-17] :OAI 软件无线电USRP N300/N310硬件详解