私はいくつかのクラックを分析しており、そのうちの1人がリロケーションテーブルのアドレスとサイズを0に変更しました。これでクラッカーが達成しようとしていたことは?PEヘッダーから再配置テーブルのアドレスを削除するとどうなりますか?
詳細情報を提供するために、クラックの目的は、別のDLLを読み込み、カスタムテーブルのロードテーブル内の以前のWindows DLL名の名前を変更することです。
私はいくつかのクラックを分析しており、そのうちの1人がリロケーションテーブルのアドレスとサイズを0に変更しました。これでクラッカーが達成しようとしていたことは?PEヘッダーから再配置テーブルのアドレスを削除するとどうなりますか?
詳細情報を提供するために、クラックの目的は、別のDLLを読み込み、カスタムテーブルのロードテーブル内の以前のWindows DLL名の名前を変更することです。
再配置テーブルを削除すると、DLLを再配置できないことが保証されます。
新しいコード(亀裂のコード)は、DLL内の任意のアドレスを計算する必要はなく、定数アドレス値を使用できます。
多くの場合、再配置テーブルは実際には必要ではないため、モジュールのサイズを縮小したり、一部のデータで置き換えるために削除することができます。
ロードするDLLの名前を変更するには、通常はインポートテーブルを変更するだけです。残りの部分は、問題のバイナリの詳細を知らずに、ちょうど推測の仕事です。
すべての「クラッカー」が正確に何をしているのか分かりませんが、分析しないでください。彼らはASLRを意識していない限り、再配置データは無用である(そして安全に削除することができます)、実行可能で
。
Portable Executable Specificationによれば、ライブラリは、優先ロードアドレス以外の別のアドレスにロードする必要がある場合にのみ、再配置テーブルが必要です。したがって、ディレクトリから再配置テーブルを削除しても、ライブラリーが優先アドレスでロードされている限り影響はありません(実際には、イメージがASLRをサポートしていない場合に起こります)。
"...いくつかのデータで置き換える"!インテレステイング!一部の実行ファイル(再配置されないファイル)が再配置ディレクトリを持っているのはなぜでしょうか?質問を参照してください(http://stackoverflow.com/questions/8534858/why-do-some-windows-applications-contain-a-relocation-directory) – mox
パーフェクト!ありがとう。 – Stew