TLS中检测断点反调试
来源:互联网 发布:淘宝精品推荐女鞋 编辑:程序博客网 时间:2024/04/30 17:57
TLS
原理:通过检测程序入口点处的200字节内是否有下的cc断点,如果有,刚程序退出
// TLS_test.cpp : Defines the entry point for the application.//#include "stdafx.h"#include "TLS_test.h"#include <windows.h>#include <winnt.h>#pragma comment(linker, "/INCLUDE:__tls_used")/*这是PIMAGE_TLS_CALLBACK()函数的原型,其中第一个和第三个参数保留,第二个参数决定函数在那种情况下*/void NTAPI my_tls_callback1(PVOID h, DWORD reason, PVOID pv){/*一共有四个选项DLL_PROCESS_ATTACH、DLL_THREAD_ATTACH、DLL_THREAD_DETACH和DLL_PROCESS_DETACH。详见微软发布的《Microsoft Portable Executable and Common Object File Format Specification v8》*///仅在进程初始化创建主线程时执行的代码if( reason == DLL_PROCESS_ATTACH ){MessageBox(NULL,"hi,this is tls callback","title",MB_OK);}return;}#pragma data_seg(".CRT$XLB")/*如果要定义多个TLS_CallBack函数,可以把下面这句写成:PIMAGE_TLS_CALLBACK p_thread_callback [] = {tls_callback_A, tls_callback_B, tls_callback_C,0};其中tls_callback_B和tls_callback_C应该是你定义好的其他TLS_callBack函数*/extern "C" PIMAGE_TLS_CALLBACK my_tls_callbacktbl[] = {TlsCallBackFunction1, 0};#pragma data_seg()int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ MessageBox(NULL, TEXT("the main function:hello world"), TEXT("Tls test"), MB_OK);return 0;}void NTAPI TlsCallBackFunction1(PVOID h, DWORD reason, PVOID pv){/*一共有四个选项DLL_PROCESS_ATTACH、DLL_THREAD_ATTACH、DLL_THREAD_DETACH和DLL_PROCESS_DETACH。详见微软发布的《Microsoft Portable Executable and Common Object File Format Specification v8》*///仅在进程初始化创建主线程时执行的代码if( reason == DLL_PROCESS_ATTACH ){MessageBox(NULL,"It's my test","tls test",MB_OK);IMAGE_DOS_HEADER *dos_head=(IMAGE_DOS_HEADER *)GetModuleHandle(NULL);PIMAGE_NT_HEADERS32 nt_head=(PIMAGE_NT_HEADERS32)((DWORD)dos_head+(DWORD)dos_head->e_lfanew);BYTE*OEP=(BYTE*)(nt_head->OptionalHeader.AddressOfEntryPoint+(DWORD)dos_head);for(unsigned long index=0;index<200;index++){if(OEP[index]==0xcc){ExitProcess(0);}}}return;}
- TLS中检测断点反调试
- TLS及TLS反调试
- TLS线程本地存储进行反调试
- 反检测技术——反调试
- 反调试检测之一TracerPid
- VS2008中加断点调试,出现没有可用于当前的源代码,进入反汇编
- 一种基于TLS的高级反调试技术
- PE文件的TLS-反调试机制
- TLS (Thread Local Storage)反调试原理
- 一种基于TLS的高级反调试技术
- WIN10 X64下通过TLS实现反调试
- 反调试-通过手动添加TLS回调函数
- WIN10 X64下通过TLS实现反调试
- Xcode 断点调试 及 内存泄露检测
- TLS(线程局部存储)以及基于TLS技术的反调试技术
- Delphi反调试【初级】检测法
- VS中条件断点调试
- 调试TLS
- 软件行业的发展前景
- JMS TOPIC 代码备份
- 排序
- jquery实现网站导航动画滑动效果
- Map的使用
- TLS中检测断点反调试
- 数据库日期比对的效率提升
- js (this,call,apply)
- iOS开发——keychain的使用
- ajax请求问题。
- 在Linux下安装多个版本的gcc
- 苹果开发者账号申请教程
- js 下拉框二级联
- x264-snapshot-20121119-2245 arm-linux移植问题