阅读:1593回复:9
FS:0x124指向一个什么样的数据结构?????
lu0老大及各位高手,能否告诉我,在内核模式,FS:0x124指向一个什么样的数据结构?????
|
|
沙发#
发布于:2003-02-13 23:32
fs[:0x124] is current ETHREAD on NT4
|
|
板凳#
发布于:2003-02-14 16:48
能给它的结构定义吗???
谢谢!! |
|
地板#
发布于:2003-02-15 01:10
typedef struct _ETHREAD {
KTHREAD Tcb; LARGE_INTEGER CreateTime; LARGE_INTEGER ExitTime; // or LIST_ENTRY LpcReplyChain NTSTATUS ExitStatus; // or PVOID OfsChain LIST_ENTRY PostBlockList; LIST_ENTRY TerminationPortList; KSPIN_LOCK ActiveTimerListLock; LIST_ENTRY ActiveTimerListHead; CLIENT_ID Cid; KSEMAPHORE LpcReplySemaphore; PLPC_MESSAGE LpcReplyMessage; ULONG LpcReplyMessageId; ULONG PerformanceCountLow; PPS_IMPERSONATION_INFO ImpersonationInfo; LIST_ENTRY IrpList; PVOID TopLevelIrp; PDEVICE_OBJECT DeviceToVerify; ULONG ReadClusterSize; BOOLEAN ForwardClusterOnly; BOOLEAN DisablePageFaultClustering; BOOLEAN DeadThread; #if (_WIN32_WINNT >= 0x0500) BOOLEAN HideFromDebugger; #endif // (_WIN32_WINNT >= 0x0500) #if (_WIN32_WINNT < 0x0500) BOOLEAN HasTerminated; #else // (_WIN32_WINNT >= 0x0500) ULONG HasTerminated; #endif // (_WIN32_WINNT >= 0x0500) #if (_WIN32_WINNT < 0x0500) PKEVENT_PAIR EventPair; #endif // (_WIN32_WINNT < 0x0500) ACCESS_MASK GrantedAccess; PEPROCESS ThreadsProcess; PKSTART_ROUTINE StartAddress; PVOID Win32StartAddress; // or ULONG LpcReceivedMessageId BOOLEAN LpcExitThreadCalled; BOOLEAN HardErrorsAreDisabled; BOOLEAN LpcReceivedMsgIdValid; BOOLEAN ActiveImpersonationInfo; ULONG PerformanceCountHigh; #if (_WIN32_WINNT >= 0x0500) LIST_ENTRY ThreadListEntry; #endif // (_WIN32_WINNT >= 0x0500) } ETHREAD, *PETHREAD; [编辑 - 2/15/03 by KMK] |
|
地下室#
发布于:2003-02-15 14:54
KMK兄,谢谢你了!
我还很穷,分数余下不多了,我只好以一片感激来谢谢你了--再次谢谢你了! 不过我找遍了DDK中的H文件都没找到它定义,只知道DDK中有很多使用这个结构,请问KMK兄它到底在哪定义的? 还有象以下 typedef struct _KTHREAD *PKTHREAD; typedef struct _ETHREAD *PETHREAD; typedef struct _EPROCESS *PEPROCESS; typedef struct _PEB *PPEB; 中的_KTHREAD、_EPROCESS、_PEB这些结构双在哪定义?它们在W2K中又在FS段的那个单元????? KMK兄,希望你能告诉我,不要因为没得到分还不不理我了,我知道你现在线!!!!! [编辑 - 2/15/03 by lzwf4] |
|
5楼#
发布于:2003-02-15 15:40
继续努力,革命未成功呢,我想是否可以通过sice得到这个结构呢?
typedef struct _KTHREAD { DISPATCHER_HEADER Header; // DO_TYPE_THREAD (0x6C) LIST_ENTRY le010; DWORD d018; DWORD d01C; struct _TEB *pTeb; DWORD d024; DWORD d028; BYTE b02C; BYTE bThreadState; // THREAD_STATE_* WORD w02E; WORD w030; BYTE b032; BYTE bPriority; LIST_ENTRY le034; LIST_ENTRY le03C; PKPROCESS pProcess; DWORD d048; DWORD dContextSwitches; DWORD d050; WORD w054; BYTE b056; BYTE bWaitReason; DWORD d058; PLIST_ENTRY ple05C; PLIST_ENTRY ple060; DWORD d064; BYTE bBasePriority; BYTE b069; WORD w06A; DWORD d06C; DWORD d070; DWORD d074; DWORD d078; DWORD d07C; DWORD d080; DWORD d084; DWORD d088; DWORD d08C; DWORD d090; DWORD d094; DWORD d098; DWORD d09C; DWORD d0A0; DWORD d0A4; DWORD d0A8; DWORD d0AC; DWORD d0B0; DWORD d0B4; DWORD d0B8; DWORD d0BC; DWORD d0C0; DWORD d0C4; DWORD d0C8; DWORD d0CC; DWORD d0D0; DWORD d0D4; DWORD d0D8; PSERVICE_DESCRIPTOR_TABLE pServiceDescriptorTable; DWORD d0E0; DWORD d0E4; DWORD d0E8; DWORD d0EC; LIST_ENTRY le0F0; DWORD d0F8; DWORD d0FC; DWORD d100; DWORD d104; DWORD d108; DWORD d10C; DWORD d110; DWORD d114; DWORD d118; BYTE b11C; BYTE b11D; WORD w11E; DWORD d120; DWORD d124; DWORD d128; DWORD d12C; DWORD d130; WORD w134; BYTE b136; KPROCESSOR_MODE ProcessorMode; DWORD dKernelTime; // ticks DWORD dUserTime; // ticks DWORD d140; DWORD d144; DWORD d148; DWORD d14C; DWORD d150; DWORD d154; DWORD d158; DWORD d15C; DWORD d160; DWORD d164; DWORD d168; DWORD d16C; DWORD d170; PROC SuspendNop; DWORD d178; DWORD d17C; DWORD d180; DWORD d184; DWORD d188; DWORD d18C; KSEMAPHORE SuspendSemaphore; LIST_ENTRY ThreadList; // KPROCESS.ThreadListHead DWORD d1AC; } KTHREAD, * PKTHREAD, **PPKTHREAD; [编辑 - 2/15/03 by ooze] [编辑 - 2/15/03 by ooze] |
|
|
6楼#
发布于:2003-02-16 13:10
ETHREAD 我是在网上找的 !!
真它都可在 Inside Windows NT (David Solomon)的 |
|
7楼#
发布于:2003-02-16 14:11
怎么我的sice不显示了?
记得以前用的时候都可以显示结构来呢 |
|
|
8楼#
发布于:2003-02-16 14:35
谢谢各位大侠的指点!
不过我有一个问题:DDK没有定义这些结构,那为什么我们的源程序中使用这些结构时又能编译还没有错误呢??? |
|
9楼#
发布于:2003-02-17 13:10
怎么用“在WinDbg和i386kd用\"!\"指令”和SICE的\"!\"指令?
|
|