2.1 Androidのシステムアーキテクチャ
通常は主に準備された見て1、アプリのいくつかのjavaアプリケーション層
APIは、アプリケーション開発者のためのアプリケーションフレームワーク層アプリケーションフレームワーク層2のコア機能にアクセスするためのフレームワークを提供します
android.app:基本的な高レベルのプログラミングモデルとランタイム環境を提供します。
android.content:アクセスして公開するためのさまざまなデバイス上のデータが含まれています。
android.net:ヘルプクラスのネットワークアクセス、通常のjava.netインタフェースよりも。
android.os:システムサービス、メッセージング、およびIPCメカニズムを提供します。
android.provider:Androidのは、コンテンツプロバイダのクラスへのアクセスを提供します。
android.telephony:関連の呼び出しと対話するためのAPIを提供します。
android.view:ユーザインタフェースにフレームベースのインタフェースを提供します。
android.util:操作の機器方法が関与し、例えば、日付と時刻。
3、C、C ++のネイティブライブラリとAndroidのランタイム環境
ランタイムとは何ですか?それは/ランタイム(実行時)ライブラリを理解することができ、プロセッサが同じ層に位置し、ARTはマシンコードのAndroid CPUにあなたが(Javaなど)の高レベルの言語を記述したコードを変換するための責任があり、オペレーティング・システム用のランタイムシステムであり、 Dalvikがそうでない場合は、仮想マシンのLinuxカーネル層として知られているAndroidのランタイム環境は、Androidのネイティブライブラリであるとして、これらのライブラリは、4を書くために考えられていると、LinuxのLinuxのカーネルのカーネルとドライバ層最下層には、C / C ++でAndroidのメモリ管理を構成しました主なセキュリティシステムサービスは、Linuxに依存しているプロセス管理、ネットワークスタック、ドライバモデルなど
四つの成分2.2
1、アクティビティ
アクティビティは、通常、単一の画面(ウインドウ)であります
アクティビティのライフサイクル
onCreate()を作成します
ONSTART()開始
onResume()操作
onPause()スタンバイ
onStop()停止
onDestroy()が破壊
2、サービス
サービスサービスは、単にインターフェイスアクティビティを奪うされ、サービスがユーザーと相互作用しない、バックグラウンドで実行された、独自のプロセスで実行することができ、時間のかかるタスクに対処するために使用することができ、それはまた、他のアプリケーション・プロセスのコンテキストで実行することができます(コンテキスト)内の、他の成分は、上記サービス(サービス)に結合することができます
サービスのライフサイクル、
IBinder [OnBind]の(テントの意図)このメソッドは、パラメータが対象に復帰する意向で、メソッド・サービスを実装する必要がありますIBinder
空のonCreate()サービスが最初に作成されたときに、システムはすぐにコールバックメソッド
サービスがコールバックメソッドに閉鎖される前に、onDestoryを()無効
3、ブロードキャストレシーバー
放送放送の放送受信装置は、用アプリケーション間で情報を転送するための機構であります
ブロードキャストブロードキャスト伝送をフィルタリングする放送受信のための受信機、及び受信に応答して
4、コンテンツプロバイダ
アプリケーション共有空間、異なるアプリケーション間でのデータ共有のための機能
2.3ファイブストレージ
1、SharedPreferencesストレージ
XMLファイル形式で保存されました
SharedPreferencesストレージ・パス:/データ/データ/パッケージ名/ shared_prefs /
2、ローカルストレージ
getDataDirectory()(フォルダ内のSDカードのデータファイル)Androidのデータディレクトリ内のデータを取得します
getDownloadCacheDirectory()ダウンロードキャッシュのディレクトリ(フォルダにダウンロードしたファイルをSDカード)を取得
getExternalStorageDirectory()は、外部ストレージディレクトリは、一般にSDカード(/記憶/ sdcard0)を指す取得しました
getExternalStorageState()は、一般的にSDカードを指し、外部セットの現在の状態を取得します。
getRootDirectory()Androidのルートへのパスを取得します。
3、SQLiteデータベースストレージ
SQLiteはデータベースを作成することは非常に単純なことができ、このクラスで、わずか数はSQLiteOpenHelper Androidはヘルパークラスを提供して非常に優れたメモリ性能を持って使用してSQL言語をサポートしており、軽量なリレーショナルデータベースですSQLiteデータベースおよびストレージ・パスをアップグレード:/データ/データ/パッケージ名/データベース/
4、のContentProviderストレージ
プログラムは完全に自分のデータとContentProvidersにさらされているのContentProvider抽象インタフェースによって達成することができ、また、それが続いて外の世界は、彼らが提供するデータを取得し、「データベース」のようなのContentProviderを言うことである、データベーステーブルのデータが公開される方法に似ています操作がデータベースからデータを取得して基本的に同じである必要がありますが、ほとんどのContentProviderは、データを保持するには、AndroidのファイルシステムやSQLiteデータベースを使用して外の世界を表現するためにURIを「データベース」にアクセスする必要が使用されるが、どのような方法で保存することができます
5、ネットワークストレージ
わずかに
シックス・2.4レイアウト
1、LineartLayout線形レイアウト
2、でframeLayoutフレームレイアウト
3、TableLayoutテーブルレイアウト
4、RelativeLayout相対レイアウト
5、AbsoluteLayout絶対レイアウト
図6に示すように、グリッドレイアウトグリッドレイアウト
2.5 ARMアーキテクチャとx86アーキテクチャ
神などのようなAndroidのエミュレータは、携帯電話は通常、腕、操作アームをシミュレートすることができますが、例外を排除しません
2.6 adbの一般的なコマンド
[1] ADBキル・サーバーのサービスを殺します
[2]開始サーバがサービスを開始
[3] ADBはaa.apk迅速なインストールAPKをインストール
[4] ADBアンインストール+アプリケーションのパッケージ名はすぐにAndroidアプリケーションをアンロードするには
[5] ADBシェルは、携帯電話端末を入力します
端末からファイルを引き出す〜[6] ADBプルあるtest.txt
[7] ADBのプッシュがあるtest.txtを/ mnt / SDカードお使いの携帯電話にコンピュータからファイルをプッシュします
[8] catコマンド
ファイルの内容に猫のdemo.txtをチェック| grepのAAA
猫の/ proc /ような負荷としてメモリマッピング情報の現在のプロセスを表示する[PID] /マップものSOおよびDEX猫の/ proc /ようTracerPid TracerPid、現在のプロセスのステータス情報を表示する[PID] /ステータスが0ことを示していない、0でありますプロセスは、情報の現在のアプリケーションを表示するptrac猫の/ proc / [PID] /ネット/ TCP / tcp6の/ UDP / UDP6ポート番号となっています
ファイルを作成するには、[9]タッチ/ echoコマンド
adbのシェルdumpsys活動は、トップ現在のアプリケーションの情報アクティビティを表示します。
四つの成分が出て印刷を実行しているので、adbのシェルは、現在のシステムをdumpsys
ADB JDWP閲覧デバイスは、アプリケーションのプロセスIDをデバッグすることができます
[10] PS説明:スレッド表示デバイスプロセス情報、指定されたプロセスの値。使用方法:PS | grepをフィルタ処理コンテンツのps -t [PID]
[11] -n PKGNAME / pkgname.activitynameアプリケーションが起動-D(デバッグ実行)を開始しています
[12] [ブロードキャスト動作] -a放送しています
フォワードADB [13] [(遠隔側)プロトコル:ポート番号] [(デバイス側)プロトコル:ポート番号]ポートフォワーディング、場合IDAデバッグ
2.7のAndroidManifest.xmlの決意
このファイルのメインエントランスのAPPの一般的なファイルである、あなたはAPPで、それを起動することができ、それに保存されているいくつかの機密情報があります
2.8使用げっぷスイートキャッチAPPのHTTPSパケット
ローカルIPを監視し、インストールパッケージのげっぷスイートのダウンロード
げっぷスイート上のデータパケットを見ることができるアプリを開き、8080証明書がインストールげっぷスイートをダウンロードしてください:IPにアクセスするために携帯電話のブラウザを開きます。
注意:携帯電話のいくつかのブランドのために、ユーザーが証明書のインポートをロードすることはできません、あなたができるデバイスを根絶する必要があり、
Androidの7.0システムの信頼できる証明した後、証明書は、ユーザー定義のソリューション、ルートデバイスをロードすることはできません、BASE64後の証明書の名前は、従うことを証明のパスを置きます
2.9 drozerフレームワーク
1.インストール
ステップ1:http://mwr.to/drozer Drozer(Windowsインストーラ)からダウンロードしてください
ステップ2:インストールagent.apk ADBのAndroidでagent.apkデバイスをインストールします
2、接続/実機を使用したシミュレータ
nox_adb.exe 127.0.0.1:62001を接続
31415 TCP:31415ポート転送、ポートは31415 ADB前方TCPをDrozerするために使用しました
开启Drozerコンソールdrozerコンソール接続
3、攻撃面を決定するための試験
app.package.attacksurface com.tencent.qqmusicを実行します
攻撃面:15
活動は13を輸出しました
エクスポートされた放送受信機
0コンテンツプロバイダ
エクスポートされた7つのサービスを輸出
2.10 Inspeckage自動分析フレームワーク
1、ダウンロードしてインストール
https://github.com/ac-pm/Inspeckage#information-gathering
図2に示すように、ポートフォワーディングを使用して
ADB前方TCP:8008 TCP:8008
127.0.0.1:8008
設定を無効にFLAG_SECURE
禁止のスクリーンショットは、SSL SSL認証のチェックを外しをオフにするスイッチ
アプリのLogcatリアルタイムビューlogcat出力
ツリービューには、アプリケーションのリアルタイムデータディレクトリを参照し、ローカルにファイルを直接ダウンロードすることができます
基本情報(部品情報、権利情報、ライブラリ情報の共有化)パッケージ情報アプリケーション
共有設定は、ログ:アプリケーションのXMLファイルは、読み込みと書き込み。
ファイル:特定のXMLコンテンツが書か
シリアル化記録のデシリアライズ
共通の暗号化、暗号化と復号化記録(KEY、IV値)
共通ハッシュアルゴリズムのレコードをハッシュ
SQLiteのSQLiteのデータベースレコードの操作
HTTP HTTPリクエストの記録ネットワーク
ファイルシステムのファイルレコードを読み取りおよび書き込み
その他。呼び出しクリップボード、URL.Parse()通話録音のWebViewのWebViewコンテンツ
記録プロセスの間のIPC通信
+フック、ユーザー定義のレコードのフックを実行している間、