[Android]安全第四步,看懂汇编
来源:互联网 发布:淘宝上可以卖膏药吗 编辑:程序博客网 时间:2024/05/19 12:37
我们先分析在NDK对应IDA中的一段代码。这是一个很简单返回字符串的代码
主要问题有以下几点:
1. R11为啥开始要进行ADD R11, SP, #4操作,不进行可以么?
解答:R11可以当做栈底理解,其特殊作用,等下详细研究(待百度)
之说以要加上4是因为将栈底位置记录,从而在栈(sp)变化的时候,不会随之发生变化,
2.var_C 、var_8什么意思?
函数变量的相对位置
3.跳转的时候R0,R1有啥区别?为啥不能用R0,传参数的详细东西
R0\R1都是相当于参数,arm上使用寄存器传递参数时一般只是用r0~r3,因此,系统直接将其压入栈中!然后和一般函数一样的方式去保护可能会被覆盖的寄存器的状态。
将r0~r3压入栈中之后,如果还有更多的参数,则之前必须(应当)已经压入栈中,那么此时的状态就和pc上的类似了。
4.返回的时候就在R0中么?
是的~
5.最后一行为啥要,这样岂不是无用功么?
不是无用功,首先第一行是将上个函数即为NewStringUTF(getChar());返回回来,
然后第二行再通过R0将这个函数的返回值放入进去。其中R0为返回的值
同时,pc 总是包含下一个要被执行的指令的位置。
问题6
BX LR的意思
7.在汇编中,其实就存在全局和局部两种变量,其中全局变量会存在于.data区域,静态变量也是全局变量的一种
8.其实就是0x9999999A, 0x3FF19999,不同的是因为要放到double中,参数是double类型的,所以需要放到64位中,
0 0
- [Android]安全第四步,看懂汇编
- [Android]安全第五步,看懂汇编(续)
- 九步看懂JSP
- 陪伴我的Android入门第四步
- [Android]安全第三步,ARM寄存器
- 开发Android第四步,Android NDK 及 android gcc toolchain
- 开发Android第四步,Android NDK 及 android gcc toolchain
- Android应用程序访问linux驱动第四步:实现android应用程序
- 浅入浅出 Android 安全:第四章 Android 框架层安全
- 引导流程第四步
- 学习View第四步
- Hi3518e安装第四步
- 开发Android第四步,Android NDK 1.6 及 android gcc toolchain
- [Android]安全第二步,基础的开始,分析平时写法与安全
- 循序渐进学J2Me,第四步
- mvc 第四步,传递表单
- 万里征程第四步
- WebRTC第四步:depot_tools 配置
- Jmeter调试工具---Debug Sampler
- JdbcTemplate带in参数的写法
- JAVA设计模式之单例模式
- lua中实现一个 point Vector
- 写在Shader前, unity数字图像处理 上
- [Android]安全第四步,看懂汇编
- ubuntu apache服务无法重启的解决(新装系统后)
- 客运行业发展现状分析
- GitHub 上 57 款最流行的开源深度学习项目
- PreparedStatement和Statement区别
- 乱码,乱码
- Jmeter调试工具---HTTP Mirror Server
- 改变滚动条样式,适用于webkit内核的浏览器,平滑返回顶部功能实现
- Android GridView属性集合