難読化にもかかわらず実際のランタイムメソッド名?
-
03-07-2019 - |
質問
コードを難読化した場合、現在のメソッドの名前を照会する方法はありますか?実行中のメソッドをプレフィックスとしてメッセージを記録したい場合があるので、私は尋ねています。
解決
出力する文字列にメソッド名を直接追加するだけです。リフレクションを介して現在のメソッドの名前を取得すると、難読化された名前になります。この方法でなければ、誰でも元の方法を理解し、難読化を無効にする(または劇的に妨害する)ことができます。
他のヒント
あるいは、難読化ツールは独自の難読化ログを出力できるようになっているため、アプリケーションの難読化されたログを人間が読める形式に変換するツールを作成できます。
もちろん、アプリケーションの開発バージョンには、独自の難読化ログにアクセスし、ログを出力する前にリフレクションの結果を変換する機能が含まれます。
ファイルシステム上の難読化ログを、jarファイル内のアプリケーションリソースとして保持したり、リモートサーバーからダウンロードしたりできます。
復号化された難読化ログをアプリケーションメモリにのみ保持する場合、VMサンドボックスはそれらをかなり安全に保持することになっています。
難読化する理由を再考してください。難読化ツールが難読化するのは、多くの場合デバッグに役立つものです。
所属していません StackOverflow