PEB中获取指定名称的DLL的基址
来源:互联网 发布:淘宝培训心得 编辑:程序博客网 时间:2024/09/21 09:20
//先从PEB中获取指定名称的DLL的基址
ULONG GetModuleHandleFromProcessPEB(ULONG Peb,char *szDllName)
{
PPEB_LDR_DATA pLdrData;
PLDR_DATA_TABLE_ENTRY pLdrDataEntry;
PLIST_ENTRY pListHead,pListNext;
ANSI_STRING ansiDllName;
ULONG DllBase=0;
__try
{
pLdrData=(PPEB_LDR_DATA)*(ULONG*)((char*)Peb+0xC);
pListHead=&(pLdrData->InLoadOrderModuleList);
pListNext=pListHead->Flink;
for (pListHead;pListNext!=pListHead;pListNext=pListNext->Flink)
{
pLdrDataEntry=(PLDR_DATA_TABLE_ENTRY)pListNext;
if (pLdrDataEntry->BaseDllName.Buffer)
{
RtlUnicodeStringToAnsiString(&ansiDllName,& (pLdrDataEntry->BaseDllName),TRUE);
//dprintf("Base=0x%08X %s\n",pLdrDataEntry->DllBase,ansiDllName.Buffer);
if (!_stricmp(szDllName,ansiDllName.Buffer))
{
DllBase=(ULONG)pLdrDataEntry->DllBase;
}
RtlFreeAnsiString(&ansiDllName);
//若找到就退出循环
if (DllBase) break;
}//end of if
}
return DllBase;
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
DbgPrint("Error occured while searching module in PEB.\n");
return 0;
}
}
- PEB中获取指定名称的DLL的基址
- 搜索PEB的相关结构获取Kernel32.DLL的基址
- 搜索PEB结构获取Kernel32.dll基址
- ring0获取指定进程的PEB
- 动态获取kernel32.dll的基址
- 通过PEB获取模块基址
- 获取指定名称DLL
- PEB结构的获取
- Javascript中获取指定名称的cookie
- 获取进程的基址
- 获取ntoskrnl的基址
- 通过PEB->LDR_DATA结构获取模块基址
- 利用FS寄存器获取KERNEL32.DLL基址算法的证明
- 利用FS寄存器获取KERNEL32.DLL基址算法的证明
- 利用FS寄存器获取KERNEL32.DLL基址算法的证明
- 获取kernel32.dll基址
- 动态基址的定位获取
- peb获取kernel32基址,用第一和第二种
- 【转】C++初级到高级的学习书籍流程
- opencv中cvCreateTrackbar()函数的说明
- vb随机显示10个数,并显示最大的数
- 黑马程序员_Java基础Day09(下)_异常(未完)
- HDOJ 3123 GCC
- PEB中获取指定名称的DLL的基址
- 双操作系统下Ubuntu 10.04 和Grub2的完美删除(with Win7)
- Javascript中的数组复制
- 为什么要用工厂模式
- 鼠标点在文本框上文本框成密码框,如果不输入,鼠标离开,又变成文本框,文本框内显示”请输入密码“(本内容来自唯才教育网http://www.hn1c.com 原文地址:http://hao.cspeng
- HDOJ 1211 RSA
- android 起动APP时锁住(Lock apps)
- centos6.4关闭nvidia显卡驱动
- 检测网络状态的方法