CALL 指令在实现转移之前, 要将返回地址存入堆栈的, 以便子程可以通过 ret 指令返回到 CALL 指令下面的指令接着运行; jmp 就没用这些事儿, 直接过去就过去了, 以后的执行流程全由那里的说了算. 当然了, 一些特殊的执行流程控制技巧除外.call == ...
分类:
其他好文 时间:
2014-09-23 14:22:54
阅读次数:
126
多任务的本质是利用定时器和far跳转在任务之间进行切换,具体来说,一开始先运行main函数(就是处理我们的鼠标、键盘和定时器等事件),0.02s后定时器超时,执行如下语句:
farjmp(0, 4 * 8);
这是一个far跳转,先看一下farjmp的实现:
_farjmp: ; void farjmp(int eip, int cs)
JMP FAR [ESP+4] ; eip, c...
分类:
其他好文 时间:
2014-08-15 16:07:30
阅读次数:
169
1.可以修改IP,或同时修改CS和IP的指令统称转移指令。有两种类型转移: (1)只修改IP是段内转移,如:jmp ax (2)修改CS和IP是段间转移,如:jmp 1000:02.操作符offset是一个伪指令,它的功能是取得标号的偏移地址。3.jmp为无条件转移,可以只修改IP,也可以同时修改C...
分类:
其他好文 时间:
2014-08-09 21:03:39
阅读次数:
264
这里想说的是:代码中的关键点为用指令jmp pFunc跳转到你想要执行的函数pFunc。
指令“jmp xxxx”占5个字节,代码中用了个一字节对齐的结构体struct Thunk ,
当然也可以用 unsigned char code[5]; 说另一个关键点就是地址计算了,jmp xxxx指令用了相对跳转地址,
相对地址 = 要跳转函数的地址 - “jmp xxxx”指令的下一...
分类:
编程语言 时间:
2014-08-01 16:17:21
阅读次数:
282
对于jmp指令:(1)jmpshort标号相当于(ip)=(ip)+8位位移跳转范围是【-128,127】(2)jmpnearptr标号相当于(ip)=(ip)+16位位移跳转范围是【-32768,32767】(3)jmpfarptr标号相当于(CS)=标号所在段地址,(ip)=标号所在偏移地址前两...
分类:
其他好文 时间:
2014-07-27 21:45:05
阅读次数:
207
①jmp是不负责任的调度,不保存任何信息,不考虑会回头。跳过去就什么也不管了。②call,保存eip等,以便程序重新跳回。ret是call的逆过程,是回头的过程。这都是cpu固有指令,因此要保存的信息,不用我们自己保存。我们直接使用指令即可③同一任务内特权级转移,跟 ②差不多,不过要准备个tss,并...
分类:
其他好文 时间:
2014-07-27 21:43:05
阅读次数:
195
此文是学习 C专家编程 中的笔记。setjmp和longjmp是C语言所独有的,它们部分弥补了C语言有限的转移能力。函数说明(来自wiki百科):int setjmp(jmp_bufenv)建立本地的jmp_buf缓冲区并且初始化,用于将来跳转回此处。这个子程序保存程序的调用环境于env参数所指的缓...
分类:
其他好文 时间:
2014-07-19 20:09:16
阅读次数:
221
Petrosite.v5.5 1CD(测井处理软件)\SAS JMP Statistical Discovery 11.0\Surfseis v1.5-ISO 1CD\TRimble TerraModel v10.50-J\VisiMix.Turbulent.SV.2007.Win32 1CD\彩路...
分类:
其他好文 时间:
2014-07-19 19:15:37
阅读次数:
431
1. 函数调用的原理:通过函数名(函数的入口地址)对函数进行访问,假设我们能够改变函数首地址指向的内存的话,使其跳转到另一个函数去执行的话,那么就可以实现函数打桩了。
2. 方法:对函数首地址出写入一条汇编语言 jmp xxx (其中xxx是要跳转的相对地址)。
3. 令原函数为oldFun,新函数为newFun,那么打桩时函数跳转的相对地址 offset = newFun - oldFun - (我们制定的这条指令的大小),此处为绝对跳转指令的长度=5。 jmp xxx一共6字节。...
疯狂的暑假学习之 汇编入门学习笔记 (八)—— 转移指令
参考: 《汇编语言》 王爽 第9章
可以修改ip或者同时修改cs和ip的指令统称为转移指令。
8086CPU转移行为分为:
段内转移:只修改ip
段间转移:同时修改cs和ip
段内转移按ip修改的范围可分为:
短转移:ip修改范围 -128~127
近转移:ip修改范围 -32768~32767
转移指令分为:
无条件转移指令。如 jmp
条件转移指令
循环指令。如 loop
过程。
中断。...
分类:
其他好文 时间:
2014-07-14 11:08:04
阅读次数:
206