TLS是线程本地存储,定义TLS函数,在函数内可以调用内核函数 NtQueryInformationProcess 检查当前是否处于被调试状态,也可以调用 NtSetInformationThread 让调试崩溃。

// TLS反调试.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <stdio.h>
#include <Windows.h>
// MINT 是github上的一个项目,里面有对内核函数的声明
// https://github.com/Chuyu-Team/MINT
#include "MINT.h"#pragma comment(linker,"/INCLUDE:__tls_used")DWORD isDebug = 0;
void NTAPI TLS_CALLBACK(PVOID DllHandle, DWORD Reason, PVOID Reserved)
{if (Reason == DLL_PROCESS_ATTACH){//MessageBoxA(0, "TLS函数执行", 0, 0);//NtSetInformationThread(GetCurrentThread(), ThreadHideFromDebugger, 0, 0); // 禁止调试NtQueryInformationProcess(GetCurrentProcess(), ProcessDebugPort, (PVOID)&isDebug, sizeof(DWORD), NULL); // 检查是否被调试}
}int main()
{if (isDebug){printf("正在被调试\n");}else{printf("没有被调试\n");}return 0;
}#pragma data_seg(".CRT$XLX")
PIMAGE_TLS_CALLBACK pTLS_CALLBACKs[] = { TLS_CALLBACK,NULL };
#pragma data_seg()

TLS调试检测和反调试相关推荐

  1. iOS应用调试检测以及反调试

    一.检测调试 当一个应用被调试的时候,会给进程设置一个标识(P_TRACED),我们可以通过检测该进程是否有设置这个标识来检测进程是否正在被调试以保护好我们的应用. 为了让这个函数以inline方式编 ...

  2. iOS安全防护---越狱检测、二次打包检测、反调试

    最近在调研越狱设备的检测.防止APP被二次打包.防止反调试以及逆向工程,调研期间做了大量的测试来验证方案的可行性,花费了很多时间.所以,在此将调研结果总结一下,供大家参考. 一.越狱环境下,提高App ...

  3. 安卓逆向_20 --- 模拟器检测、反调试检测、ELF动态调试、__libc_init 下断

    From( 模拟器检测实战分析 ):https://www.bilibili.com/video/BV1UE411A7rW?p=65 怎样过 app 的模拟器检测:https://bbs.pediy. ...

  4. Crimsonland 血腥大地 逆向无敌通关分析报告【配置文件加密】【Dll隐藏MD5检测补丁反调试函数】【反反调试】...

    一.工具及游戏介绍 使用工具:Ollydbg,PEID,Beyond Compare,Cheat Engine 实现功能:无敌,全部通关. Crimsonland 血腥大地 二.实现无敌: 使用CE查 ...

  5. android+反调试+方案,Android反调试笔记

    1)代码执行时间检测 通过取系统时间,检测关键代码执行耗时,检测单步调试,类似函数有:time,gettimeofday,clock_gettime. 也可以直接使用汇编指令RDTSC读取,但测试AR ...

  6. linux反调试代码,linux反调试方法

    如何防止自己的程序被调试器跟踪,这是一个很有趣的话题,也是反逆向工程中的一个重要话题.这里简单介绍一下Linux平台上的反调试技术. (本文主要参考:http://blog.txipinet.com/ ...

  7. oracle反调试,突破前端反调试--阻止页面不断debugger

    问题复现 一次扒某网站的前端代码,打开控制台要看Network,结果发现他们页面一打开控制台就不断的debugger,100ms一次,很影响看页面内容.就像下面这样的 问题分析 每次在断点处停下来的时 ...

  8. 18. OD-反调试研究,破解反调试,编写反调试

    病毒.木马.外挂等必须要有的 "安全工作" 因为你一个安全软件一旦被成功调试了,就等同于被调戏了,一切主要操作顺序都被人掌握了,只要开发出逆向的突破即可. 我们要研究他们这些安全软 ...

  9. Android逆向案例:干掉梆梆加固免费版的反调试检测

    目标和现象 分析目标:某行网银手机客户端 分析壳类型: 使用[d2j-dex2jar]反编译后发现关键代码缺失,因为 AndroidManifest.xml 中的绝大部分activity和server ...

最新文章

  1. 养猪砸下50亿美金-丰收节贸易会:俄罗斯最大农业巨头青岛
  2. 现实世界中的Windows Azure:ADMIXER特别版、Autocosmos.com、IT WORKS和News360!
  3. c# winform 程序打包部署
  4. matlab仿真习题,(MATlab仿真部分习题答案.doc
  5. 2019运管取消了滴滴还查吗_劳务资质2019年取消吗?劳务资质新标准你真的了解吗?...
  6. python3安装scrapy及使用方法(爬虫框架)
  7. 9 SystemVerilog语言编写SPI接收
  8. 一种基于折射反向学习机制与自适应控制因子的改进樽海鞘群算法
  9. 读《三体》差点污了我的三观
  10. html微信悬浮窗,微信悬浮窗怎么设置(微信浮窗设置的两个小技巧)
  11. 怎么让python一直执行_怎么才能让Python多进程不间断执行任务
  12. java高校图书馆管理网站计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  13. 设备故障率高的四大原因及对策分析
  14. 精通Java并发——张龙
  15. 翼城中学2021高考成绩查询入口,山西省临汾市翼城中学2020-2021学年高一下学期期中考试物理试题 Word版含答案(11页)-原创力文档...
  16. 微信小程序--超简单贪吃蛇
  17. Genesis公链确定亮相Consensus 2022大会
  18. [内存管理]linux X86_64处理器的内存布局图(转自:http://blog.csdn.net/younger_china/article/details/16829687)
  19. 一分钟:XM文件格式转换MP3
  20. DataGridXL快速JavaScript Excel类数据表

热门文章

  1. Oracle数据库asm原理,Oracle数据库中ASM功能解剖
  2. ckeditor5加字数_CKEditor5基本使用
  3. DL之DNN:自定义MultiLayerNet【6*100+ReLU,SGD】对MNIST数据集训练进而比较【多个超参数组合最优化】性能
  4. DL之ANN/DNN: 人工神经网络ANN/DNN深度神经网络算法的简介、应用、经典案例之详细攻略
  5. eclipse打可运行的jar
  6. CentOs下搭建GitLab
  7. 如何用windbg查看_eprocess结构
  8. swift学习笔记-UI篇之UIImageView
  9. PyQt4布局管理——绝对定位方式
  10. 周报_2012第51周(2012/12/16-2012/12/22)