當前位置:首頁 » 編程軟體 » arm反編譯

arm反編譯

發布時間: 2022-01-15 11:57:13

⑴ 嵌入式ARM STM32 反匯編 代碼分析

RCC寄存器組的基地址放在PC+156位置處,所以LDR r1,[pc,#156] 指令的意思是在當前地址加上156的位置取得一個32位的數字放在r1。

⑵ 如何反編譯 android 中 /data/dalvik-cache/arm 下的文件

所有的 apk 內包含一個 classes.dex 文件。在 Dalvik上,apk包里的 dex文件在安裝的時候會通過 dexopt 轉化成另一個格式,叫odex(Opitimized dex),然後存在 /data/dalvik-cache裡面,如:

/data/dalvik-cache/data@[email protected]@classes.dex
雖然文件後綴還是 .dex,但是這個dex和apk內的那個已經不一樣了。這個文件是針對當前機器的硬體對 dex 文件進行了定製化,也就是說把這個放到別的設備上,不一定能運行。

PS: 在要編譯 rom 的時候,如果參數加上 "WITH_DEXPREOPT=true",會在 /system/app/ 下同時生成 .apk 和 .odex 文件(注意,這里後綴又用的 .odex,但實際上和系統在 /data/dalvik-cache/ 下的 .dex文件是一樣的)

ART

在 ART上,apk 包里的 dex文件在安裝的時候通過 dex2oat,也會生成一個後綴為 .dex 的文件,放在 /data/dalvik-cache中,如:

/data/dalvik-cache/arm/system@app@[email protected]@classes.dex
/data/dalvik-cache/arm64/system@vendor@app@[email protected]@classes.dex
這個文件後綴叫 .dex ,但是這個文件又不一樣了,這個既不是 dex 也不是 odex,用 dex2jar 的無法進行反編譯的。文件格式也完全不同,因為這其實就是一個實打實的 elf文件,這個文件已經可以直接在機器上運行了。

為何 pm.jar 是空的?

首先來了解一下 ROM 的編譯選項,看一下編譯的時候能做什麼事情, 大致了解就行了 。

編譯選項

WITH_DEXPREOPT

使能編譯時生成 OAT,避免第一次開機時編譯耗時,但會增大 system分區的空間消耗

DONT_DEXPREOPT_PREBUILTS

使能後,將不會對 Android.mk中包含了 include $(BUILD_PREBUILT)的 Apk進行 oat,例如 Gmail,它很可能會在後期通過商店自行升級,而升級後系統中的 oat文件則沒有意義了,但又無法刪除,會造成空間的浪費(oat比dex文件要大)

WITH_DEXPREOPT_BOOT_IMG_ONLY

僅僅針對 boot.img進行oat優化(boot.img中包含 boot.art和 boot.oat)

LOCAL_DEX_PREOPT ture|false|nostripping

可用於各個 Android.mk,對每個 package進行單獨配置,當設置為 true時,dex文件將會從 apk中剔除,如果不想剔除可使用 nostripping WPRODUCT _DEX PREOPT_*

WPRODUCT__DEX_PREOPT_*

PRODUCT_DEX_PREOPT_BOOT_FLAGS

這里的參數將會傳至 dex2oat,控制 boot.img的編譯優化行為。

PRODUCT_DEX_PREOPT_DEFAULT_FLAGS

控制除 boot.img 外,其他(如 jar, apk)的 OAT編譯行為 例如:

PRODUCT_DEX_PREOPT_DEFAULT_FLAGS := --compiler- filter=interpret-only
$(call add-proct-dex-preopt-mole- config,services,--compiler-filter=space)
WITH_DEXPREOPT_PIC ture|false

使能 position-independent code,這樣在dex2oat編譯生成的 odex文件在運行時將不必再從 /system 下拷貝到 /data/dalvik-cache/ 目錄下, 可以節省 /data 空間

WITH_ART_SMALL_MODE true|false

設置為 true 時,將只編譯處於 boot classpath 里的類,其他的均不編譯,這樣既能加快第一次開機時間,因為大部分必要的類已經編譯過了; 同時也能節省不少空間,因為 APP 都未進行編譯。缺點是可能損失一性能,這可能要平時覺察不出,但在跑分軟體上會有所體現

編譯選項的經典配置

為了提高第一次開機速度,WITH_DEXPREOPT是必須使能的,這樣則在編譯階段會完成 dex2oat的操作,避免在開機時間去做這個轉碼,節省了開機時間(6min以上縮短2min內)。

但會引起一個缺點,那就是 apk中還是包含了 class.dex(dexopt生成的),同時在對應的apk文件夾中又生成了已經轉碼成oat的 class.odex(dex2oat生成的),相當於這部分重復,造成了大量的空間浪費。

為了把 apk包里的 class.dex去除,節省空間,可以打開 DEX PREOPT DEFAULT := ture。

然而,這樣開機速度是快了,而且節省了不少system空間,但開機後,咱們會發現即使在 system中已經存在 class.odex的 apk,第一次開機後還是會在 /data下面生成 class.odex,如data/dalvik-cache/arm64/system@app@[email protected]@classes.dex,這是何解?原來 Google為了提高安全性,在每一台機器開機時都會在之前的機器碼加一個隨機的偏移量,這個偏移量是隨機的,每台機器都不相同,而 data分區下的這些文件就是從 system下的 class.odex加上偏移而來。

⑶ 如何將arm的bin文件進行反匯編

IDA。靜態反匯編工具。還有C32之類。至於你說的這個文件。W32也是靜態反匯編工具。HexWorkshopUltraEdit這兩款是16進制編輯工具不知道樓主的用意是什麼。不過用以上2類工具各選一樣。在加上其他的一些小軟體。可以提取游戲里的地圖。數據資源之類的。我這方面畢竟還是有些薄弱。希望指正。

⑷ 有沒有將ARM7二進制文件反匯編的的工具

首先那是不是可執行的文件,如果沒有加殼的話,反匯編要簡單些,可以直接利用dos下的debug進行反匯編 命令: debug e:\aaa.exe

⑸ 求6502和ARM的反匯編軟體

linux下似乎可以用gdb反匯編arm的程序,找一下arm-linux的toolchain
Windows下只能用ADS了,就是ARM官方出的一個開發套件。這個東西一般買開發板的時候都帶的。

⑹ ubuntu中怎麼查看文件是gcc編譯出來的還是arm-linux-gcc編譯的

使用objmp試試吧
如果是ubuntu下得gcc編譯出來的話,應該帶有i386字樣

具體方法(假設要看a.out)
objmp -a a.out
我的輸出為:
a.out: file format elf32-i386
如果是跨平台的話,比如我這邊 mips編譯出來的 用objmp看到的就是 file format elf32-little

如果通過這個-a參數還區別不出來 可以試試其他的。比如 -d 反編譯看下

⑺ ARM有沒有反匯編工具

有啊 , IDA PRO

⑻ arm開發板上邊不支持arm-linux-objmp 反匯編命令該怎麼辦

你用的是arm幾的?你要在開發板上使用這些命令那你最起碼要寫個shell腳本,無關乎開發板命令,難道你還在開發板上寫程序嗎

⑼ 能不能把arm的hex文件反編譯成源碼

反編譯出來是匯編語言,不是高級語言,要有點功底才能看得懂

⑽ arm反匯編新手問題

ADDS R0, #1 是讓人看得懂的語言,但是以CPU來說,只看得懂,0 跟 1。
所以,對於 CPU 來說,收到 0001 1100 的時候,做的動作,等於就是 ADDS R0。
你要修改可以,代碼對應也有書,以前我在ARM技術手冊中看過,其他的書就不知道了。
這部分的書,原文的多。

熱點內容
循跡小車演算法 發布:2024-12-22 22:28:41 瀏覽:82
scss一次編譯一直生成隨機數 發布:2024-12-22 22:04:24 瀏覽:956
嫁接睫毛加密 發布:2024-12-22 21:50:12 瀏覽:975
linuxbin文件的安裝 發布:2024-12-22 21:46:07 瀏覽:798
vlcforandroid下載 發布:2024-12-22 21:45:26 瀏覽:664
電腦做網關把數據發送至伺服器 發布:2024-12-22 21:44:50 瀏覽:432
新華三代理什麼牌子的伺服器 發布:2024-12-22 21:33:21 瀏覽:342
歡太會員密碼是什麼 發布:2024-12-22 20:57:28 瀏覽:74
sqllocaldb 發布:2024-12-22 20:07:08 瀏覽:126
如何找到我的伺服器 發布:2024-12-22 19:52:14 瀏覽:301