.text:00001260 A3 04 00 EB BL sub_24F4 当前地址+ (偏移 << 2 + 8) = 目标地址 0x1260 + 0x4A3 * 4 + 8 = 24F4 偏移 = (目标地址 - 当前地址 - 8) >> 2 偏移 = (0x24F4 - 0x1260 - 8) ...
分类:
其他好文 时间:
2016-04-23 19:57:22
阅读次数:
158
arm常用指令主要包括以下六类: 1、数据处理指令:完成寄存器中数据的算术和逻辑运算操作 2、程序状态寄存器处理指令:MRS MSR 3、跳转指令:B和BL 4、load/store指令:用于寄存器和存储器之间数据传送的指令 5、异常中断指令:SWI和BKPT 6、协处理器指令:MRC MCR 二、 ...
分类:
其他好文 时间:
2016-04-11 22:34:32
阅读次数:
350
跳转指令1.1 B 跳转指令 B{cond} label 说明:如果条件cond满足,arm处理器将立即跳转到label指定的地址处继续执行.1.2 BL 带链接的跳转指令 BL{cond} label 说明:如果条件cond满足,会首先将当前指令的下一条指令的地址拷贝到R14(LR), 然后跳转到 ...
分类:
其他好文 时间:
2016-04-07 00:48:22
阅读次数:
230
上一个版本,本工具支持的第一个逆向策略,(对反汇编的函数体内的分支控制结构逆向生成cpp代码,)一直都可以正常工作,直到遇上了一个函数。这个使我的逆向策略算法失效的函数,主要的特点是它含有众多无条件跳转指令(,都是在函数体内的跳转)。 为什么无条件跳转指令会使得我的第一个逆向算法失效,因为这些无条件 ...
分类:
其他好文 时间:
2016-04-05 19:10:09
阅读次数:
305
触摸java常量池
java常量池是一个经久不衰的话题,也是面试官的最爱,题目花样百出,小菜早就对常量池有所耳闻,这次好好总结一下。
理论
小菜先拙劣的表达一下jvm虚拟内存分布:
程序计数器是jvm执行程序的流水线,存放一些跳转指令,这个太高深,小菜不懂。
本地方法...
分类:
编程语言 时间:
2016-03-30 21:01:06
阅读次数:
205
跳转指令分三类:一、无条件跳转: JMP;二、根据 CX、ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转)、JECXZ(ECX 为 0 则跳转);三、根据 EFLAGS 寄存器的标志位跳转, 这个太多了. JMP 无条件转移指令 1、段内直接短转移 2、段内直接近转移 3、段内间接近转移
分类:
其他好文 时间:
2016-02-08 21:20:43
阅读次数:
2487
.text:00001260 A3 04 00 EB BL sub_24F4当前地址+ (偏移 > 2偏移 = (0x24F4 - 0x1260 - 8) / 4 = 0x4A3假设跳转指令处的地址是A,跳转目标处的地址是B.B,BL指令保存的是偏移地址,这个地址的计...
分类:
其他好文 时间:
2016-01-05 12:41:40
阅读次数:
170
跳转指令分三类:一、无条件跳转: JMP;二、根据 CX、ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转)、JECXZ(ECX 为 0 则跳转);三、根据 EFLAGS 寄存器的标志位跳转, 这个太多了.JMP 无条件转移指令1、段内直接短转移2、段内直接近转移3、段内间接近转移4、段间直...
分类:
其他好文 时间:
2016-01-04 23:54:51
阅读次数:
143
一、if else选择语句1、分支跳转指令 我们将用相应的汇编指令来表示"比较x是否小于y","选择跳转到语句块B"(1)slt指令-"比较x是否小于y" 格式:slt R4,R1,R2。该指令用来表示比较寄存器R1中的值是否小于R2中的值,如果小于则将寄存器R4置1,否则置0; 格式:slt...
分类:
其他好文 时间:
2015-12-20 19:29:36
阅读次数:
239
(一)跳转指令 一、无条件跳转指令(不管标志寄存器,执行到这局直接跳转) 1、段内直接跳转指令 (1)指令格式: JMP SHORT short_label; IP<--IP+DB,即代码直接跳转到此地址为 JMP near_label; IP<--IP+D16 基准的相应的地址中 (2)其实就是G...
分类:
其他好文 时间:
2015-12-09 00:22:01
阅读次数:
423