科 技 部 自 由 軟 體 專 案 原 始 程 式 碼 使 用 手 冊 Source Code Manual of NSC Open Source Project 可 信 賴 的 App 安 全 應 用 框 架 -App 應 用 服 務 可 移 轉 性 驗 證 Trusted App Framework -Transferability Verification on App MOST 102-2218-E-011-012 研 究 團 隊 主 持 人 : 吳 宗 成 教 授 ( 臺 灣 科 技 大 學 資 管 系 ) 共 同 主 持 人 : 羅 乃 維 副 教 授 ( 臺 灣 科 技 大 學 資 管 系 ) 查 士 朝 副 教 授 ( 臺 灣 科 技 大 學 資 管 系 ) 葉 國 暉 助 理 教 授 ( 東 華 大 學 資 管 系 ) 蔡 國 裕 助 理 教 授 ( 華 夏 技 術 學 院 資 管 系 ) 專 任 研 究 助 理 : 藍 袖 瑛 ( 臺 灣 科 技 大 學 資 管 系 ) Department of Information Management, National Taiwan University of Science and Technology, Taiwan 2014/07/31
目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明... 25 1
版 次 變 更 記 錄 版 次 變 更 項 目 變 更 日 期 1.0 第 一 版 2014.07.31 2
原 始 程 式 碼 類 型 之 使 用 手 冊 一 安 裝 軟 體 套 件 事 前 準 備 本 團 隊 可 信 賴 的 App 安 全 應 用 框 架, 為 建 置 一 個 完 整 的 系 統, 以 下 為 說 明 本 系 統 必 要 的 硬 體 設 備 與 編 譯 的 軟 體 程 式 套 件, 並 說 明 App 檢 測 伺 服 器 (App Screener) App 移 轉 伺 服 器 (App Transfer Notary) App 安 全 強 化 伺 服 器 (App Security Enhancer) 的 路 徑 設 定, 接 下 來, 以 簡 述 方 式 說 明 各 模 組 需 安 裝 軟 體 工 具 :( 一 )App 應 用 服 務 可 移 轉 性 驗 證 模 組 需 使 用 Android Developer Tools v22.6.2 套 件 以 及 Android SDK 4.2.2, 並 使 用 Android Developer Tools 中 的 Eclipse ADT 擴 充 套 件 作 為 主 要 開 發 環 境, 與 Google Nexus 7 設 備, 作 業 版 本 為 Android 4.3 進 行 編 譯 App 移 轉 伺 服 器 (App Transfer Notary) 需 採 用 Tomcat 7.0 MySQL 5.6.17 及 JRE 1.7 ( 二 )App 抗 複 製 攻 擊 模 組 需 Android Developer Tools v22.6.2 套 件 以 及 Android SDK 4.4.2, 並 使 用 Android Developer Tools 中 的 Eclipse ADT 擴 充 套 件 作 為 主 要 開 發 環 境, 與 Google Nexus 7 設 備, 作 業 版 本 為 Android 4.3 進 行 編 譯 App 安 全 強 化 伺 服 器 (App Security Enhancer) 需 採 用 WampServer 套 件 以 安 裝 Apache Server 2.4.9 MySQL 5.6.17 PHPMyAdmin 4.1.14 以 及 PHP 5.5, 採 用 PHPMyAdmin 作 為 MySQL 資 料 庫 管 理 的 操 作 介 面, 並 將 我 們 所 開 發 的 App 來 源 鑑 別 模 組 安 置 於 伺 服 器 中 App 安 全 強 化 伺 服 器 將 與 App 市 集 站 的 資 料 庫 連 線, 更 新 使 用 者 與 購 買 資 訊 並 掛 載 於 MySQL 中, 主 要 提 供 App 開 發 者 儲 存 分 離 程 式 區 段 與 端 末 使 用 者 動 態 載 入 的 服 務 ( 三 ) 行 動 App 資 料 敏 感 度 分 析 與 隱 私 防 護 模 組 以 Android 系 統 作 為 運 行 平 台, 並 以 Java 作 為 模 組 開 發 語 言, 透 過 Google 提 供 的 Android Studio 作 為 程 式 撰 寫 及 測 試 之 整 合 開 發 環 境, 經 過 Android SDK 編 譯 成 副 檔 名 為 Apk 的 檔 案 送 至 端 末 使 用 者 手 機 上 執 行 ( 四 )App 源 碼 完 整 性 保 護 機 制 與 模 組 之 App 檢 測 伺 服 器 需 安 裝 Apache TomCat 7.0 MySQL Server 5.6 軟 體 Spring Tool Suite(ver. 3.5.1.RELEASE) build on Eclipse Kepler SR2(4.3.2) 與 Java SDK Standard Edition 8 Apache maven(ver. 3.x),( 二 ) App 完 整 性 偵 測 應 用 程 式 模 組 需 安 裝 Java SDK Standard Edition 7 Eclipse Android Developer Tools(ADT) with the Android SDK for windows(64-bit) Android SDK 4.0.3, 並 以 Google Nexus 7 設 備, 作 業 版 本 為 Android 4.0.3 進 行 編 譯 3
( 五 ) 行 動 應 用 程 式 資 料 流 限 制 性 驗 證 工 具, 整 體 系 統 架 構 可 分 為 伺 服 器 端 及 行 動 裝 置 端 伺 服 器 端 主 要 進 行 App 檢 測 的 工 作, 後 臺 分 析 功 能 是 採 用 PHP 程 式 語 言 開 發, 並 利 用 Open Source Apktool 工 具 協 助 反 組 譯 動 作, 以 利 進 行 程 式 碼 分 析 行 動 裝 置 端 主 要 讓 使 用 者 或 檢 測 人 員 可 上 傳 檢 測 檔 案 至 檢 測 伺 服 器 端 作 檢 測, 並 且 可 以 透 過 行 動 裝 置 檢 視 分 析 結 果, 是 採 用 Android 系 統 開 發 工 具 作 開 發 以 下 為 編 譯 的 作 業 系 統 與 平 台 列 表, 詳 見 如 下 : 編 譯 的 作 業 系 統 與 平 台 必 要 的 硬 體 設 備 與 環 境 Intel(R) Core(TM) 2 Duo CPU E7500 @ 2.93GHz RAM 為 2 GB 以 上 硬 碟 空 間 為 250G 以 上 Mobile: Mobile: Google Nexus 7 必 要 的 軟 體 與 環 境 作 業 系 統 :Windows 7 Service Pack 1 Ubuntu 13.10 Java SDK Standard Edition 7 Java SDK Standard Edition 8 Android SDK 4.4.2 (API 19) Android Developer Tools v22.6.2 MySQL 5.5 Apache TomCat 7.0 Gradle version 1.12 VirtualBox 4.3.1 WampServer (64 bits & PHP 5.5) 2.5 Spring Tool Suite(ver. 3.5.1.RELEASE) build on Eclipse Kepler SR2(4.3.2) Android Studio 0.6.1 with JRE, Android API 17 Eclipse Android Developer Tools(ADT) with the Android SDK for windows(64-bit) 4
必 要 的 系 統 環 境 設 定 需 求 本 計 畫 主 要 對 Android 應 用 程 式 作 分 析,Android 其 基 礎 是 Java 程 式 語 言, 因 此, 需 要 設 定 Java 相 關 的 編 譯 工 具 及 系 統 環 境, 其 安 裝 步 驟 如 下 : 1. 請 到 http://www.oracle.com/technetwork/java/index.html 下 載 Java SDK Standard Edition 8, 安 裝 Java SDK Standard Edition 8 此 處 所 使 用 的 版 本 為 8 Update 5 1. 選 擇 完 整 的 安 裝 功 能 並 執 行 安 裝 5
2. 選 擇 安 裝 的 路 徑, 此 處 為 程 式 預 設 路 徑 3. 安 裝 完 成 6
2. 下 載 並 安 裝 Spring Tool Suite(ver. 3.5.1.RELEASE) build on Eclipse Kepler SR2(4.3.2) 請 到 http://spring.io/tools/sts/all 下 載 Spring Tool Suite, 選 擇 需 要 的 版 本 下 載 並 安 裝 Apache maven(ver. 3.x), 到 http://maven.apache.org/download.cgi 下 載 Apache Maven 7
解 壓 縮 並 放 至 欲 存 放 的 目 錄 下 3. 下 載 並 安 裝 Java SDK Standard Edition 7 請 到 http://www.oracle.com/technetwork/java/index.html 下 載 Java SDK Standard Edition 7 安 裝 Java SDK Standard Edition 7 此 處 所 使 用 的 版 本 為 7 Update 60 8
選 擇 完 整 的 安 裝 功 能 並 執 行 安 裝 選 擇 安 裝 的 路 徑, 此 處 是 程 式 預 設 路 徑 9
安 裝 完 成 4. 下 載 Eclipse Android Developer Tools(ADT) with the Android SDK for windows(64-bit), 並 安 裝 Android SDK 4.3 請 到 http://developer.android.com/sdk/index.html 下 載 Eclipse Android Developer Tools(ADT) with the Android SDK for windows 10
選 擇 適 合 的 系 統 類 型 解 壓 縮 並 放 至 欲 存 放 的 目 錄 下 11
到 存 放 目 錄 下 開 啟 eclipse.exe 設 定 Android SDK 路 徑, 在 Eclipse 選 擇 Windows->Preferences 選 項 12
請 在 跳 出 的 新 視 窗 中 選 擇 Android 標 籤, 按 下 Browse 選 擇 Android SDK 的 目 錄, 此 處 為 C:\Users\IDSL\Desktop\adt-bundle- windows-x86_64-20130917\sdk, 按 下 OK 完 成 設 定 在 Eclipse 選 擇 Window->Android SDK Manager 選 項 請 在 跳 出 的 新 視 窗 中 勾 選 Android 4.3 (API18), 按 下 Install, 接 受 授 權 條 款 後 再 按 下 Install 即 可 13
5. App 抗 複 製 攻 擊 模 組 以 WampServer (64 bits & PHP 5.5) 2.5 套 件 為 開 發 工 具, 其 安 裝 步 驟 如 下 : 同 意 使 用 者 條 款, 選 擇 我 接 受 授 權 條 款 並 繼 續 下 一 步 14
選 擇 安 裝 路 徑, 預 設 安 裝 路 徑 為 C 槽 之 下, 並 繼 續 下 一 步 等 待 安 裝 相 關 套 件 中 15
選 擇 Google Chrome 為 預 設 編 譯 瀏 覽 器 設 定 PHP 參 數 16
安 裝 完 成, 點 擊 完 成 6. 下 載 並 安 裝 VirtualBox 4.3.1, 其 步 驟 如 下 : 下 載 VirtualBox 4.3.10 軟 體 17
安 裝 版 本 為 VirtualBox 4.3.10 Windows hosts 選 擇 完 整 的 安 裝 功 能 與 安 裝 路 徑 並 執 行 安 裝, 此 處 是 程 式 預 設 路 徑 18
客 製 化 設 置, 是 否 在 桌 面 建 立 快 捷 是 否 在 工 作 列 建 立 快 捷 是 否 註 冊 相 關 文 件 此 畫 面 說 明 在 安 裝 VirtualBox 網 路 的 時 候, 網 路 會 暫 時 不 通 19
點 選 Install 進 行 安 裝 等 待 軟 體 安 裝 設 定 20
10. 設 定 環 境 變 數 ( 按 下 開 始, 在 電 腦 按 下 滑 鼠 右 鍵, 選 擇 內 容, 選 擇 進 階 系 統 設 定 ) 點 選 頁 籤 進 階, 點 擊 環 境 變 數 21
變 數 選 擇 到 Path, 然 後 點 編 輯 變 數 值 的 最 後 加 上 JDK 的 安 裝 目 錄 內 的 bin 資 料 夾 路 徑 預 設 位 置 ; C:\Program Files\Java\jdk1.8.0_11\bin ( 注 : 使 用 分 號 隔 開 ) 22
11. 開 始 安 裝 Eclipse, 先 至 官 方 網 站 :http://www.eclipse.org/downloads/, 依 照 Windows 位 元 選 擇 下 載 "Eclipse IDE for Java Developers" 將 其 下 載 好 的 檔 案 解 壓 縮 後 打 開, 打 開 eclipse 執 行 檔 選 擇 工 作 區 資 料 夾, 設 定 未 來 程 式 將 會 放 置 的 地 方 23
Eclipse 歡 迎 頁 面 24
二 編 譯 流 程 說 明 各 子 系 統 模 組 安 裝 程 式 與 路 徑 設 定 說 明 本 計 畫 在 App 移 轉 伺 服 器 主 機 端 需 安 裝 Tomcat 7, 其 安 裝 方 式 如 子 計 畫 一 系 統 安 裝 使 用 手 冊 操 作 文 件 App 移 轉 伺 服 器 主 機 端 設 定 步 驟 如 下 : 控 制 台 點 選 Windows 防 火 牆 點 選 允 許 的 程 式, 同 時 允 許 私 人 與 公 用 網 域 皆 可 使 用 設 定 Web Service 伺 服 器 路 徑 :C:\Tomcat-7 資 料 庫 路 徑 :C:\wamp\bin\mysql\mysql5.6.17 網 頁 端 開 發 路 徑 :C:\Tomcat-7\webapps\notary 25
本 子 計 畫 在 App 安 全 強 化 伺 服 器 主 機 端, 需 安 裝 WampServer 套 件, 其 安 裝 方 式 如 子 計 畫 二 安 裝 使 用 手 冊 操 作 文 件 App 安 全 強 化 伺 服 器 主 機 端 設 定 步 驟 如 下 : 設 定 允 許 程 式 通 過 Windows 防 火 牆 控 制 台 點 選 Windows 防 火 牆 點 選 允 許 的 程 式, 同 時 允 許 私 人 與 公 用 網 域 皆 可 使 用 設 定 Web Service 伺 服 器 路 徑 :C:\wamp\bin\apache\apache2.4.9 資 料 庫 路 徑 :C:\wamp\bin\mysql\mysql5.6.17 網 頁 端 開 發 路 徑 :C:\wamp\bin\php\php5.5.12 26
開 啟 Apache 的 httpd.conf 文 件, 對 著 WampServer 服 務 點 擊 滑 鼠 左 鍵 滑 選 Apache 點 擊 httpd.conf 以 開 啟 設 定 檔 作 修 改 修 改 的 httpd.conf 設 定 檔, 以 允 許 對 外 連 線 將 程 式 代 碼 修 改 如 下 表 : Order Allow,Deny Allow from all 27
修 改 phpmyadmin.conf 設 定, 以 開 啟 存 取 權 限 開 啟 c:\wamp\alias\phpmyadmin.conf 後, 將 程 式 代 碼 修 改 如 下 表 : <Directory "c:/wamp/apps/phpmyadmin 4.1.14/"> Options Indexes FollowSymLinks MultiViews AllowOverride all Order Deny,Allow Allow from all </Directory> 更 新 變 更 設 定 檔, 修 改 後 重 新 啟 動 WampServer 所 有 服 務, 以 套 用 更 新 28
匯 入 資 料 庫 匯 入 位 置 :MySQL 資 料 庫 名 稱 :islab 本 子 計 畫 模 組 使 用 Android Studio 進 行 開 發 並 透 過 Gradle 編 譯 程 式 碼, 匯 入 專 案 之 方 式 及 編 譯 步 驟 說 明 如 下 : 編 譯 步 驟 及 注 意 事 項 匯 入 專 案 至 Android Studio 編 譯 模 組 選 取 欲 執 行 的 終 端 設 備 監 視 執 行 訊 息 操 作 終 端 設 備 上 的 模 組 介 面 匯 入 專 案 至 Android Studio 啟 動 Android Studio, 並 且 選 擇 模 組 專 案 的 資 料 夾 進 行 匯 入 29
選 擇 專 案 資 料 夾 目 錄 之 位 置 匯 入 專 案 編 譯 模 組 圖 : 工 具 列 30
選 取 欲 執 行 的 終 端 設 備 監 視 執 行 訊 息 在 Android Studio 下 方 區 域 可 監 看 運 行 模 組 時 的 相 關 訊 息 31
端 末 使 用 者 安 裝 專 案 程 式 步 驟 : 本 計 畫 使 用 Google Nexus 7, 作 業 版 本 為 Android 4.2.2 平 板 電 腦 作 為 開 發 工 具, 如 需 將 開 發 完 成 之 程 式 安 裝 至 平 板 電 腦 其 步 驟 如 下, 以 安 裝 展 示 程 式 猜 猜 紅 心 A 為 例 : 1. 下 載 開 發 完 成 之 程 式, 開 啟 App 市 集 站 點 選 猜 猜 紅 心 A (Guess A of hearts) 點 擊 下 載 2. 安 裝 開 發 完 成 之 程 式, 顯 示 安 裝 畫 面 點 選 安 裝 32
3. 畫 面 顯 示 已 安 裝 完 成 應 用 程 式 點 選 開 啟 以 啟 動 猜 猜 紅 心 A 4. 開 啟 猜 猜 紅 心 A 後, 將 檢 查 是 否 開 啟 網 路 連 線 設 置, 以 33
5. 點 擊 紙 牌, 以 利 執 行 後 續 模 組 6. 動 態 載 入 模 組 將 傳 送 資 訊 給 App 來 源 鑑 別 模 組, 回 傳 是 否 被 賦 予 存 取 分 離 程 式 片 段 的 權 限 以 合 法 的 端 末 使 用 者 為 例, 會 顯 示 鑑 別 成 功, 將 繼 續 程 式 提 示 訊 息, 動 態 載 入 模 組 將 顯 示 載 入 後 的 翻 牌 畫 面 34
7. 非 法 的 端 末 使 用 者 將 被 App 來 源 鑑 別 模 組 拒 絕 存 取 權 限, 並 顯 示 身 分 鑑 別 失 敗, 程 式 將 停 止 執 行 的 警 示 視 窗, 點 擊 OK 結 束 程 式 8. 端 末 使 用 者 A 若 需 移 轉 App 至 端 末 使 用 者 B, 可 點 選 App 應 用 服 務 可 移 轉 性 驗 證 35
9. 顯 示 App 應 用 服 務 可 移 轉 性 驗 證 畫 面, 選 擇 移 轉 猜 猜 紅 心 A App 檔 點 選 確 定 10. 顯 示 請 輸 入 帳 號 密 碼 畫 面 36
11. 端 末 使 用 者 A 輸 入 個 人 帳 號 密 碼 資 訊 與 接 收 者 帳 號 點 選 確 定 12. 顯 示 此 App 猜 猜 紅 心 A 可 進 行 合 法 移 轉 畫 面 37
13. 訊 息 視 窗 顯 示 即 時 傳 輸 中... 畫 面 14. 端 末 使 用 者 B 訊 息 視 窗 同 時 顯 示 正 在 接 收 傳 輸... 畫 面 38
15. 傳 輸 完 成 後 端 末 使 用 者 B 訊 息 視 窗 顯 示 傳 輸 成 功 畫 面 16. 端 末 使 用 者 B 的 行 動 裝 置 顯 示 選 擇 要 使 用 的 應 用 程 式 畫 面 點 選 App 應 用 服 務 可 移 轉 性 驗 證 選 項 39
17. 端 末 使 用 者 B 的 行 動 裝 置 顯 示 請 輸 入 帳 號 密 碼 畫 面, 必 須 輸 入 向 App Market 註 冊 的 帳 號 與 密 碼 18. 端 末 使 用 者 B 輸 入 個 人 帳 號 密 碼 點 選 確 定 40
19. 顯 示 移 轉 成 功 畫 面, 表 示 已 經 端 末 使 用 者 A 成 功 移 轉 App 給 端 末 使 用 者 B 點 選 關 閉 20. 顯 示 安 裝 畫 面 點 選 安 裝, 即 可 執 行 安 裝 功 能 41
21. 顯 示 已 安 裝 完 成 應 用 程 式 點 選 開 啟, 啟 動 猜 猜 紅 心 A 啟 動 之 後, 便 搭 配 子 計 畫 二 的 所 開 發 的 動 態 載 入 模 組 與 App 來 源 鑑 別 模 組 執 行 App 22. 在 端 末 使 用 者 裝 置, 可 選 擇 行 動 App 資 料 敏 感 度 分 析 與 隱 私 保 護 模 組, 點 選 畫 面 中 央 的 Monitor 按 鈕 開 始 監 控 啟 用 前 的 畫 面, 提 醒 使 用 者 啟 用 模 組 啟 動 模 組 後 的 頁 面, 畫 面 出 現 Enable 代 表 模 組 啟 動 並 且 畫 面 改 為 綠 色 42
23. 使 用 者 權 重 設 定 頁 面 : 設 定 資 料 類 別 (Label) 及 資 料 值 (Value) 並 且 拉 動 progress bar 來 給 予 權 重, 最 後 點 選 Add 新 增 24. 報 告 頁 面 : 模 組 列 出 所 有 系 統 預 載 以 外 的 應 用 程 式 並 且 告 知 使 用 者 是 否 有 隱 私 洩 漏 情 況, 點 選 個 別 ListView 可 再 顯 示 詳 細 資 訊 43
25. 即 時 偵 測 提 醒 : 當 使 用 者 執 行 應 用 時, 若 模 組 偵 測 到 隱 私 洩 漏 的 情 形, 將 在 螢 幕 下 方 跳 出 提 醒 通 知 本 系 統 伺 服 器 端 程 式 使 用 Spring Tool Suite(3.5.1.RELEASE) 為 開 發 環 境, 其 編 譯 流 程 如 下 : 匯 入 專 案 至 Spring Tool Suite(STS) 在 Spring Tool Suite 進 行 編 譯 匯 入 專 案 至 Spring Tool Suite 1. 啟 動 STS, 並 且 選 擇 專 案 源 碼 所 在 的 Workspace 44
2. 待 STS 確 實 啟 動 後, 點 選 上 方 的 Window Preferences 45
3. 在 左 側 列 表, 選 擇 Java Installed JREs, 確 認 STS 是 否 有 指 名 使 用 Java8, 若 沒 有, 請 自 行 點 右 方 的 Add 加 入 jdk 的 目 錄 即 可 46
4. 至 左 方 列 表, 選 擇 Maven Installations, 按 下 Add, 選 擇 Maven 的 所 在 路 徑 5. 至 左 方 列 表, 選 擇 Maven User Settings, 右 邊 按 下 Browse, 選 擇 Maven 目 錄 下 的 conf\settings.xml 47
6. 關 閉 Preferences 視 窗 ( 請 記 得 將 先 前 設 定 都 apply), 選 擇 File import 7. 於 Import 視 窗 中, 選 擇 Existing Maven Projects ( 可 於 提 示 框 鍵 入 ma 以 利 搜 尋 ), 並 按 下 Next 48
8. 選 擇 原 始 碼 所 在 之 workspace, 點 選 Next, 並 按 Finish 49
9. 在 package explorer 區 塊 可 以 看 到 專 案 已 被 成 功 匯 入 在 Spring Tool Suite 進 行 編 譯 1. 在 任 一 專 案 上 點 選 右 鍵 Maven Update Project 50
2. 並 勾 選 要 更 新 的 專 案 ( 可 全 勾 選, 一 次 做 完 ) 3. 右 鍵 點 選 任 一 專 案, 選 擇 Debug As Spring Boot App 來 執 行 專 案 51
4. 若 沒 有 跳 出 錯 誤 即 表 示 服 務 正 常 執 行 本 系 統 之 Mobile 端 應 用 程 式 使 用 Eclipse Android Developer Tools(ADT) with the Android SDK for windows(64-bit) 為 開 發 環 境, 其 編 譯 流 程 如 下 : 安 裝 Google Galaxy Nexus7 驅 動 程 式 匯 入 專 案 至 Eclipse 在 Google Galaxy Nexus7 進 行 編 譯 安 裝 Google Galaxy Nexus7 驅 動 程 式 1. 在 Eclipse 選 擇 Window Android SDK 項 目 52
2. 在 跳 出 的 新 視 窗 中 選 擇 Google USB Driver, 並 按 下 Install 1 package 3. 在 跳 出 的 新 視 窗 中 選 擇 Accept All 選 項, 並 按 下 Install 完 成 安 裝 53
4. 在 Google Galaxy Nexus7 的 首 頁 畫 面 按 下 Menu 按 鈕, 選 擇 設 定 開 發 人 員 選 項, 勾 選 USB 偵 錯 項 目 5. 當 Google Galaxy Nexus7 透 過 USB 傳 輸 線 連 接 到 電 腦 時,Google Galaxy Nexus7 畫 面 會 出 現 是 否 允 許 USB 偵 錯 訊 息, 按 下 確 定 即 可 54
匯 入 專 案 至 Eclipse 開 啟 Eclipse 並 匯 入 本 專 案 在 跳 出 的 新 視 窗 中 選 擇 Existing Projects into Workspace 項 目, 並 按 下 Next 55
在 跳 出 的 新 視 窗 中 選 擇 本 專 案 所 在 的 目 錄, 此 處 為 C:\Users\IDSL\Desktop\ NSC_AIDA_Project, 勾 選 Copy projects into workspace 並 按 下 Finish 即 可 在 Google Galaxy Nexus7 進 行 編 譯 匯 入 完 成 後 進 行 編 譯 動 作, 在 匯 入 的 專 案 上 按 右 鍵 Run As->Android Application 56
在 新 跳 出 的 視 窗 中 選 擇 欲 進 行 編 譯 的 設 備 並 按 下 OK 即 可 當 Google Nexus7 出 現 此 畫 面, 原 始 碼 即 完 成 編 譯 並 安 裝 至 手 機 端 57
本 系 統 之 Mobile 端 應 用 程 式 使 用 Google Nexus 7, 作 業 版 本 為 Android 4.3 的 平 板 電 腦 作 為 開 發 工 具, 如 需 將 開 發 完 成 之 應 用 程 式 安 裝 至 平 板 電 腦, 其 安 裝 步 驟 與 操 作 方 式 如 下 : I. 下 載 並 安 裝 ES 文 檔 瀏 覽 器 II. 搜 尋 並 安 裝 AIDA_Integrity_Checker.apk III. 開 啟 與 操 作 應 用 程 式 AIDA_Integrity_Checker I. 下 載 並 安 裝 ES 文 檔 瀏 覽 器 I-1. 開 啟 Google Play 商 店 並 搜 尋 ES 文 檔 瀏 覽 器 I-2. 點 選 並 安 裝 ES 文 檔 瀏 覽 器 58
搜 尋 並 安 裝 AIDA_Integrity_Checker.apk 開 啟 ES 文 檔 瀏 覽 器 並 搜 尋 檔 案 AIDA_Integrity_Checker.apk 點 選 並 安 裝 AIDA_Integrity_Checker.apk 59
開 啟 與 操 作 應 用 程 式 AIDA_Integrity_Checker 安 裝 AIDA_Integrity_Checker.apk 完 成 後, 點 選 開 啟 進 入 應 用 程 式 點 選 Browse Apkfile 鈕 進 入 選 擇 apk 檔 案 畫 面, 以 及 點 選 存 放 apk 檔 案 的 資 料 夾 路 徑 60
點 選 要 進 行 App 源 碼 完 整 性 檢 測 的 apk 檔 案 點 選 Verify Apkfile 鈕 之 後, 會 將 指 定 的 apk 檔 案 解 析 並 傳 送 相 關 資 料 到 App 檢 測 伺 服 器 進 行 完 整 性 檢 測 61
檢 測 完 成 後,App 檢 測 伺 服 器 會 依 apk 檔 案 的 完 整 性, 回 傳 以 下 三 種 可 能 的 結 果 (1. 滿 足 App 資 料 完 整 性 檢 測 2. 檢 測 伺 服 器 尚 無 此 App 資 料 3. 此 App 有 被 修 改 過, 安 裝 後 恐 有 安 全 疑 慮 ) 告 知 使 用 者 62
本 計 畫 開 發 之 工 具 有 檢 測 伺 服 器 (Server 端 ) 及 使 用 者 透 過 行 動 裝 置 設 備 上 傳 檢 測 檔 案 ( 行 動 裝 置 端 ), 以 下 分 別 對 Server 端 及 行 動 裝 置 端 的 編 譯 作 說 明 Server 端 編 譯 步 驟 及 注 意 事 項 本 系 統 Server 端 程 式 提 供 ova 檔 案, 可 供 使 用 者 直 接 匯 入 Virtual Box 中, 匯 入 流 程 分 (1) 匯 入 ova 檔 案 及 (2) 設 定 網 路 轉 接 port, 相 關 的 說 明 如 下 : (1) 開 啟 Virtual Box, 點 選 檔 案 匯 入 應 用 裝 置 1. Virtual Box, 點 選 檔 案 匯 入 應 用 裝 置 63
2. 選 擇 ova 檔 案 路 徑, 此 處 為 D:\SP06\20140717.ova, 選 擇 下 一 步 3. 勾 選 重 新 初 始 化 所 有 網 路 卡 的 MAC 位 址, 點 選 匯 入 64
(2) 設 定 網 路 轉 接 埠 1. 匯 入 完 成 後, 對 虛 擬 機 器 SP06 點 選 右 鍵 設 定 值 網 路 進 階 連 接 埠 轉 送 65
2. 點 選 插 入 新 的 規 則, 設 定 名 稱 為 XAMPP 協 定 為 TCP 主 機 連 接 埠 2222 客 體 連 接 埠 為 80, 最 後 點 選 確 定 66
行 動 裝 置 端 編 譯 步 驟 及 注 意 事 項 本 系 統 之 Mobile 端 應 用 程 式 使 用 Eclipse Android Developer Tools(ADT) with the Android SDK for windows(64-bit) 為 開 發 環 境, 其 編 譯 流 程 包 含 有 (1) 安 裝 Google Galaxy Nexus7 驅 動 程 式 (2) 匯 入 專 案 至 Eclipse 及 (3) 在 Google Galaxy Nexus7 進 行 編 譯, 各 流 程 細 節 說 明 如 下 : 安 裝 Google Galaxy Nexus7 驅 動 程 式 1. 在 Eclipse 選 擇 Window->Android SDK 項 目 2. 在 跳 出 的 新 視 窗 中 選 擇 Google USB Driver, 並 按 下 Install 1 package 67
3. 在 跳 出 的 新 視 窗 中 選 擇 Accept All 選 項, 並 按 下 Install 完 成 安 裝 4. 在 Google Galaxy Nexus7 的 首 頁 畫 面 按 下 Menu 按 鈕, 選 擇 設 定 -> 開 發 人 員 選 項, 勾 選 USB 偵 錯 項 目 68
5. 當 Google Galaxy Nexus7 透 過 USB 傳 輸 線 連 接 到 電 腦 時,Google Galaxy Nexus7 畫 面 會 出 現 是 否 允 許 USB 偵 錯 訊 息, 按 下 確 定 即 可 匯 入 專 案 至 Eclipse 1. 開 啟 Eclipse 並 匯 入 本 專 案 69
2. 在 跳 出 的 新 視 窗 中 選 擇 Existing Projects into Workspace 項 目, 並 按 下 Next 3. 在 跳 出 的 新 視 窗 中 選 擇 本 專 案 所 在 的 目 錄, 此 處 為 C:\Users\Marks\Desktop\ MADRV, 勾 選 Copy projects into workspace 並 按 下 Finish 即 可 70
在 Google Galaxy Nexus7 進 行 編 譯 1. 匯 入 完 成 後 進 行 編 譯 動 作, 在 匯 入 的 專 案 上 按 右 鍵 Run As->Android Application 2. 在 新 跳 出 的 視 窗 中 選 擇 欲 進 行 編 譯 的 設 備 並 按 下 OK 即 可 71
3. 當 Google Galaxy Nexus7 出 現 此 畫 面, 原 始 碼 即 完 成 編 譯 並 安 裝 至 手 機 端 72
本 計 畫 在 App 檢 測 伺 服 器 (App Screener) 主 機 端 需 安 裝 TomCat 7.0 與 MySQL 5.6 App 檢 測 伺 服 器 主 機 端 網 路 爬 蟲 模 組 之 設 定 與 編 譯 步 驟 如 下 : Crawler 設 定 : 爬 蟲 運 行 週 期 甲 檔 案 名 稱 :CrawlerScheduledTask 乙 檔 案 路 徑 : 在 STS 中, 匯 入 程 式 原 始 碼 專 案 (apvs-crawler), 並 於 apvs-crawler\src\main\java\edu\ntust\apvs\crawler\task 資 料 夾 下, 開 啟 CrawlerScheduledTask.java, 如 下 圖 紅 框 所 示 : 只 需 更 改 右 邊 紅 框 中 的 數 字 即 可, 預 設 值 為 86400000( 毫 秒 ), 即 每 24 小 時 爬 蟲 便 會 執 行 一 次, 請 視 需 求 自 行 調 整 Crawler 設 定 : 爬 蟲 資 源 目 錄 檔 案 名 稱 :APVSConstantDescriptor 檔 案 路 徑 : 在 STS 中, 匯 入 程 式 原 始 碼 專 案 (apvs-crawler), 並 於 apvs-crawler\src\main\java\edu\ntust\apvs\crawler\util 資 料 夾 下, 開 啟 APVSConstantDescriptor.java, 如 下 圖 紅 框 所 示 : 73
其 中 會 需 要 修 改 的 參 數 有 四 樣, 分 述 如 下 : CRAWLER_HOME: 爬 蟲 程 式 會 存 取 的 根 目 錄, 程 式 中 會 用 到 的 靜 態 資 源 都 位 於 此 目 錄 之 下 LIST_LOCATION: 放 置 欲 抓 取 之 apk 檔 案 的 package name 名 單 檔 的 目 錄 APK_FILE_LOCATION: 爬 蟲 由 網 路 上 抓 取 到 的 apk 檔 案 之 儲 存 路 徑 LIST_FOR_CRAWL: 欲 抓 取 之 Apk package name 清 單, 預 設 為 crawl_list.txt 以 上, 設 定 完 畢 後, 請 參 照 文 件 的 編 譯 流 程 說 明 編 譯 步 驟 及 注 意 事 項 在 Spring Tool Suite 進 行 編 譯 部 分 重 新 編 譯 程 式, 編 譯 成 功 後 即 可 使 用 而 LIST_FOR_CRAWL 變 數 中 所 指 的 清 單 crawl_list.txt 之 內 容 範 例 則 如 下 所 示 : 74
假 設 欲 指 使 爬 蟲 模 組 去 抓 取 Evernote 這 個 App 之 Apk 檔 案 並 且 進 行 萃 取 驗 證 相 關 資 料 之 動 作, 首 先 請 先 連 上 Google Play, 並 且 搜 尋 Evernote: 在 圖 中, 請 將 url 列 上,id 部 分 的 變 數 複 製 起 來 並 且 貼 入 crawl_list.txt 中 即 可, 如 下 圖 所 示 : 每 個 Apk 的 ID 都 用 Enter 鍵 隔 開 ( 一 行 一 個 ) 如 此 一 來, 在 下 次 crawler 運 行 的 時 候, 就 會 去 抓 取 指 定 的 Apk 檔 案 並 進 行 相 關 作 業 了 75
Mobile 端 與 App 檢 測 伺 服 器 主 機 端 連 線 和 傳 送 資 料 之 IP 位 址 設 定 與 編 譯 步 驟 如 下 : 開 啟 Eclipse Android Developer Tools 並 載 入 專 案 檔 案 NSC_AIDA_Project 檔 案 名 稱 :AIDA_PostMessageTask 檔 案 路 徑 :NSC_AIDA_Project\src\aida_integrity_checker 資 料 夾 下, 開 啟 AIDA_PostMessageTask.java, 如 下 圖 紅 框 所 示 : 76
其 中 如 欲 修 改 連 接 App 檢 測 伺 服 器 IP 位 址 的 參 數, 只 需 將 final String url = "http://140.118.19.68:21234/verifyapkfile"; 雙 引 號 內 的 IP 位 址 參 數 進 行 修 改, 如 下 圖 紅 框 所 示 : 修 改 完 成 後, 將 Google GALAXY Nexus 7 與 電 腦 用 USB 傳 輸 線 連 接, 在 NSC_AIDA_Project 按 右 鍵, 點 選 Run As->Android Application 進 行 重 新 編 譯 並 在 新 跳 出 的 視 窗 中 選 擇 欲 進 行 編 譯 的 設 備 按 下 OK 即 可 77