Tls vs2017编译报错
本帖最后由 就是随便看看 于 2021-5-3 07:30 编辑#include "iostream"
#include "Windows.h"
#include "tchar.h"
#include "ntdll/ntdll.h"
//使用TLS
#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(NULL, "Tls函数执行1", NULL, NULL);
//不接受内核调试信息
//NtSetInformationThread(GetCurrentThread(),TreadHidePromDebugger,0,0);
//NtQueryInformationProcess()
}
}
void NTAPI TLS_CALLBACK2(PVOID DllHandle, DWORD Reason, PVOID Reserved)
{
if (Reason == DLL_PROCESS_ATTACH)
{
::MessageBoxA(NULL, "Tls函数执行2", NULL, NULL);
//不接受内核调试信息
//NtSetInformationThread(GetCurrentThread(),TreadHidePromDebugger,0,0);
//NtQueryInformationProcess()
}
}
int main()
{
MessageBoxA(NULL, "Main函数执行", "提示", MB_OK);
system("pause");
//return 0;
}
//新建一段数据,放到TLS这个目录表里面函数指针数组
#pragma data_seg (".CRT$XLX")
PIMAGE_TLS_CALLBACK pTlsCallBacks[] = { TLS_CALLBACK,TLS_CALLBACK2 ,NULL };
#pragma data_seg()
提示找不到源文件"ntdll/ntdll.h"
#include "ntdll.h" 不行吗?本人小白,大佬勿笑{:1_929:} 小白来学习 发表于 2021-5-3 09:15
#include "ntdll.h" 不行吗?本人小白,大佬勿笑
试过了,不行 #include <ntdll.h>这样呢 ntdll不是vs自带的头文件,检查源码中是否存在ntdll.h这个头文件,没有的话删掉这个include也不影响用TLS的 苏紫方璇 发表于 2021-5-7 16:08
ntdll不是vs自带的头文件,检查源码中是否存在ntdll.h这个头文件,没有的话删掉这个include也不影响用TLS的
NtSetInformationThread 像这种API的调用,貌似需要ntdll.h,我自己从网上下载了ntdll.h放进头文件里面,编译还是报错,改成ntdll.h也不行。 就是随便看看 发表于 2021-5-7 16:32
NtSetInformationThread 像这种API的调用,貌似需要ntdll.h,我自己从网上下载了ntdll.h放进头文件里面, ...
是的这种的调用要用ntdll.h,实在不行也可以自己声明,用GetProcAddress获取调用 能帮我看一下我的破解问题吗 88TziyyT 发表于 2021-6-3 20:03
能帮我看一下我的破解问题吗
什么问题??我只是个小白 ntdll.h一般是用native api才会用的吧,记得之前好像在ddk里有这东西
光复制个ntdll.h肯定是不够的,还得把相应的.lib也添加进vs才可以
页:
[1]
2