首页
论坛
课程
招聘
PEB或TEB取Kernel32.dll模块基址稳定性的问题!
linghaien 6天前 70

__asm
{
mov eax, fs:[30h]
mov eax, [eax + 0Ch]
mov eax, [eax + 14h]
mov eax, [eax]
mov eax, [eax]
mov eax, [eax + 10h]
ret
}

 

_asm {
mov eax, fs: [0x18];//找到teb
mov eax, [eax + 0x30];//peb
mov eax, [eax + 0x0c];//PEB_LDR_DATA
mov eax, [eax + 0x0c];//LIST_ENTRY 主模块
mov eax, [eax];//ntdll
mov eax, [eax];//kernel32
mov eax, dword ptr[eax + 0x18];//kernel32基址
mov hKer32, eax
}

 

现在看到的动态取模块基址,只有一种方案,PEB取,但是你们确定这东西是稳定的吗,我这两天才用这个,我有一台电脑用一种取会崩,用第二种不会,但是另一台电脑,用第一种不会崩,用第二种会崩,但是就是说单独在EXE写这两个汇编,两台电脑运行都能正常取,但是我写到 dll 里,dll再被exe加载就会有可能崩溃,极度的不稳定。这是有可能什么原因导致的?

收藏
0条回答