Hello there, ('ω')ノ
🔍 難読化(Obfuscation)とは?
難読化とは、アプリの中のコードや文字列を“わかりにくくする”技術のことです。 人間が理解しにくくなるように変換することで、リバースエンジニアリングや解析を困難にします。
✅ 難読化の目的は?
| 対象 | 保護内容 |
|---|---|
| 変数名やクラス名 | 意味不明な名前に置換(例:LoginManager → a.b.c) |
| メソッドの構造 | 制御フローを入れ替えて読みにくくする |
| 文字列 | Base64や独自暗号で埋め込み |
| リフレクション | 意図的に使って構造解析を困難に |
| デバッガ対策 | isDebuggerConnected() などで実行環境を検知 |
🎯 実際に何が変わるの?
🔎 難読化前:
public class AuthManager { public String generateToken(String userId) { return "token_" + userId; } }
🔐 難読化後(例):
public class a { public String a(String b) { return "token_" + b; } }
→ AuthManager や generateToken() のような意味のある名前が消えてしまうため、解析が難しくなる。
⚙️ よく使われる難読化ツール
この続きはcodocで購入