初心者 Android の従来の考え方を逆転する

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 ツールです。

 

次に、このコードをクラスに貼り付けます

 

修正後のコードは以下のように変更されます。

 

次に、保存、コンパイル、apk へのパッケージ化を行い、インストールします。

成功!

 

おすすめ

転載: blog.csdn.net/2302_76405773/article/details/132067924