首页
社区
课程
招聘
[求助]PEB_LDR_DATA
发表于: 2014-3-27 21:12 3610

[求助]PEB_LDR_DATA

2014-3-27 21:12
3610
typedef struct _PEB_LDR_DATA
{
ULONG Length;
BOOLEAN Initialized;
HANDLE SsHandle;
LIST_ENTRY InLoadOrderModuleList;
LIST_ENTRY InMemoryOrderModuleList;
LIST_ENTRY InInitializationOrderModuleList;
PVOID EntryInProgress;
} PEB_LDR_DATA, *PPEB_LDR_DATA;

LIST_ENTRY InLoadOrderModuleList;
LIST_ENTRY InMemoryOrderModuleList;
LIST_ENTRY InInitializationOrderModuleList;
到底什么区别呢?(除了区别在于加载顺序、内存顺序、初始化顺序)

typedef struct _LDR_MODULE
{
LIST_ENTRY InLoadOrderModuleList;
LIST_ENTRY InMemoryOrderModuleList;
LIST_ENTRY InInitializationOrderModuleList;
PVOID BaseAddress;
PVOID EntryPoint;
ULONG SizeOfImage;
UNICODE_STRING FullDllName;
UNICODE_STRING BaseDllName;
ULONG Flags;
SHORT LoadCount;
SHORT TlsIndex;
LIST_ENTRY HashTableEntry;
ULONG TimeDateStamp;
  
} LDR_MODULE, *PLDR_MODULE;

因为我hook了以下函数
MyNtCreateThreadEx(
           OUT PHANDLE ThreadHandle,
           IN ACCESS_MASK DesiredAccess,
           IN PVOID ObjectAttributes OPTIONAL,
           IN HANDLE ProcessHandle,
           IN PVOID lpStartAddress,//这个!!!
           IN PVOID StartContext,//StartContext
           IN BOOL CreateSuspended,
           IN ULONG StackZeroBits,
           IN SIZE_T SizeOfStackCommit,
           IN SIZE_T SizeOfStackReserve,
           OUT PVOID lpBytesBuffer)
{
}
一个线程的lpStartAddress,要去找它属于ProcessHandle所在进程的哪个BaseAddress和(BaseAddress+SizeOfImage)之间
我该去遍历那三个链表中的哪一个链表呢?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
MyNtCreateThreadEx(
           OUT PHANDLE ThreadHandle,
           IN ACCESS_MASK DesiredAccess,
           IN PVOID ObjectAttributes OPTIONAL,
           IN HANDLE ProcessHandle,//该线程属于此ProcessHandle
           IN PVOID lpStartAddress,//这个!!!
           IN PVOID StartContext,//StartContext
           IN BOOL CreateSuspended,
           IN ULONG StackZeroBits,
           IN SIZE_T SizeOfStackCommit,
           IN SIZE_T SizeOfStackReserve,
           OUT PVOID lpBytesBuffer)
{
}
2014-3-27 21:14
0
雪    币: 544
活跃值: (264)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
3
三个链表都可以遍历到进程所有的DLL(故意断链的就算了。。)
2014-3-29 14:06
0
游客
登录 | 注册 方可回帖
返回
//