安卓手游逆向

一、環境安裝

1.1、安裝Java環境 

1.2、安裝SDK環境 

1.3、安裝NDK環境 

二、APK

2.1、文件結構

  

2.2、打包流程 

2.3、安裝流程

應用安裝涉及目錄:

system/app ----->系統自帶的應用程序,獲得adb root權限才能刪除。

data/app ------->用戶程序安裝的目錄,安裝時把apk文件復制到此目錄。

 

data/data -------> 存放應用程序的數據

 

data/dalvik-cache ------>將apk中dex文件安裝到dalvik-cache目錄下(dex文件是dalvik虛擬機的可執行文件,其大小約為原始apk文件大小的四分之一) 。

安裝過程:

復制apk安裝包到data/app目錄下,解壓并掃描安裝包,把dex文件保存到dalvik-cache目錄,并data/data目錄下創建對應的應用數據目錄。

三、虛擬機

1、Java虛擬機--->Java字節碼 ---->基于棧架構。

2、dalvik虛擬機(jit機制)---->android5.0以下---->dalvik字節碼---->基于寄存器架構。

3、art虛擬機(aot機制)---->android5.0以上

注意:

.dex ---->dexopt--->.odex dalvik加載執行的odex文件。

.dex --->dex2oat --->.oat art加載執行的是oat文件。

四、Java逆向知識

4.1、dex文件反匯編工具

.java ---> .class ---->.dex ---->smail。

在這個過程中會使用三種工具

使用dx.jar工具將.class文件打包成.dex文件 

使用baksmail.jar工具將.dex文件反編譯成.smail文件

使用smail.jar工具將.smail文件打包成.dex文件。

4.2、dalvik字節碼

數據類型對應

dalvik            Java

V ------------->void

Z ------------->boolean           

B ------------->byte          

C ------------->char           

S ------------->short        

I ------------->int

J ------------->long

F------------->float

D------------->double

L------------->java類類型

[------------->數組類型

字段

Lorg/cocos2dx/lua/AppActivity;->handler:Landroid/os/Handler;

   包名                      類名               變量名              類型

方法:                

Lpackage/name/ObjectName;->MethodName(III)Z

Lpackage/name/ObjectName:表示的是當前這個方法所在的類。

L是Java類類型,package/name/是包名,ObjectName是類名MethodName這部分表示的方法名

(III)Z:表示的是方法的簽名信息,由方法參數列表(III)和返回值(Z)構成。

(III)表示三個int型參數;Z表示返回值類型為boolean。

4.3、dalvik指令集

基礎字節碼:名稱后綴/字節碼后綴 目的寄存器 源寄存“-”這個符號在有的指令里面沒有的名稱后綴是wide,表示數據寬度為64位,字節碼后綴是from16,表示源寄存器為16位。

如move-wide/from16 vAA,VBBBB

move為基礎字節碼,即opcode、wide為名稱后綴,標識指令操作的數據寬度為64位、from16為字節碼后綴,標識源為一個16位的寄存器引用變量、vAA為目的寄存器,它始終在源的前面,取值范圍為v0~v255 vBBBB為源寄存器,取值范圍為v0~v65535。

dalvik指令集中大多數指令用到了寄存器作為目的的操作數或源操作數,其中A/B/C/D/E/F/G/H代表一個4位數值,AA/BB/CC...../GG代表一個8位的數值,A

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75974.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75974.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75974.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VSCode Continue 擴展踩坑記錄

Trae 是一款很優秀的 AI 開發工具,但目前支持的平臺還較少,比如不支持 Win7,不支持 Linux,為了在這些平臺上進行開發,我需要尋找一個替代品。經過網上搜索,選擇了 VSCode Continue 擴展,但在使…

Elasticsearch:AI 助理 - 從通才到專才

作者:來自 Elastic Thorben Jndling 在 AI 世界中,關于構建針對特定領域定制的大型語言模型(large language models - LLM)的話題備受關注 —— 不論是為了更好的安全性、上下文理解、專業能力,還是更高的準確率。這個…

【ARM】MDK燒錄提示Error:failed to execute‘ ‘

1、 文檔目標 解決在燒錄程序的時候,因為選擇了錯誤的燒錄方式導致下載失敗的情況。 2、 問題場景 在燒錄程序的時候出現了提示:“Error:failed to execute ’ ”(如圖2-1)。檢測Target->Debug配置發現沒有問題&a…

系統分析師(六)-- 計算機網絡

概述 TCP/IP 協議族 DNS DHCP 網絡規劃與設計 邏輯網絡設計 物理網絡設計 題目 層次化網絡設計 網絡冗余設計 綜合布線系統 IP地址 網絡接入技術 其他網絡技術應用 物聯網

優化運營、降低成本、提高服務質量的智慧物流開源了

智慧物流視頻監控平臺是一款功能強大且簡單易用的實時算法視頻監控系統。它的愿景是最底層打通各大芯片廠商相互間的壁壘,省去繁瑣重復的適配流程,實現芯片、算法、應用的全流程組合,從而大大減少企業級應用約95%的開發成本可通過邊緣計算技術…

從One-Hot到TF-IDF:NLP詞向量演進解析與業務實戰指南(一)

從One-Hot到TF-IDF:詞向量演進之路 開場白: 想象一下,你試圖用Excel表格分析《紅樓夢》的情感傾向——每個字詞都是孤立的單元格,計算機看到的只有冰冷的0和1,而“黛玉葬花”的凄美意境卻消失得無影無蹤。這就是NLP工…

2. kubernetes操作概覽

以下是 Kubernetes 的核心操作概覽,涵蓋常用命令、資源管理和典型場景的操作流程: 1. 核心操作工具 (1) kubectl 命令行工具 Kubernetes 的所有操作均通過 kubectl 實現,常用命令如下: 操作類型命令示例作用說明查看資源狀態ku…

從Ampere到Hopper:GPU架構演進對AI模型訓練的顛覆性影響

一、GPU架構演進的底層邏輯 AI大模型訓練效率的提升始終與GPU架構的迭代深度綁定。從Ampere到Hopper的演進路徑中,英偉達通過?張量核心升級?、?顯存架構優化?、?計算范式革新?三大技術路線,將LLM(大語言模型)訓練效率提升至…

p2p的發展

PCDN(P2P內容分發網絡)行業目前處于快速發展階段,面臨機遇與挑戰并存的局面。 一、發展機遇 技術融合推動 邊緣計算與5G普及:5G的高帶寬、低延遲特性與邊緣計算技術結合,顯著提升PCDN性能,降低延遲&#x…

計算機視覺與深度學習 | 視覺里程計(Visual Odometry, VO)學習思路總結

視覺里程計(Visual Odometry, VO)學習思路總結 視覺里程計(VO)是通過攝像頭捕獲的圖像序列估計相機運動軌跡的技術,廣泛應用于機器人、自動駕駛和增強現實等領域。以下是一個系統的學習路徑,涵蓋基礎理論、核心算法、工具及實踐建議:一、基礎理論與數學準備 核心數學工具…

Ubuntu 24.04 中文輸入法安裝

搜狗輸入法,在Ubuntu 24.04上使用失敗,安裝教程如下 https://shurufa.sogou.com/linux/guide 出現問題的情況,是這個帖子里描述的: https://forum.ubuntu.org.cn/viewtopic.php?t493893 后面通過google拼音輸入法解決了&#x…

阿里云 MSE Nacos 發布全新“安全防護”模塊,簡化安全配置,提升數據保護

作者:張文浩 阿里云在其微服務引擎(MSE)注冊配置中心 Nacos 上正式推出全新“安全防護”功能模塊,旨在幫助企業用戶有效管理安全狀態和降低開啟安全相關功能的學習成本,提升微服務架構的安全性。首期推出的“安全防護…

C#核心(23)StringBuilder

前言 我們先前已經了解了String的一些基本規則和常見的用法,今天就來講一下和string有所區別的StringBulider。 在 C# 中,StringBuilder 類是一個非常有用的工具,特別是在需要頻繁修改字符串時。與 String 類型不同,StringBuilder 類提供了一種動態字符串,可以在不創建新…

活動圖與流程圖的區別與聯系:深入理解兩種建模工具

目錄 前言1. 活動圖概述1.1 活動圖的定義1.2 活動圖的基本構成要素1.3 活動圖的應用場景 2. 流程圖概述2.1 流程圖的定義2.2 流程圖的基本構成要素2.3 流程圖的應用場景 3. 活動圖與流程圖的聯系4. 活動圖與流程圖的區別4.1 所屬體系不同4.2 表達能力差異4.3 使用目的與語境4.4…

idea運行springboot項目,運行時不能生成target

1,問題 項目本來運行正常,突然重啟項目運行時,提醒主類找不到,發現target未生成 2,解決辦法 查看.idea里面的文件,正常是下面這樣的 如果有缺失,刪除.idea里面的文件,清除idea緩…

【unity游戲開發——Animator動畫】Animator動畫狀態機復用——重寫動畫控制器 Animator Override Controller

注意:考慮到UGUI的內容比較多,我將UGUI的內容分開,并全部整合放在【unity游戲開發——Animator動畫】專欄里,感興趣的小伙伴可以前往逐一查看學習。 文章目錄 一、狀態機復用是什么?二、實戰專欄推薦完結 一、狀態機復…

山東大學軟件學院創新項目實訓(11)之springboot+vue項目接入deepseekAPI

因為該階段是前后端搭建階段,所以沒有進大模型的專項訓練,所以先用老師給的deepseek接口進行代替 且因為前端設計部分非本人負責且還沒有提交到github上,所以目前只能先編寫一個簡易的界面進行功能的測試 首先進行創建model類 然后創建Cha…

FreeRTOS入門與工程實踐-基于STM32F103(二)(互斥量,事件組,任務通知,軟件定時器,中斷管理,資源管理,調試與優化)

互斥量 一、互斥量(Mutex):解決多任務 “搶資源” 的問題 1. 是什么? 互斥量是一種 “任務間互斥訪問資源” 的工具,本質是一個 只能被鎖定(0)或釋放(1)的二進制信號量…

軟考筆記10——網絡與信息安全基礎知識

第十章節——網絡與信息安全基礎知識 網絡與信息安全基礎知識 第十章節——網絡與信息安全基礎知識一、網絡概述1. 計算機網絡概念2. 計算機網絡分類3. 網絡拓補結構4. ISO/OSI網絡體系結構1. ISO/OSI參考模型 二、網絡互聯硬件1. 網絡的設備2. 網絡的傳輸介質 三、網絡協議與標…

Tycoon2FA釣魚工具包發布重大更新,強化反檢測能力

釣魚即服務(PhaaS)平臺升級反檢測功能 網絡安全公司Sekoia于2023年發現的釣魚工具包Tycoon2FA近期發布重大更新,顯著提升了其反檢測能力。該工具包現采用多項高級規避技術,包括通過HTML5 canvas實現的自定義驗證碼、混淆JavaScri…