首页 > 其他分享 >【免杀逃逸】Anti-Debugging反调试

【免杀逃逸】Anti-Debugging反调试

时间:2024-12-09 12:43:06浏览次数:6  
标签:Debugging return 免杀 调试器 Anti hack include present debugger

一、调试器检测

1.1 IsDebuggerPresent

使用IsDebuggerPresent函数检测PEB的BeingDebugged标志位

BOOL IsDebuggerPresent();

代码

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

// Function to check if a debugger is present
bool IsDebuggerPresentCheck() {
  return IsDebuggerPresent() == TRUE;
}

// Function that simulates the main functionality
void hack() {
  MessageBox(NULL, "Meow!", "=^..^=", MB_OK);
}

int main() {
  // Check if a debugger is present
  if (IsDebuggerPresentCheck()) {
    MessageBox(NULL, "Debugger detected!", "=^..^=", MB_OK);
    return 1;  // exit if a debugger is present
  }
  // Main functionality
  hack();
  return 0;
}

编译

x86_64-w64-mingw32-g++ -O2 hack.c -o hack.exe -I/usr/share/mingw-w64/include/ -s -ffunction-sections -fdata-sections -Wno-write-strings -fno-exceptions -fmerge-all-constants -static-libstdc++ -static-libgcc -fpermissive

windows10上用用x64dbg打开,检测到调试器

1.2 CheckRemoteDebuggerPresent

还有一个函数可以监测调试器附加进程

CheckRemoteDebuggerPresent()

代码

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

// Function to check if a debugger is present
bool DebuggerCheck() {
  BOOL result;
  CheckRemoteDebuggerPresent(GetCurrentProcess(), &result);
  return result;
}

// Function that simulates the main functionality
void hack() {
  MessageBox(NULL, "Meow!", "=^..^=", MB_OK);
}

int main() {
  // Check if a debugger is present
  if (DebuggerCheck()) {
    MessageBox(NULL, "Bow-wow!", "=^..^=", MB_OK);
    return 1;  // exit if a debugger is present
  }
  // Main functionality
  hack();
  return 0;
}

编译

x86_64-w64-mingw32-g++ -O2 hack2.c -o hack2.exe -I/usr/share/mingw-w64/include/ -s -ffunction-sections -fdata-sections -Wno-write-strings -fno-exceptions -fmerge-all-constants -static-libstdc++ -static-libgcc -fpermissive

windows10上使用x64dbg打开,检测出调试器

标签:Debugging,return,免杀,调试器,Anti,hack,include,present,debugger
From: https://www.cnblogs.com/o-O-oO/p/18594635

相关文章

  • 8-bit Optimizers via Block-wise Quantization
    目录概8-bitOptimizersDettmersT.,LewisM.,ShleiferS.andZettlemoyerL.8-bitoptimizersviablock-wisequantization.ICLR,2022.概本文提出了一种8-bit的优化器,其主要贡献算是block-wise的量化(从我的角度看一点也不novel)?8-bitOptimizers对于......
  • [论文阅读] Vector-quantized Image Modeling with Improved VQGAN
    Pretitle:Vector-quantizedImageModelingwithImprovedVQGANaccepted:ICLR2022paper:https://arxiv.org/abs/2110.04627code:https://github.com/thuanz123/enhancing-transformers(unofficial)ref:https://zhuanlan.zhihu.com/p/611689477关键词:quantization,......
  • Quantization
    目录引线性量化(LinearQuantization)对称量化非对称量化非线性量化Power-of-XRoundingDeterministicroundingStochasticrounding[1]进击的程序猿-模型压缩-神经网络量化基础.[2]Przewlocka-RusD.,SarwarS.S.,SumbulH.E.,LiY.andDeSalvoB.Power-of-twoqu......
  • pydantic ai集成ollama简单试用
    就是一个示例学习,体验下pydanticai,llm基于了ollama参考代码app.py一个集成ollama的测试importasynciofromopenaiimportAsyncOpenAIfrompydanticimportBaseModel,Fieldfrompydantic_aiimportAgent,RunContextfrompydantic_ai.models.openaiimportOpenAI......
  • 免杀之汇编基础
    进制二进制八进制十六进制六十进制转换二进制和十六进制的转换数据宽度位、字节、字是计算机数据存储的单位。位是最小的存储单位,每一个位存储一个1位的二进制码,一个字节由8位组成。而字通常为16、32或64个位组成位(Bit):定义:位是计算机中最小的存储单位,表示二进......
  • pydantic ai agent 框架
    pydantic团队也开始搞aiagent框架了,目前属于beta版使用pydanticai的一些原因(来自官方介绍)来自pydantic团队,不少llmpythonsdk都使用了此包模型无关,尽管当前支持的还有限,但是提供了简单接口可以扩展类型安全支持基于普通python代码的控制流以及agent组合,和以前开发......
  • AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration
    目录概AWQ代码LinJ.,TangJ.,TangH.,YangS.,ChenW.,WangW.,XiaoG.,DangX.,GanC.andHanS.AWQ:Activation-awareweightquantizationforllmcompressionandacceleration.MLSys,2024.概随着模型的参数量的增加,推理成本也在显著增加,本文提出一种......
  • 【kali笔记】MSF内网渗透,手把手教你如何免杀过360!
    ~勤奋刻苦,成就未来~1、TCP与UDP区别总结?TCP面向连接(如打电话要先拨号建立连接)提供可靠的服务;UDP是无连接的,即发送数据之前不需要建立连接,;UDP尽最大努力交付,即不保证可靠交付。(由于UDP无需建立连接,因此UDP不会引入建立连接的时延,TCP需要在端系统中维护连接状态,比如接受......
  • 最新CobaltStrike4.9.1中文版/汉化版下载+免杀生成过360杀毒、微步沙箱等
    工具介绍  CS是CobaltStrike的简称,是一款渗透测试神器,常被业界人称为CS神器。CobaltStrike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。  CobaltStrike集成了端口转发、扫描多模式端口Liste......
  • 十一、Kubernetes调度-亲和力与反亲和力-Affinity-AntiAffinity
    亲和力Affinity存在的问题:某些Pod优先选择有ssd=true标签的节点,如果没有在考虑部署到其它节点,如其他没有标签,会pending;某些Pod需要部署在ssd=true和type=physical的节点上,但是优先部署在ssd=true的节点上;会有优先级;同一个应用的Pod不同的副本或者同一个项目的应用尽......