機械語なら俺に質問しろ!
■ このスレッドは過去ログ倉庫に格納されています
0515デフォルトの名無しさん
2005/06/19(日) 00:08:32最終的にアドレステーブルだけあればいい=ルックアップテーブルを上書きすればいい、
つまり同じ用途で二箇所もいらないっていう意味で言ってるなら、そう言えないこともないかもな。
ローダーとモジュールの都合だけ考えれば。
ただ、両方テーブルがあると、デバッガとかでプロセス内部をのぞき見する場合には便利なことが多い。
たとえば、アドレス解決住みのアドレステーブルを見て何の関数なのか(可読名称)知りたいとき、
ルックアップテーブルが残ってれば名前テーブルがすぐ引ける。
ルックアップテーブルが残ってなければ、DLLのエクスポートテーブルを検索する必要がある。
また、API乗っ取り等のためにアドレステーブルを書き換えてしまった場合、
ルックアップテーブルが残ってれば、本来あるべきアドレスを再検索することができる。
ルックアップテーブルが残ってなければ、二度と本来のアドレスは分からない。
(まあ、本来のアドレスがわかったとして、それを素直に書き戻していいかは、
多重乗っ取りの可能性を考えると難しい面もないではないが、ここでは関係ない)
以上がPEの設計者が意図したものなのかどうかは知らないが、
そういう利用法はあるし、実際利用されてることを鑑みれば、
まるっきり無駄ってわけでもないとは言えると思う。
■ このスレッドは過去ログ倉庫に格納されています