当前位置: 首页 > news >正文

怎样做简易局域网站点/百度指数手机版

怎样做简易局域网站点,百度指数手机版,wordpress域名根目录,群晖wordpress外网无法访问静态反调试技术 反调试技术,恶意代码用它识别是否被调试,或者让调试器失效。恶意代码编写者意识到分析人员经常使用调试器来观察恶意代码的操作,因此他们使用反调试技术尽可能地延长恶意代码的分析时间。为了阻止调试器的分析,当恶…

静态反调试技术

反调试技术,恶意代码用它识别是否被调试,或者让调试器失效。恶意代码编写者意识到分析人员经常使用调试器来观察恶意代码的操作,因此他们使用反调试技术尽可能地延长恶意代码的分析时间。为了阻止调试器的分析,当恶意代码意识到自己被调试时,它们可能改变正常的执行路径或者修改自身程序让自己崩溃,从而增加调试时间和复杂度。很多种反调试技术可以达到反调试效果。这里介绍当前常用的几种反调试技术,同时也会介绍一些逃避反调试的技巧。

 

一.探测Windows调试器

恶意代码会使用多种技术探测调试器调试它的痕迹,其中包括使用Windows API、手动检测调试器人工痕迹的内存结构,查询调试器遗留在系统中的痕迹等。调试器探测是恶意代码最常用的反调试技术。

1.1      IsDebuggerPresent

IsDebuggerPresent 函数查询PEB结构中的IsDebugged标志位来查询进程是否处于被调试态,如果出去被调试状态,该标志位会为1,函数返回一个非0值。

return IsDebuggerPresent();

 

破解之法

可以修改PEB BeingDebugged 为0

1.2      CheckRemoteDebuggerPresent

CheckRemoteDebuggerPresent 和IsDebuggerPresent函数的工作原理相同,不过它可以检测系统中其他进程的情况。

 

1.3 NtQueryInformationProcess

这个NtDll函数中的原生态API 可以用来检索进程的相关信息。

1 NTSYSAPI NTSTATUS NTAPI NtQueryInformationProcess (
2     IN HANDLE         ProcessHandle,       // 进程句柄
3     IN PROCESSINFOCLASS   InformationClass,        // 信息类型
4     OUT PVOID         ProcessInformation,     // 缓冲指针
5     IN ULONG          ProcessInformationLength,  // 以字节为单位的缓冲大小
6     OUT PULONG         ReturnLength OPTIONAL      // 写入缓冲的字节数
7 );

第二个参数是一个枚举类型,其中与反调试有关的成员有ProcessDebugPort(0x7)、ProcessDebugObjectHandle(0x1E)和ProcessDebugFlags(0x1F)。例如将该参数置为ProcessDebugPort,如果进程正在被调试,则返回调试端口,否则返回0。

 

 

CheckRemoteDebuggerPresent 调用函数为NtQueryInformationProcess

解决办法

 

可以对API进程HOOK来处理

 

1.4 GetLastError

1.5NtQuerySystemInfomation()

可以调用次函数来检测OS是否处于调试状态

 

1.6NtQueryObject()

系统中某个调试器调试进程的时候,会创建一个调试对象类型的内核对象。检测该对象是否存在就可以判断是否有进程在被调试。

 

1.7 ZwSetInformationThread()

 

次函数使用来设置线程信息的,第二个参数ThreadInfomationClass表示线程信息,若其值设置为ThreadHideFromDebugger(0x11),调用该函数后,调试进程会被分离出来,不会对正常运行的进程产生影响。

 

1.8 TLS回调函数

 

1.9 可以检测PEB结构中的相关结构来实现反调试。

  

 

   BeingDebugged

     若当前进程处于被调试状态,此值为1,没有被调试为0

Ldr

  主要是因为此结构是处于堆上的内存,被调试进程中未使用的堆内存会被填充为0xFEEEFEEE的内容

破解之法

将此段内存填充为0即可,但此种方法在Win7及以上是不适用的。

 

ProcessHeap

进程正常运行时。Heap.Flags成员(0XC)的值为0x2,Heap.ForceFlags成员(0x10)的值为0x0,若处于被调试状态,这些值会随之改变。

破解之法

修改成正常值即可

 

NTGlobalFlag(0x68

进程被调试的时候,NTGlobalFlags成员的值会被设置为0x70

 参考《逆向工程核心原理》

转载于:https://www.cnblogs.com/banchen/p/6691392.html

http://www.jmfq.cn/news/5197033.html

相关文章:

  • 做网站客服的工作流程/bt磁力链好用的引擎
  • 做外贸建网站多少钱/上海空气中检测出病毒
  • 公司官网网站建设想法/网站生成
  • 网易企业邮箱价格/山东网站seo
  • 设计服务网络建设方案/优化网站排名
  • 西安企业网站建设/网站统计分析工具的主要功能
  • 怎么做原创电影视频网站/百度seo排名优化是什么
  • 北京网站开发公司电话/推广产品引流的最佳方法
  • 提供网站建设商家/推广优化厂商联系方式
  • 厦门市网站建设公司/seo优化推广流程
  • 岗顶做网站公司/南京百度关键字优化价格
  • 莱芜市网站建设设计/google chrome浏览器
  • 做婚礼网站的公司简介/销售网络平台
  • html表格菜鸟教程/seo管理软件
  • 宜昌网站seo收费/html友情链接代码
  • 长沙做个网站多少钱/网络广告策划书案例
  • 学网站制作多少钱/学计算机哪个培训机构好
  • 网站开发技术发展史/企业文化墙
  • 网站建设与维护心得体会/seo做的比较牛的公司
  • 给自己企业怎么做网站/产品宣传推广方式有哪些
  • 专业做包装设计网站/青岛推广优化
  • 朝阳网站设计/企业培训机构哪家最好
  • 做品牌网站哪个好用/房地产营销策略有哪些
  • 网站设计公司-信科网络/seo搜索引擎优化题库
  • 信用中国 网站 支持建设/学生网页制作成品
  • 51aspx源码/青岛谷歌优化公司
  • 企业网站外包/免费外网加速器
  • 做网站需要工商证吗/视频互联网推广选择隐迅推
  • 优质的南昌网站建设/免费推广自己的网站
  • 龙华app网站制作/制作网页模板