搜索PEB结构获取Kernel32.dll基址
2009-11-04 10:08
169 查看
TEB偏移0x30处,即FS:[0x30]地址处保存着一个指针,指向PEB,PEB结构的偏移0xC处保存着另外一个指针ldr,该指针执行PEB_LDR_DATA
该结构的后三个成员是指向LDR_MODULE链表结构中相应三条双向链表头的指针,分别是按照加载顺序、在内存中地址顺序和初始化顺序排列的模块信息结构的指针。
Peb->Ldr->InitializationOrderModuleList指向按照初始化顺序排序的第一个LDR_MODULE节点的InInitializationOrderModuleList成员的指针,在WinNT平台下,该链表头节点的LDR_MODULE结构包含的是NTDLL.DLL,而链表的下一个节点所包含的就是Kernel32.dll相关的信息。
汇编核心代码:
该结构的后三个成员是指向LDR_MODULE链表结构中相应三条双向链表头的指针,分别是按照加载顺序、在内存中地址顺序和初始化顺序排列的模块信息结构的指针。
Peb->Ldr->InitializationOrderModuleList指向按照初始化顺序排序的第一个LDR_MODULE节点的InInitializationOrderModuleList成员的指针,在WinNT平台下,该链表头节点的LDR_MODULE结构包含的是NTDLL.DLL,而链表的下一个节点所包含的就是Kernel32.dll相关的信息。
汇编核心代码:
MOV EAX, DWORD PTR FS:[30] ;获取PEB基址 MOV EAX, DWORD PTR DS:[EAX+C] ;获取PEB_LDR_DATA结构指针 MOV ESI, DWORD PTR DS:[EAX+1C] ;获取InInitializationOrderModuleList成员指针 LODS DWORD PTR DS:[ESI] ;获取双向链表当前节点的后继指针 MOV EBX, DWORD PTR DS:[EAX+8] ;取其基地址,该结构当前包含的是kernel32.dll
相关文章推荐
- 搜索PEB的相关结构获取Kernel32.DLL的基址
- 第2讲:搜索PEB结构获取kernel32.dll的基址暴力搜索内存空间获得 Api 的线性地址
- 搜索PEB结构获取Kernel32.dll基址
- PEB结构的获取
- 通过PEB->LDR_DATA结构获取模块基址
- 创建类对象并获取类的完整结构
- x64下获取SSDT表(暴力搜索方式)
- 获取一个目录下的文件结构
- Android studio 百度地图开发(8)地图已标记POI点和搜索POI点的获取和利用
- ORACLE表结构获取
- 通过PEB结构遍历进程模块
- js中百度地图API获取本地搜索全部结果自定义显示效果
- CACTI表结构和数据被动获取
- 获取对象类型信息+查看对象类型的结构+设置信息深度
- OpenCV中获取不同形状的结构元素getStructuringElement
- 48.结构体位域获取内存模型
- 用python通过apache log 获取百度搜索来源关键词
- Selenium获取页面中树形结构的值,并存储到Vector中
- C# 3.0 CookBook:三、类与结构(3):让类型支持搜索
- 【木头Cocos2d-x 029】Lua篇(第04章):来点高难度的,获取Lua表结构数据