DLLインジェクションをしたいが、WOW64に阻まれる

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
shiro4ao
記事: 224
登録日時: 13年前
住所: 広島

DLLインジェクションをしたいが、WOW64に阻まれる

#1

投稿記事 by shiro4ao » 11年前

久しぶりDLLインジェクションをしようとおもったのですが、
DLLのロードがsysWOW64内のuser32.dllから始まるため、
それ以降の呼び出しはすべてsysWOW64内のDLLを使うせいで
自作のDLLを挿入する隙がありませんでした。

置換する目標であるSHELL32.DLLまでの呼び出しは以下のとおりでした。
(dependencywalkerにて確認)
USER32.DLL
ADVAPI32.DLL
WINTRUST.DLL
CRYPT32.DLL
USERENV.DLL
SHELL32.DLL

おそらく、OSがアプリケーションが32bit版であることを察知してsysWOW64フォルダにあるDLL群をロードさせることが
原因だと思うのですが、それを回避して自作DLL(SHELL32.dll)を本物の代わりに読み込ませることができるでしょうか?

読み込ませたいアプリケーションと、偽DLL(SHELL32.dll)まで必要な上記DLLを同じフォルダに入れて実行してみたところ
sysWOW64内のUSER32.DLLが呼び出されたためか、以降のDLLがsysWOW64由来のものになり
自作DLLの挿入がうまくいきませんでした。


さすがに、"C:\Windows\SysWOW64\SHELL32.DLL"を偽DLLで上書きするのは影響が大きすぎるので避けたいと思います。

アバター
shiro4ao
記事: 224
登録日時: 13年前
住所: 広島

Re: DLLインジェクションをしたいが、WOW64に阻まれる

#2

投稿記事 by shiro4ao » 11年前

いろいろと試してみたのですが、私には無理そうでした、sysWOW64を置換するより他思いつきません。
一応これでトピックは閉じさせて頂きます。
ありがとうございました。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: DLLインジェクションをしたいが、WOW64に阻まれる

#3

投稿記事 by ISLe » 11年前

DLLインジェクションが脆弱性だということで、システムDLLは絶対パスで読み込む(システムディレクトリ以外からは読み込まない)ようになっているはずです。
著名なアプリケーションの多くも特定のディレクトリ以外からDLLを読み込まないよう対策するようになっています。

閉鎖

“C言語何でも質問掲示板” へ戻る