1. まずアプリ ソフトウェアをリバース エンジニアリングし、まず強化されているかどうかを確認します (MT Manager または ApkScan などの確認ツール) 2. 強化されている場合 (360 強化など)、リフレクション マスターAPK
を解凍できます。(ここでは詳細については一時的に説明しません) 3. コードを分析するには、jadx ツールを使用してアプリのソース コードを表示します。4. コードを変更します。ここでのコードは小さなコードであり、AndroidKiller ツールを使用して変更できます。
アプリのメンバーシップを変更する方法は次のとおりです [注: サーバーでは検証されません]
現在のメンバーシップ時間であると仮定して、例として私が作成したアプリを使用します
SDKフォルダ配下のtoolsフォルダにあるmonitor.batを開くと、図のように
時間表示IDが表示されますので、この時点でjadxを使用してソースコード解析を表示し、APKをjadxにドラッグしてください。図に示されています。
このとき、先ほど確認した ID 名を検索すると、コンパイルされたコードが表示され、ステップバイステップの分析のために 1 つを選択します。
ここにタイムコードがあることがわかります。これは仮定であるため、ここのフラグはサーバー上にメンバーがいるかどうかをシミュレートするために使用されます。ここにフラグが false として書かれている場合、現在のメンバー時間が表示されるためです。 。
現時点では、AndroidKiller ツールを使用して APK を逆コンパイルし、小さなコードを分析します。
iget-boolean v1, p0, Lcom/hba/Testapplication/MainActivity;->flag:Z これは、flag の値が p0 に与えられ、次に p0 が v1 に与えられることを意味します。 if-eqz v1, :cond_0 が v1 を判断する、if v1 が true の場合
は続行します。次のコードを実行します。それ以外の場合は、
ここのフラグが false であるため cond_0 にジャンプし、次にここにジャンプします
: cond_0
invoke-virtual {v0, v2}, Landroid/widget/TextView;->setVisibility(I)VModify
member
一歩、フラグを true にして、v1 を変更し、if-eqz の上の行に const/4 v1,0x1 と書くだけです。
2 番目のステップは時刻を変更することです。バックエンド サーバーでの検証がないため、コード生成時に時刻を変更するだけで済みます。図に示すように、日付ツール クラスを作成しました
。
次に、Java コードを smali コードに変換します。ここで使用するツールは java2smali ツールです。
次に、このコードをクラスに貼り付けます
修正後のコードは以下のように変更されます。
成功!