問題タブ [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.
windows - UPX は再配置ディレクトリのないアプリケーションをどのように処理しますか?
私は実行可能ローダーについていくつかの調査を行ってきましたが、特定の仮想アドレスでロードする必要がある (つまり、再配置レコードを持たない) 実行可能ファイルをどのように処理するかが、私を混乱させます。
UPX にはこれを行う機能があることは知っていますが、これが UPX ソースでどのように処理されるかはわかりません (どのコードがロードを担当しているのか正確にはわかりません...)
ローダーを作成しましたが、ロード先の仮想アドレスが問題にならないように、アプリケーションに再配置レコードが必要です。
UPX のスタブのベース アドレスは 0x400000 で、ベース アドレスが 0x400000 の実行可能ファイルをロードする場合は問題ありません。OSは現在のプロセスのベースアドレスに仮想メモリを割り当てる要求を拒否するため、これはどのように可能ですか(少なくとも私にはこのように思われます)
これを達成するために必要と思われる機能である VirtualAlloc の UPX ソースを検索してみましたが、UPX ソースで 1 回だけ発生します ( https://github.com/upx/upx/search?utf8=% E2%9C%93&q=VirtualAlloc ) が一見無関係なコードに含まれているため、非常に混乱しています。
windows - calc.exe を UPX でパックする
Windows ツールの UPX パック バージョンを実行できない理由を誰かに説明してもらいたいのですが、Windows 7 または Windows 10 では "calc.exe" (32 ビット バージョン) ですが、Windows XP ではパックされた "calc .exe" は問題なく実行されています (すべての変換で、エラー メッセージは表示されず、約 50% の適切な圧縮率が得られました)。
この理由は、Windows 7 以降の calc-versions が .NET のようなより多くの依存関係を使用しているか、これらのオペレーティング システムのより洗練されたセキュリティ メカニズムによって何らかの形で保護されているためですか?
最新の UPX バージョン 3.94 を使用しています。
よろしくお願いします、
アンドレアス
python-3.x - macOS で UPX を使用して実行ファイルのサイズを縮小する
PyInstaller でバンドル アプリを作成しています。アプリには numpy が含まれているため、バンドルされたアプリの最終的なサイズは 600 MB を超えます。もちろん、バンドルされているアプリのサイズを圧縮したいので、 経由で upx をインストールしbrew install upx
ました。ただし、PyInstaller は以下のエラーでクラッシュします。
1- UPX または macOS 用の PyIntaller に代わるものはありますか?
2- このエラーを修正できますか?
3- PyInstaller が選択したファイルにバンドルされたアプリを作成した後、UPX を手動で実行できますか? はいの場合、UPX のコマンド ラインの例を教えてください。
エラー:
python - PyinstallerにUPXディレクトリを含めようとすると、WinError 5アクセスが拒否されます
UPX の最新リリースをダウンロードし、C:/UPX のフォルダーに展開しました。このフォルダーには、.exe と抽出されたフォルダーの両方が含まれるようになりました。Pyinstaller が UPX をまったく認識しないか、次のように表示されます。
84 情報: PyInstaller: 4.0.dev0
84 情報: Python: 3.7.6 (conda)
84 情報: プラットフォーム: Windows-10-10.0.18362-SP0
'C:\UPX\upx -V' の実行中にエラーが発生しました: [WinError 5] アクセスが拒否されました
エラー: コマンドの実行に失敗しました!
私が使用したコードは次のとおりです。
Anacondaプロンプトから管理者として実行しています。UPX ファイルがスクリプトがある現在のディレクトリにある場合、upx がまったく認識されませんでした。
オンラインで提供されているすべてのアドバイスに従っていますが、間違った UPX ファイルをダウンロード/使用しようとしているような気がします。ここからダウンロードします: https://github.com/upx/upx/releases/tag/v3.96 upx-3.96 リリースの .zip。.zip と抽出したフォルダーの両方を、この C:/UPX フォルダーに保持します。私は何を間違っていますか?