就是随便看看 发表于 2021-5-3 07:29

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"

小白来学习 发表于 2021-5-3 09:15

#include "ntdll.h" 不行吗?本人小白,大佬勿笑{:1_929:}

就是随便看看 发表于 2021-5-4 08:38

小白来学习 发表于 2021-5-3 09:15
#include "ntdll.h" 不行吗?本人小白,大佬勿笑

试过了,不行

小白来学习 发表于 2021-5-6 09:32

#include <ntdll.h>这样呢

苏紫方璇 发表于 2021-5-7 16:08

ntdll不是vs自带的头文件,检查源码中是否存在ntdll.h这个头文件,没有的话删掉这个include也不影响用TLS的

就是随便看看 发表于 2021-5-7 16:32

苏紫方璇 发表于 2021-5-7 16:08
ntdll不是vs自带的头文件,检查源码中是否存在ntdll.h这个头文件,没有的话删掉这个include也不影响用TLS的

NtSetInformationThread 像这种API的调用,貌似需要ntdll.h,我自己从网上下载了ntdll.h放进头文件里面,编译还是报错,改成ntdll.h也不行。

苏紫方璇 发表于 2021-5-7 16:35

就是随便看看 发表于 2021-5-7 16:32
NtSetInformationThread 像这种API的调用,貌似需要ntdll.h,我自己从网上下载了ntdll.h放进头文件里面, ...

是的这种的调用要用ntdll.h,实在不行也可以自己声明,用GetProcAddress获取调用

88TziyyT 发表于 2021-6-3 20:03

能帮我看一下我的破解问题吗

就是随便看看 发表于 2021-6-3 21:25

88TziyyT 发表于 2021-6-3 20:03
能帮我看一下我的破解问题吗

什么问题??我只是个小白

olly2013 发表于 2021-6-4 11:46

ntdll.h一般是用native api才会用的吧,记得之前好像在ddk里有这东西
光复制个ntdll.h肯定是不够的,还得把相应的.lib也添加进vs才可以
页: [1] 2
查看完整版本: Tls vs2017编译报错