一、逻辑地址(有时也称虚拟地址) 逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。比如在C语言指针编程中,能够读取指针变量本身值(&操作)。实际上这个值就是逻辑地址,它是相对于当前进程数据段的地址,和绝对物理地址无关。 仅仅有在Intel处理器的实模式下,逻辑地址 ...
分类:
其他好文 时间:
2017-05-29 16:01:09
阅读次数:
190
ax,cx,dx不能和段地址搭配作偏移地址用于寻址,如mov mydat[bx][si],es:[ax] 错误偏移地址不能再用offset,如mov bx,offset mydat[si] 错误cmp dst,src 目的操作数不能是立即数,dst和src不能同为内存单元注意标号和变量的区别 mov ...
分类:
其他好文 时间:
2017-05-15 22:45:55
阅读次数:
272
一、mmap()mmap()函数是用来将设备内存线性地址映射到用户地址空间。(1)首先映射基地址,再通过偏移地址寻址;(2)unsigned char *map_cru_base=(unsigned char * )mmap(NULL, MAP_SIZE, PROT_READ | PROT_WRIT ...
分类:
其他好文 时间:
2017-05-15 16:24:22
阅读次数:
357
反调试方案: 我们最通常使用的动态工具是IDA, IDA的动态调试端口默认为23946,我们可以通过/pro/net/tcp 查看android 系统所有TCP Socket 启动android_server之后,/proc/net/tcp ,端口号是0x5D8A,十进制为23946 我们可以利用默 ...
分类:
移动开发 时间:
2017-05-03 13:25:37
阅读次数:
279
要完整描述一个内存单元,需要两种信息:1.内存单元的地址;2.内存单元的长度(类型)。 用[0]表示一个内存单元时,0代表单元的偏移地址,段地址默认在ds中,单元的长度(类型)可以由具体指令中的其他操作对象(比如寄存器)指出。 我们定义描述性符号:“()”,为了描述上的简洁,在以后的课程中,我们将用 ...
分类:
其他好文 时间:
2017-04-23 13:47:38
阅读次数:
191
[BX]和[0]有些类似,[0]表示内存单元,它的偏移地址是0,同样[BX]也表示一个内存单元,它的偏移地址在BX中。loop,英文单词“loop”有循环的含义,显然这个指令和循环有关。我们约定符号idata表示常量,这里有一点需要注意的是不能将一个idata数据直接送入段寄存器中,这是非法..
分类:
编程语言 时间:
2017-04-20 17:30:46
阅读次数:
135
段地址:偏移地址 物理地址=段地址*10H+偏移地址 段地址寄存器 ds es ss cs 偏移地址寄存器 bp ip sp si di bx 指令存在 CS:IPjmp cs:ip ...
分类:
其他好文 时间:
2017-03-22 19:16:22
阅读次数:
129
引言 8086CPU的转移指令分为以下几类: 无条件转移指令 (如:jmp) 条件转移指令 循环指令(如:loop) 过程 中断 9.1 操作符offset 操作符offset在汇编语言中是由编译器处理的符号,它的功能是取得标号的偏移地址。 9.2 jmp指令 jmp为无条件转移,可以只修改IP,也 ...
分类:
编程语言 时间:
2017-02-01 16:32:43
阅读次数:
239
6.1 在代码段中使用数据 “dw”的含义是定义字型数据。dw即define word。 由于它们在代码段中,程序在运行的时候CS中存放代码段的段地址,所以我们可以从CS中得到它们的段地址。 因为用dw定义的数据处于代码段的最开始,所以偏移地址为0,这8 个数据就在代码段的偏移0、2、4、6、8、A ...
分类:
编程语言 时间:
2017-02-01 12:40:36
阅读次数:
138
5.1 [bx] mov ax,[bx]功能:bx 中存放的数据作为一个偏移地址EA ,段地址SA 默认在ds 中,将SA:EA处的数据送入ax中。 5.2 Loop指令 指令的格式是:loop 标号,CPU 执行loop指令的时候,要进行两步操作: 1.(cx)=(cx)-1; 2.判断cx中的值 ...
分类:
编程语言 时间:
2017-01-30 18:39:11
阅读次数:
258