問題タブ [proguard]
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.
android - 署名され難読化された Android アプリケーションをエクスポートするときに、Eclipse で ProGuard をセットアップする方法は?
私は Eclipse で開発された Android アプリケーションを公開しています。タイトルに記載されているように、特に署名付きアプリをエクスポートするために、Proguard の難読化をビルドに統合したいと考えています。
アリの道を行かずに運が良かった人はいますか?
java - ProGuard を使用してコードを難読化する
私は ProGuard を選択しました。設定したオプションは次のとおりです。
収縮
オプション:
- 縮む
保つ:
- アプリケーション
- アプレット
また、保持します:
- 列挙
- データベース ドライバー
- Swing UI L&F
難読化
オプション:
- 難読化する (duh! :P)
- 積極的にオーバーロードする
- 一意のクラス メンバー名を使用する
- 大文字と小文字が混在するクラス名を使用する
- パッケージ階層をフラットにする
- クラスの再パッケージ化
名前を保持:
- ネイティブ メソッド名
- .class メソッド名
最適化
オプション:
- 最適化
- インターフェイスを積極的にマージする
削除する:
- [すべてチェック済み]
情報
事前検証とターゲティング:
- 事前検証
一貫性と正確性:
- 構成の潜在的な間違いに注意してください
- 誤った入力の可能性について警告する
- 非パブリック ライブラリ クラス メンバーをスキップする
そして、私が瓶を取り、それを次のように置くと:
起動時に次のアプレット エラーが発生します。
難読化前のjarファイルの中身は次のclientOffline.jar
とおりです。
そして、難読化後のjarファイルは次のnewOne.jar
とおりです。
私はこれが私がこれを解決するのを助けるのに十分であることを願っています. 私は何を間違っていますか?
android - 難読化を除くすべての Android ProGuard 機能をオフにする方法は?
Google は、開発者がバイト コードを難読化することを推奨しています。
http://android-developers.blogspot.com/2010/09/proguard-android-and-licensing-server.html
私は Google の指示に従って難読化された Android アプリを入手しましたが、一見するとうまくいくように見えました。しかし、難読化されていないアプリにはない奇妙なバグがいくつか導入されました。この構成に到達するために、ProGuard オプションをオフにし続けました。
-dontoptimize -dontshrink -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose
それでもバグはあります。純粋な難読化だけを得るためにオフにできるものは他にありますか? 難読化は良いことですが、ProGuard の他の機能をオフにするつもりです。
java - 良いJavaビルド環境をセットアップする方法は?
Java/Eclipse。開発は正常に機能します。ビルドサーバーにはWindowsまたはFreeBSDのいずれかがあります。
次のことを実行したいのですが、展開するには(非常に自動化された方法で):
1:ソース管理からすべてをプルダウンします(PERFORCE)
2:構成可能なjavacと引数を使用してすべてのソース(およびすべての依存関係プロジェクト)をビルドします(異なるコンパイラーがパフォーマンスに影響を与えるかどうかを確認したい)
3:プロガードを実行する
4:すべてのリソース(.class、 "res /"ディレクトリ、外部.jarsなど)をjarにパッケージ化します。
5:.jnlpWebStartを作成します
6:ネイティブWindowsインストーラーを作成します(何か提案はありますか?)
7)Androidアプリの場合、4/5は代わりにデプロイ可能なAndroidパッケージにビルド/サインインする必要があります
antを試しましたが、非常に不格好でエラーが発生しやすいようです。たぶん、これを行うための最良の方法は、すべてをスクリプト化することですか?これを行うための良い方法がすでにあるはずのようです。
android - Android で (ProGuard を使用して) 難読化されたアプリケーションをデバッグする方法は?
こんなものを手に入れた時
問題がどこにあるかを知り、この問題をデバッグするにはどうすればよいですか? ProGuard からのマッピング出力しか取得できず、行番号がわかりません。ありがとう。
java - Android で ProGuard を使用する。
Android で ProGuard を使用しようとしています。使用する ProGuard スクリプトをいくつか見つけました。次のスクリプトは一例です (同じまたは非常に類似したものをいくつか見つけました)。ただし、このスクリプトを使用して ProGuard を実行しようとすると、次のエラーが発生します。
「';' の前に Java タイプが必要です ファイルの 23 行目 ...」
私はProGuardをまったく初めて使用します。誰かがここで何がうまくいかないのか説明できますか
ありがとう。
android - Proguard、Android、および抽象クラスのインスタンス化
「抽象クラスのインスタンス化」とあなたは言います。"不可能!"
これが私のコードです:
com.bat.baz.FooBar は、AbstractFoo を拡張するプライベート クラスです。Proguard がなければ、このコードは私の Android デバイスで実行されます。これにより、NoSuchMethodException の try/catch で失敗します。
Proguard構成ファイルに次のようなステートメントを追加し続けます
しかし、それでは問題は解決しません。これがAbstractFooオブジェクトをインスタンス化する有効な方法であることをProguardに受け入れさせるにはどうすればよいですか? 少なくとも、Proguard なしで動作する場合は、Proguard で動作するはずです。
android - IntelliJ IDEA を使用しているときに Android アプリを簡単に難読化するにはどうすればよいですか?
2つのオプションがあると思います:
並列 ANT スクリプトを作成し、IDE をバイパスします (IDE が非常に優れている場合は、かなり非効率的です)。
何らかの形で Proguard/yGuard などを IntelliJ と統合する
Proguard/yGuard のプラグインを IntelliJ にインストールしようとしましたが、どちらも機能していないようです (正常にインストールされましたが、ファセットの下に表示されません)。実際、これらのプラグインが難読化に役立つかどうか、または単にデバッグ用の難読化解除機能を提供します。
ANT が最適なルートだと思いますが、ご意見をお待ちしております。誰かがアプリをリバースエンジニアリングする可能性を減らしたいだけですが、セットアップに何時間も費やす必要はありません。
android - Proguard エラー: クラスパス区切り文字が必要です - パスを引用符で囲む必要がある場所がわかりません
エラー:
私の問題は、c:\program files\eclipse ディレクトリに eclipse+android があることであり、「プログラム」と「ファイル」の間のスペースがこの問題を引き起こしていることを十分に認識しています。
また、このパスを引用符で囲むことが解決策であることも認識しています。
私の問題は、これらの引用符をどこに置くかです。私はちょっとした ANT 初心者です。ここで見つけた指示に従っています: http://android-developers.blogspot.com/2010/09/proguard-android-and-licensing-server.html
私は現在、ANT が PROGUARD とどのように連携して、パスを引用符で囲む場所とその方法を知るために十分に理解しようとしています (それが XML であることを心配しており、文字をエスケープするためにどのような処理が行われるのかわかりません)。等)
「プログラムファイル」からすべてを移動するバックアップ計画がありますが、この問題を正しく解決したいと思っており、プロジェクトを移動することはハック/敗北を認めていると感じています.
spring - 名前でSpring@Autowiredを使用するライブラリでProguardを使用する
私はProguardを使用して、いくつかの@Autowiredフィールドを持つライブラリを難読化しています。難読化ツールはこれらのクラスフィールドの名前を変更しているため(クラスのプライベート/内部であるため)、私のBeanはインスタンス化に失敗しています。
事前に難読化:
難読化後:
現在、これらの特定のフィールドを自動配線されないようにする方法はたくさんありますが、私が見つけたいと思っていたのは、重要なSpring-ism(@Autowiredなど)で注釈が付けられた内部フィールドを難読化しないようにProguardに指示する方法でした。 。
誰かが私がこれを一般的にどのように行うことができるかについての考えを持っていますか?
許す