Clever Geek Handbook
PEファイルをデジタル的に削除します
PEファイル(exe、dll、sysなど)に署名するには、ほとんどの場合signtool.exeユーティリティが使用されますが、デジタル署名をファイルから削除する必要がある場合はどのユーティリティを使用する必要がありますか? しかし、そのようなユーティリティは公式ではありません。 署名または再署名(既存の署名の上に署名する)のみできますが、削除はできません。 しかし、HexまたはPEエディターでファイルを修正する必要があり、意図的に損傷したデジタル署名をファイルに残したくない場合はどうでしょうか?
それは何のためですか?
たとえば、署名されたファイルを変更する必要がある場合は、エラーを修正するか、ローカライズします。 ファイルに何らかの変更を加えると、デジタル署名が破損して無効になるため、この形式のままにしておくよりも完全に削除することをお勧めします。
ファイルに署名するメカニズムの詳細とその機能を理解します。
この記事では、生涯で少なくとも一度はHexエディターを使用したことがある人にわかるように、デジタル署名を手動で削除する方法について説明しています。
ツール
作業には、次のユーティリティが必要です。
1. 16進エディター。
WinHexが
好き
です
。
2.
ModifyPE
PEファイルのチェックサムを修正するユーティリティ。
3. 16進計算機がシステムにあります。
例
たとえば、
DiskCryptor
ディスクパーティションを暗号化するための素晴らしいオープンで無料のプログラムの配布キットからデジタル署名を削除します(オブジェクトはランダムに選択されました)。 ところで、この例では、デジタル署名を削除してもPEファイルのパフォーマンスに影響しないことがわかります。
Hexエディターでdcrypt_setup.exeを開き、4バイトシーケンス50450000hを探します(テキストでは、PEの後に2つのゼロバイトが続きます)。 このシグネチャは、ファイルをPE形式のファイルとして識別し、MS-DOSヘッダーの直後に続きます。 この場合、署名の先頭はオフセット100hにあります。
デジタル署名を削除した後に修正する必要がある次のものは、ファイルのチェックサムです。 PE形式のシグネチャの58hバイト後、つまり100h + 58h = 158hにあるため、このファイルの現在のチェックサム(dwordタイプ、つまり4バイトかかる)は9F36Ch(バイトが反転)です:
次の2つの値は、デジタル署名に直接関連しています。 ゼロで構成されている場合、署名はありません。 最初は、チェックサムの開始後40hバイト、または署名の開始後98hバイト-100h + 98h = 198hです。
この4バイトの値は、デジタル署名が始まるオフセットを示します。 これで8E438hと等しくなります。
2番目の値も4バイトの値で、最初の直後にあります。
これはデジタル署名のサイズを意味し、この場合は1500hまたは5376バイトです。 したがって、署名の終わりはオフセット8E438h + 1500h = 8F938hになります。 原則として、デジタル署名はファイルの最後に移動します:
すべてが一致するため、このブロックは安全に削除できます。その後、ファイルの終わりは8E437hになります。
それは最小のもののままです-デジタル署名のオフセットとサイズ署名をゼロで消去する:
ModifyPEユーティリティを使用してチェックサムを調整します。
私たちはチェックします:
できた! これで、プログラムインストールパッケージは、署名前とまったく同じで、バイトごとになります。
PS厳密に判断しないでください、これは初めてであり、将来的には品質が向上します。 建設的な批判は大歓迎です。
PPSトピックの著者は初心者habrayuzer
systracerで
、彼は彼のテキストを公開するように頼みました。 長所は彼に向けられるべきです、私に短所を残します
More articles:
興味深いプロジェクトと良い人のための格安SMS
パターンと実践サミット会議-別の視点
200ドルまたは280ドルのOffice 2010?
すべてのプラットフォーム用の64ビットフラッシュプレーヤーのプレビューリリース
勝者10 k別
ノベルは部品で販売されています
セルラー顧客データ仮想化
Apache2およびMySQL上の高度にアクセス可能なフェールセーフWebアプリケーション
Logitech Portable High Definition Web Eye
今月の最も有害な良いアドバイス
All Articles