問題タブ [upx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
13 に答える
24928 参照

c++ - UPX を使用して Windows 実行可能ファイルを圧縮することの欠点はありますか?

以前にUPXを使用して Windows 実行可能ファイルのサイズを縮小したことがありますが、これがもたらす可能性のあるマイナスの副作用について、私は無知であることを認めなければなりません。このパッキング/アンパッキングのすべての欠点は何ですか?

実行可能ファイルを UPX 処理しないことを推奨するシナリオはありますか (たとえば、DLL、Windows サービスを作成するとき、または Vista または Win7 をターゲットにするとき)? 私はほとんどのコードを Delphi で記述していますが、C/C++ 実行可能ファイルの圧縮にも UPX を使用しています。

余談ですが、exeを逆アセンブラーから保護するためにUPXを実行していません。実行可能ファイルのサイズを縮小し、大雑把な改ざんを防ぐためだけです。

0 投票する
5 に答える
1081 参照

delphi - madExcept + UPX

Delphi 2007 で madExcept + UPX を使用すると問題が発生します。圧縮されたアプリケーションを開くたびに、Windows の例外ダイアログにコード 0xc0000005 が表示されます。誰もがこれに対する解決策を持っていますか?

ありがとう!

0 投票する
3 に答える
27150 参照

winapi - 指定されたexeで使用されたPEパッカーを検出する方法は?

パックされているように見えるアプリケーションを見つけました。16進エディタで開いたところ、「UPX1」セクションと「3.00 UPX!」が含まれています。ストリング。残念ながら、upx latest で解凍できず、「UPX で圧縮されていません」と表示されます。他のどの PE コンプレッサー/クリプターが使用されたかを調べる方法はありますか?

0 投票する
1 に答える
621 参照

python - Any downsides to UPX-ing my 32-bit Python 2.6.4 development environment EXE/PYD/DLL files?

32 ビット Python 2.6.4 開発環境の EXE/PYD/DLL ファイルを UPX することの欠点はありますか?

私が尋ねている理由は、ビルドごとに UPX がこれらのファイルのコピーを作成するカスタム PY2EXE スクリプトを頻繁に使用するためです。

はい、空想にふけって UPX されたファイルをキャッシュしようとすることもできますが、Python 2.6.4 ディレクトリを一度 UPX するだけで、よりシンプルで安全でパフォーマンスの高いソリューションになると思います。

考え?

マルコム

0 投票する
2 に答える
1702 参照

c - プログラムによるUPXの検出

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

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

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

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

追加した:

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

AddressOfEntryPoint
Import Directory RVA
Resouce Directory RVA

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

ありがとう

0 投票する
2 に答える
6060 参照

c - LinuxでELFにUPXがパックされているかどうかを確認する

ELF形式がどのように機能するか、またはコードを介してそのヘッダーとデータにアクセスする方法についての知識はありませんが、ELFバイナリがLinux用のUPXで圧縮(パック?)されているかどうかを確認する必要があります。

バイナリをチェックするとstrings文字列UPX!が表示されたので、それを使用できると思います。バイナリを16進編集すると文字列が表示され、バイナリ内の位置については、ELFのヘッダーの1つの一部であると見なすことができます(間違っている場合は修正してください)。これはそのダンプです:

これがよさそうかどうかわかりません、ごめんなさい。

LinuxでUPXを検出する方法を知っている人はいますか?そうでない場合、ヘッダーにアクセスしてそのUPX!文字列(ヘッダーの名前?)を取得する方法は?

私はUPXソースコードを調べましたが、すべてがC ++であり、これをCでコーディングしようとしています。そして、それを追跡するのは非常に困難です。

ありがとう、どんな助けでも歓迎します。

編集:バウンティについて。以下のサンプルのように、私がさまざまなアプローチを試したが、常に機能するとは限らないため、彼らの答えは確かな例を示しているに違いありません。
ありがとうございました

0 投票する
5 に答える
4615 参照

delphi - exeファイルがUPXで圧縮されているかどうかを判断する方法

exeファイルがUPXで圧縮されているかどうかを判断する方法はありますか?

コードに問題があったことを除けば、exeファイルが圧縮されているかどうかを判断する機能は優れています。関数IsUPXCompressedが呼び出された場合、upxを実行しようとすると、upxは変更したファイルを保存できません。関数内で権利を正しく共有していないものがあります。私はこれを数時間テストしました。メソッドを呼び出さない場合、UPXは問題なくファイルを書き込むことができます。それを呼び出してからUPXを実行しようとすると、ファイルは保存されません。UPXは、ファイルを書き込もうとしたときにIOExceptionPermissiondeniedエラーを報告します。

誰かがこの問題を引き起こすコードの何か間違ったことを見つけることができますか?

ありがとうございました


コードに問題があったことを除けば、exeファイルが圧縮されているかどうかを判断する機能は優れています。関数IsUPXCompressedが呼び出された場合、upxを実行しようとすると、upxは変更したファイルを保存できません。関数内で権利を正しく共有していないものがあります。私はこれを数時間テストしました。メソッドを呼び出さない場合、UPXは問題なくファイルを書き込むことができます。それを呼び出してからUPXを実行しようとすると、ファイルは保存されません。UPXは、ファイルを書き込もうとしたときにIOExceptionPermissiondeniedエラーを報告します。

誰かがこの問題を引き起こすコードの何か間違ったことを見つけることができますか?

ありがとうございました

0 投票する
1 に答える
401 参照

compression - リリース ビルドで UPX (実行可能圧縮プログラム) を使用しますか?

プロジェクトのリリース ビルドでUPX (またはその他の実行可能な圧縮プログラム)を使用することが通常/許容できるかどうか疑問に思っていました。

たとえば、出荷時には通常 1.7MB のこの実行可能ファイルがありますが、パックすると 426KB になります。1.2MB のストレージを気にしているわけではありませんが、426KB の方がダウンロード時や一般的に見栄えがします。

また、ハードディスクからの読み取りは解凍よりもコストがかかるため、一部のプログラムは圧縮すると起動時のパフォーマンスが向上するということを聞いたことがありますが、テストはしていません。

では、リリース ビルドで実行可能ファイルを圧縮することをお勧めしますか?

0 投票する
1 に答える
819 参照

c++ - ブーストスレッドとUPX圧縮==無効なwin32アプリケーション?

私が宣言するとき

私のプログラムで.exeファイルをUPXで圧縮すると、圧縮は成功します。しかし、圧縮されたexeを起動しようとすると、Windowsは「有効なwin32アプリケーションではない」と表示します。

UPXのバグレポート(同様のバグ)がありますが、異なるエラーメッセージが表示されます(「アプリケーションを正しく初期化できませんでした(0xc0000005)」)。

私の場合、OSはファイルが破損しているか何かを認識しているため、エラーを表示し始めることさえできません。なぜ??

Win7x64、C ++、VisualStudio、ブースト1.47、UPX3.07

奇妙なニュース:

  1. exeを解凍すると、こことまったく同じエラーをスローする破損したexeが作成されます。(「アプリケーションは正しく初期化できませんでした(0xc0000005)」)これは解凍されたexe用であり、バグレポートのようにパックされていません。

  2. extern "C" void tss_cleanup_implemented(void) {} Boostのスレッドヘッダーを含める前は問題ではありません。結果は同じです。

main.cpp:

誰かがコンパイルして圧縮しようとするかもしれませんか?

0 投票する
1 に答える
4348 参照

reverse-engineering - UPX でパックされているがヘッダーも変更されている dll ファイルを解凍する方法は?

UPX で圧縮されたファイルがあります。ヘッダーを変更しても、UPX パックとして表示される方法はありますか? そして、どうすれば解凍できますか?私は多くのチュートリアルを試しましたが、私にはうまくいかない同じ方法をすべて説明しているのでうんざりしています。同じ問題が次のように言及されています: http://www.reteam.org/board/showthread.php?t=2670 私はよく理解されたリバースエンジニアではありません.. :(役に立った。