爬虫類のエンジニアは共有:Androidの逆を取得するための3つのステップ

この記事では、セクションAPPを逆にして逆のプロセスを導入するために、企業内で共有して、私の最近の時間に由来します。学習の唯一の目的以来、APP関連情報がカバーされますので、ご了承ください。

リバースについて

リバース - 実装プロセスの機能のいくつかを解決するために、フックおよびその他の手段を逆コンパイル含むがこれらに限定されません。

多くの分野での後方などクローラ技術などのアプリケーションは、今何度も行ってきましたが、でも、フロントエンド開発の抗登るの意識で、その結果、データをクロールすることができ、コードを記述する必要はありません、徐々に改善しています。JS、Androidや他のフィールドを逆転したがって、それはスキルに必要なクローラの開発者の一人となっています。

この記事では、バックエンドのインターフェースを「認識」を取得我々は暗号化プロセスを逆にすれば、あなたは同じ暗号文をシミュレートすることができ、アウト解析、多くのアプリケーションインタフェースで見ることができ、典型的な秘密に参加するための最も一般的な質量を示します。

リバース準備

ここでは逆にAndroid上で次の準備をしています:

  • Androidの実機やエミュレータ(好ましくは実機)
  • アンドロイド5.0またはバージョン6.0をインストールします。
  • シオマネキ、チャールズおよびその他のパケットキャプチャツール
  • Jadx、ApkToolおよびその他の逆コンパイラ
  • dumpDex、FDex2砲撃や他のツール
  • Javaの、Androidの開発の基礎
  • 基本的な知識の開発のためのフレームワークXposed

    逆の手順

この資料の手順を逆に説明します。

もちろん、3つの段階でまとめ、それは「いくつかのステップに冷蔵庫に象。」のように見えました アプリケーション開発者と逆の対立などのネットワークセキュリティ技術は、それが何倍ものパターンを意味し、時には逆を完了することができ、コードを必要としない、これだけ対応するテキストに遭遇した状況をまとめました。

ターゲット

リバースは、APPの注文がインターフェイスのために、我々は最初のチャールズ・インターフェース。写真の下に、受注リスト要求をキャプチャするパケットキャプチャツールを使用するセクションです。

あなたがデータフィールドにパラメータを見ることができる暗号文があり、我々は、ターゲットエントリポイントとして、このAPIを使用します。

APKを逆コンパイル

本明細書で使用する場合、デコンパイラはJadxあり、Javaコード逆コンパイル操作が容易直接APKすることができ、以下に示すように、GUIインタフェースを有します。

パッケージおよび分析することにより、いくつかのコードは、強化された後、360を決定し、我々は次の砲撃を試してみる必要があります。

より効果的な補強360のプラグフックXposedのフレームワークに基づいているFDex2を使用して砲撃。その原理は、その後、デックスは、オブジェクトのメソッド呼び出しgetDexと輸出によって反射され得るフッククラスローダで、デックスは、ここにAPP実際の実行の一部です。もちろん、すべてではないがフックに補強することができる、また砲撃を意味し、より高度な研究が必要です。

FDex2の使用が活性化Xposedフレームワーク、APPのターゲット選択した後、非常に簡単で、その後、再オープンAPP、デックスは、以下に示すようにファイルが保存されますキャプチャ:

それは何であるDEX?単にJavaコードをクラスファイルにコンパイルされた後に生成、APKプロセスを構築し、入れて、あなたは、Androidの仮想マシンを実行するために、再変換デックスファイルが必要です。

だから我々は、デックスファイルを取得し、あなたは再びJavaコードにコンパイル対抗することができ、我々はまだJadxを使用し、それはまた、デックス形式をサポートしています。

DEXは、我々は、より多くのキーワード検索対象APIにより順次ロードすることができる一つのファイルより上記図を導出し、以下に示すように、オブジェクトコードブロックを見つけるために委託されるので、ボリュームの制限を有します。

コードは通常、アンチエイリアシング、可変であり、メソッド名は、そう、あなたは同じ名前の1万変数を見つけるだろう、メソッド名を検索abcdのされています。幸いJadxは、変数を開いた後、アンチエイリアシングを内蔵しており、方法はユニークな番号に変更され、その検索が同じ名前を持っていない場合。

私たちは、その後、IDEAのスタートコード解析の力で、JadxによってコードGradleのプロジェクトにエクスポートされます。

解析コード

メソッドのほとんどの名前が変更されているとおり、可読性に重大な減少が生じ、最終的に各メソッドを機能、コードは、以下に示すものを推測することはできません。

最初のものに加えて、あなたはそれがより多くの情報を取得することができませんでし外Googleの開発キット、知っています。

だから、コードのこの段階の分析は、完全にあなたの忍耐+ Javaの基本的なスキルのテストで、どちらも必須ではありません。

しかし、尻込みしていない、我々だけでいくつかのヒントに従ってください、あなたは大幅に作業負荷を軽減することができます。分析プロセスより複雑なので、具体的なコード、一部だけ理論的な概要とそこに結合していません。

  1. 実装プロセスを追跡し、ターゲットAPIの先頭から:たとえば、私たちは、キーワードのコードを検索しました、そして彼の党は、IDEAでメソッドの機能を確認するために始めて以来、あなたはダウンすべての方法をクリックします。
  2. 分析は、分析の範囲を減らし、コードのブロックのみが含まれます。要求プロセスは、通常、Requestオブジェクトを構築し、その特定の暗号化パラメータを、単にオブジェクトを構築する前に、限り、我々はRequestオブジェクトを構築し、次に渡される前にパラメータを暗号化されているかを表示するためのコードを見つけて処理、他のすべてのコードを無視します。
  3. :コードブロックの実行の一部をコピーして逆コンパイルコードは、プロジェクトの全体的な実装することはできませんが、しかしコードに長く困難な道のために、私たちは私たちのデバッグを支援するために、実行をコンパイルし、新しいプロジェクトに一緒に一緒に関連するコードで、コピーすることができます。
  4. いくつかのキーワードを検索してみてください:コードはすべて混乱している必要はありません、あなたは、グローバル検索キーワードの一部を試すことができます。たとえば、Javaは一般的に暗号化アルゴリズムを使用し、我々はRSA、AES、MD5、暗号化、検索することができ public_ *キーこれらのキーワードに一致し、定期的に、より良いに見つけることができます。

あなたが暗号化方式を見つけた場合、あなたはそれが独立して行わコピーし、インターフェイスは正常に戻りますかどうかを確認するために、要求をシミュレートすることにより、通過した、独自の暗号化パラメータを構築することができます。

それは間違っている、要求が正常でない場合、あなたは必ずしも間違った場所で見ていない、コード自体があるかもしれないことに留意すべきである、逆コンパイルコードは、これはあなたがAPKを実行し、実行して、異なる結果につながる、どうなるチャンスを持っています。このような場合には、唯一、このような他の手段でSmaliコードフックの読み取りなど、コードの他の手段によって修正することができ、このような状況は、別途提示フォローアップの記事があるだろう、より複雑です。

逆の後

おめでとう、あなたは逆に正常に完了しているコード分析が完了すると、あなたは、このようなアナログのログイン要求として、いくつかの機能を実現することができます。ビルトインのJava RSA / AES暗号化アルゴリズム、サードパーティのライブラリを使用して、ほとんどの暗号化は、他の言語を達成するのに十分でないため、Javaコードを直接使用することをお勧めします。


これまでのところ、この逆のシェアが終了し、逆に、スペース上の理由から、一般的なルーチンを導入するだけで、一般的なプロセス、より詳細セクションのためのいくつかの追加のフォローアップ記事には、この論文では、大きな問題です。

この記事は最初の自己マイクロチャネル公共数:指向プログラミングライフ

応答がより多くのリソースをするための以下の情報を懸念した後、
[情報]のPython / Javaおよび他の学習リソースを入手するに応える
[プラグイン]を返信取得爬虫類一般的に使用されるクロムのプラグインの
返信を[ほとんど]最新のシミュレーションを知っているほとんどのログを知ってもらいます

おすすめ

転載: www.cnblogs.com/zkqiang/p/11470541.html