导航:首页 > 源码编译 > arm反编译

arm反编译

发布时间:2022-01-24 03:47:41

A. 如何将arm的bin文件进行反汇编

IDA。静态反汇编工具。还有C32之类。至于你说的这个文件。W32也是静态反汇编工具。HexWorkshopUltraEdit这两款是16进制编辑工具不知道楼主的用意是什么。不过用以上2类工具各选一样。在加上其他的一些小软件。可以提取游戏里的地图。数据资源之类的。我这方面毕竟还是有些薄弱。希望指正。

B. 嵌入式ARM STM32 反汇编 代码分析

RCC寄存器组的基地址放在PC+156位置处,所以LDR r1,[pc,#156] 指令的意思是在当前地址加上156的位置取得一个32位的数字放在r1。

C. arm反汇编新手问题

ADDS R0, #1 是让人看得懂的语言,但是以CPU来说,只看得懂,0 跟 1。
所以,对于 CPU 来说,收到 0001 1100 的时候,做的动作,等于就是 ADDS R0。
你要修改可以,代码对应也有书,以前我在ARM技术手册中看过,其他的书就不知道了。
这部分的书,原文的多。

D. 有没有将ARM7二进制文件反汇编的的工具

首先那是不是可执行的文件,如果没有加壳的话,反汇编要简单些,可以直接利用dos下的debug进行反汇编 命令: debug e:\aaa.exe

E. 求6502和ARM的反汇编软件

linux下似乎可以用gdb反汇编arm的程序,找一下arm-linux的toolchain
Windows下只能用ADS了,就是ARM官方出的一个开发套件。这个东西一般买开发板的时候都带的。

F. arm开发板上边不支持arm-linux-objmp 反汇编命令该怎么办

你用的是arm几的?你要在开发板上使用这些命令那你最起码要写个shell脚本,无关乎开发板命令,难道你还在开发板上写程序吗

G. 能不能把arm的hex文件反编译源码

反编译出来是汇编语言,不是高级语言,要有点功底才能看得懂

H. 如何反编译 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加上偏移而来。

I. ARM有没有反汇编工具

有啊 , IDA PRO

J. ARM 伪指令LDR.W的作用.

可能是立即数,因为arm里面不能直接表示所有立即数,所以编译器会把某些常量放到内存,在运行时加载进来

阅读全文

与arm反编译相关的资料

热点内容
服务器一直崩应该用什么指令 浏览:916
cm202贴片机编程 浏览:724
php构造函数带参数 浏览:175
解压电波歌曲大全 浏览:336
为啥文件夹移到桌面成word了 浏览:858
命令符的安全模式是哪个键 浏览:758
编程中学 浏览:956
单片机求助 浏览:993
ug加工侧面排铣毛坯怎么编程 浏览:271
程序员有关的介绍 浏览:736
支付宝使用的什么服务器 浏览:210
安卓看本地书用什么软件好 浏览:921
经传软件滚动净利润指标源码 浏览:522
萤石云视频已加密怎么解除 浏览:574
一命令四要求五建议 浏览:30
qq文件夹迁移不了 浏览:19
液体粘滞系数测定不确定度算法 浏览:332
轻栈源码 浏览:426
把图片压缩到500k 浏览:35
命令你自己 浏览:369