// TLS_CallBack_test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <winnt.h>
//下面这行告诉链接器在PE文件中要创建TLS目录
#pragma comment(linker, "/INCLUDE:__tls_used")
/*这是PIMAGE_TLS_CALLBACK()函数的原型,其中第一个和第三个参数保留,第二个参数决定函数在那种情况下*/
void NTAPI my_tls_callback(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,L"hi,this is tls callback",L"title",MB_OK);
}
return;
}
/*下面这段是创建一个tls段
".CRT$XLB"的含义是:
.CRT表明是使用C RunTime机制
$后面的XLB中
X表示随机的标识
L表示是TLS callback section
B可以被换成B到Y的任意一个字母,但是不能使用".CRT$XLA"和".CRT$XLZ"
因为".CRT$XLA"和".CRT$XLZ"是用于tlssup.obj的
*/
#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函数
*/
PIMAGE_TLS_CALLBACK p_thread_callback = my_tls_callback;
#pragma data_seg()
int main(void)
{
MessageBox(NULL,L"hi,this is main()",L"title",MB_OK);
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
TLS_CallBack_test.rar_PE TLS_TLS_TLS PE_pe_pe文件
共8个文件
cpp:2个
txt:1个
suo:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 48 浏览量
2022-09-14
15:08:49
上传
评论
收藏 6KB RAR 举报
温馨提示
PE文件TLS表演示程序。在文件运行前先执行一个函数。
资源推荐
资源详情
资源评论
收起资源包目录
TLS_CallBack_test.rar (8个子文件)
www.pudn.com.txt 218B
TLS_CallBack_test
TLS_CallBack_test.suo 8KB
TLS_CallBack_test
stdafx.cpp 304B
TLS_CallBack_test.vcproj.XAC-E48F8D117FB.xac.user 1KB
stdafx.h 376B
TLS_CallBack_test.vcproj 4KB
TLS_CallBack_test.cpp 1KB
TLS_CallBack_test.sln 916B
共 8 条
- 1
资源评论
寒泊
- 粉丝: 74
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功