既にコンパイルされたDLL内のコードを "編集"できるかどうかを知りたいと思います。コンパイルされたDLLの関数を変更する方法
I.E. a
と
b
はのは、私は私のDLLのソースコードを失ってしまったとしましょう2つの数値を追加しMath.dll
内sum(a,b)
と呼ばれる機能があることを想像してみてください。だから私が持っているのはバイナリDLLファイルだけです。 私はそのバイナリファイルを開いて、私の関数のある場所を探してと(合計ではなく)b
の乗算を返す別のルーチンなど、sum(a,b)
ルーチンを置き換える方法はありますか?
要約すると、バイナリコードファイルを編集できますか?
おそらくollydbgのようなリバースエンジニアリングツールを使用していますか?
オンディスクよりもメモリ内の方がはるかに簡単です。 [AuthentiCode](http://msdn.microsoft.com/en-us/library/ms537359(v = vs.85).aspx)やオンデマンド認証を確実にするその他の妥当性検証と似ていないことを願っています。適度にインテリジェントなローダーが負荷のためにPEイメージを準備しているときに、ディスクイメージが改ざんされていない可能性があります。 – WhozCraig
関数がdllでエクスポートされた場合、dllをラップするだけではどうですか? –
私はDLL内のエクスポートされた関数について話しているだけではありません。合計(a、b)がDllの内部で使用されるプライベート関数の場合はどうなりますか?輸出されたものを公的に使用するものではありません。このルーチンを見つけて変更するのは可能でしょうか? – Herno