这周主要学习的是转移指令的相关知识和原理。offset在和汇编语言中是由编译器处理的符号,它的功能是取得标号的偏移地址。jmp是无条件转移指令,可以只修改IP,也可以同时修改CS和IP。CPU在执行jmp指令的时候不需要转移的目的地址,机器码中包含的的是转移的位移。Ret指令用栈中的数据,修改IP的...
分类:
其他好文 时间:
2015-05-28 00:11:38
阅读次数:
222
先简单说下原理:hook,即野蛮地借用jmp等指令钩住目标函数,修改运行路径使其执行我们自己的代码。方法是在指定进程中的内存里找到目标函数的地址,然后修改其首地址的前几字节为jmp指令,指向我们自己的自定义函数地址。这样,进程执行这个函数的时候,会先执行我们自己的代码,之后可以选择性执行原函数或不执...
分类:
其他好文 时间:
2015-05-22 01:45:28
阅读次数:
174
JMP Jump unconditionallySyntax JMP labelOperation PC + 2 × offset ?> PCDescription The 10-bit signed offset contained in the instruction LSBs ...
分类:
其他好文 时间:
2015-05-20 00:14:23
阅读次数:
138
goto语句可以用于同一个函数内异常处理,不幸的是,goto是本地的,它只能跳到所在函数内部的标号上。为了解决这个限制,C函数库提供了setjmp()和longjmp()函数,它们分别承担非局部标号和goto作用。头文件申明了这些函数及同时所需的jmp_buf数据类型。 1.setjmp(jbuf)...
分类:
其他好文 时间:
2015-05-13 16:21:14
阅读次数:
155
单转code segement assume cs:code,ds:code org 100hstart:jmp begin psta db 05h,15h,14h,54h,50h,51h,41h,45h ;相序表message db 'Press sw2 to start !' ;系统提示 db ...
分类:
其他好文 时间:
2015-04-30 20:07:21
阅读次数:
172
最近打算把《老码识途》搞一遍,就先拿这个构造汇编语句开刀吧。1.1.3在c语言里嵌入汇编语句,构造mov和jmp的机器指令,从而让程序按自己指定的路径跑。见代码: 1 #include 2 #include 3 #include 4 5 int gi; 6 void *address; 7 ...
分类:
其他好文 时间:
2015-04-29 01:55:29
阅读次数:
124
跳转
jmp label
call addresss
调用函数先将eip入栈,eip指向函数的地址
esp直接使用栈中的数据
push pop引用堆栈中的数据
程序通常把esp复制到ebp在使用ebp获取call指令之前传递给栈的信息。
function_label:
pushl %ebp
movl %esp , %ebp
...
分类:
其他好文 时间:
2015-04-04 09:21:54
阅读次数:
213
继续开发; hello-os; TAB=4 ORG 0x7c00 ; 指明程序的装载地址; 以下的记述用于标准FAT12格式的软盘 JMP entry DB 0x90 DB ...
分类:
编程语言 时间:
2015-04-02 13:05:48
阅读次数:
136