私のアプリの有料版では、実装が簡単で、開発者コンソールで個々の統計を使用できるため、アンロック アプリ ルートを選択していますが、主に 2 つのコード ベース (無料版用と別の有料版)。私が CVS を使用したとしても (私はそうしています)、機能のマージとバグ修正を続けるのは依然として骨の折れる作業です。ロック解除アプリは、全体的に実装がはるかに簡単です...
しかし、これには重大な欠点が伴います。セキュリティ チェックをオーバーランするのは非常に簡単です。ここで何かが欠けていない限り。
私が何をしても、そのような実装は常にif
次のような単純なものになります。
if(Program.isPremiumVersion()) {
// Remove ads...
}
メソッドは、isPremiumVersion()
証明書が一致するかどうかなど、有料のロック解除アプリのインストールをチェックするすべての作業を担当するものです。はい、ロック解除アプリは LVL によって保護されています (ただし、LVL がいかに安全でないかについて言及している記事をいくつか読みましたが、それは今のポイントではありません)。しかし、最終的には、内部のコードがどれほど複雑にisPremiumVersion()
なっても、常にtrue
またはfalse
値が返されます。
このようなセキュリティ機能をオーバーライドするには、コードをリバース エンジニアリングして、常に を返すようにするだけtrue
です。そうじゃない?Android アプリをこれから保護するにはどうすればよいでしょうか? はい、コードは ProGuard で難読化されています。それでも、十分に熟練した人にとっては難しすぎるべきではありません.
クラッカーと戦おうとしているわけではないことに注意してください。単に勝つことはできません。「完璧な解決策」に数え切れないほどの時間を浪費して、これで眠りを失うつもりはありません。少しでも安心できる方法を模索中です。少なくとも理論的には、これをクラックするのはとても簡単に思えます。私は間違っていますか?
そのような機能のセキュリティを向上させるためのアイデアはありますか?