2

バイナリがUPXで圧縮されているかどうかを検出する方法を理解しようとしています。単純なCRCを使用して、アプリが何らかの方法で変更されたかどうかを検出しています。パッカーが原因でサイズがCRCに失敗した場合は、それをOKとして検出したいと思います。

今、私はUPXから始めています。

それで、バイナリにマーカーはありますか?検索する必要のある特定のJMPまたはその他の指示はありますか?
これは主にWindowsでテストされますが、将来的にはLinuxにも追加する可能性があります。

任意のヘルプ(およびコード)をいただければ幸いです。

追加した:

10個のバイナリでチェックした

AddressOfEntryPoint
Import Directory RVA
Resouce Directory RVA

UPXを指すか、UPXによって設定されるオフセットがあります。これに関する情報はありますか?

ありがとう

4

2 に答える 2

2

UPXホームページupxからソースコードをダウンロードしてファイルを開きます。あなたが探している機能は;src/p_w32pe.cpp

int PackW32Pe::canUnpack()

この関数は、ファイルがwin32upxで圧縮されているかどうかをチェックします。

于 2011-01-03T14:08:59.107 に答える
0

実行可能ファイルのセクション名を確認してみてください。UPXはそれらをUPX0、UPX1、UPX2に変更すると思います。

于 2011-01-03T16:35:34.730 に答える