首页
社区
课程
招聘
[求助]读取另一线程的TEB的问题
2007-8-5 19:58 9675

[求助]读取另一线程的TEB的问题

2007-8-5 19:58
9675
本人现在需要在用户态读取另一个线程的TEB,
请问有什么办法每?

阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
炉子 3 2007-8-6 09:45
2
0
TEB信息是在0x7FFxxxxx的,所以有了地址就可以用ZwReadVirtualMemory读,获取TEB地址方法如下:
ZwQueryInformationThread的0号调用(ThreadBasicInformation),返回类型为_THREAD_BASIC_INFORMATION,定义如下:

typedef struct _THREAD_BASIC_INFORMATION {
    NTSTATUS ExitStatus;
    PTEB TebBaseAddress;
    CLIENT_ID ClientId;
    ULONG_PTR AffinityMask;
    KPRIORITY Priority;
    LONG BasePriority;
} THREAD_BASIC_INFORMATION;

其中的TebBaseAddress就是TEB地址
ZwQueryInformationThread的ThreadHandle就是hThread了

函数原型等:

NTSYSCALLAPI
NTSTATUS
NTAPI
NtQueryInformationThread (
    __in HANDLE ThreadHandle,
    __in THREADINFOCLASS ThreadInformationClass,
    __out_bcount(ThreadInformationLength) PVOID ThreadInformation,
    __in ULONG ThreadInformationLength,
    __out_opt PULONG ReturnLength
    );
typedef enum _THREADINFOCLASS {
    ThreadBasicInformation,
    ThreadTimes,
    ThreadPriority,
    ThreadBasePriority,
    ThreadAffinityMask,
    ThreadImpersonationToken,
    ThreadDescriptorTableEntry,
    ThreadEnableAlignmentFaultFixup,
    ThreadEventPair_Reusable,
    ThreadQuerySetWin32StartAddress,
    ThreadZeroTlsCell,
    ThreadPerformanceCount,
    ThreadAmILastThread,
    ThreadIdealProcessor,
    ThreadPriorityBoost,
    ThreadSetTlsArrayAddress,
    ThreadIsIoPending,
    ThreadHideFromDebugger,
    ThreadBreakOnTermination,
    ThreadSwitchLegacyState,
    ThreadIsTerminated,
    MaxThreadInfoClass
    } THREADINFOCLASS;
PVOID ThreadInformation是指向返回数据缓冲区的指针。

给的都是nativeApi,如果要用win32api可以用ReadProcessMemory,至于ZwQueryInfoThread的话,偶也不知道什么win32api可以搞定~  nativeAPI用多了 -。-
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
炉子 3 2007-8-6 09:46
3
0
ZwReadVirtualMemory & ZwQueryInformationThread位于ntdll.dll
雪    币: 242
活跃值: (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
whtyy 1 2007-8-6 15:11
4
0
谢谢炉子兄弟了,
我忘了还有NtQueryInformationThread存在哈。
游客
登录 | 注册 方可回帖
返回