首页 > 移动平台 > 详细

安卓软件安全与逆向分析

时间:2016-01-04 10:05:04      阅读:158      评论:0      收藏:0      [点我收藏+]

jvm虚拟机:指令集为零地址形式的指令集,即指令的源参数和目标参数都是隐含的,通过java虚拟机中提供的一种数据结构“求值栈”来传递。

dalvik虚拟机运行时也为每个线程维护一个PC计数器和调用栈,此调用栈 维护一份寄存器列表,寄存器的数量在方法结构体的registers字段中给出,DVM根据这个值来创建一份虚拟的寄存器列表。

Dalvik opcodes: http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html

For binary XML files, use a binary-to-textual XML converter like AXMLPrinter2

● For the DEX file, use dedexer

● Alternative products:

– Dexdump – comes with the Android SDK, less convenient to use than dedexer because e.g. it does not support labels, produces one large file, etc.

– Baksmali – a competing open-source DEX disassembler. Comes with a Dalvik bytecode assembler (smali)

DVM是作用特定架构的cpu上的,设计之处采用了ARM架构,arm架构的cpu本身集成了多个寄存器,dalvik将部份寄存器映射到arm寄存器上,还有一部分通过调用栈进行模拟。共65526个寄存器,取值范围v0 - v65535.

虚拟机中的每个寄存器都是32位的,描述指令时所说的位数表示的是寄存器数值的取值范围。

 

安卓软件安全与逆向分析

原文:http://www.cnblogs.com/CarrieCui/p/5097797.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!