転載取得kernel 32.dllベースアドレス
660 ワード
kernel 32を取得する.dllイメージベース
技術に関することは久しぶりに書きましたが、最近組み込みアセンブリとマシンコードの注入を研究しているので、次のコードを列挙します.このうちC/C++の部分とinline asmの最後の文は私が書いたものです.自評:オリジナル精神が極めて欠けている.
このコードの機能は、GetModuleHandle APIを用いるkernel 32を取得しないことである.dllのモジュールハンドル(イメージベース)は、Win 32 NTカーネルにのみ適しています.
技術に関することは久しぶりに書きましたが、最近組み込みアセンブリとマシンコードの注入を研究しているので、次のコードを列挙します.このうちC/C++の部分とinline asmの最後の文は私が書いたものです.自評:オリジナル精神が極めて欠けている.
HMODULE GetKernel32( void )
{
HMODULE hRet = NULL;
__asm
{
mov eax, fs:30h
mov eax, [eax + 0ch]
mov esi, [eax + 1ch]
lodsd
mov eax, [eax + 08h]
mov hRet, eax
}
return hRet;
}
このコードの機能は、GetModuleHandle APIを用いるkernel 32を取得しないことである.dllのモジュールハンドル(イメージベース)は、Win 32 NTカーネルにのみ適しています.