echo "0" >/proc/sys/kernel/randomize_va_space //关闭linux对栈的随机化处理。也可在启动内核参数 加 norandmaps
--------------------------------------
0 Disable ASLR. This setting is applied if the kernel is booted with the norandmaps boot parameter.
1 堆栈,vdso, 共享内存随机化,数据段的基地址紧跟代码段。
2 堆栈,vdso , 共享内存,数据段随机化。
-------------------------------------
sys_call 通过软终端 0x80 来实现,eax 中断号,ebx,ecx,edx,esi,edi, 参数1-5
中断表在/use/include/asm/unistd.h 中定义 , 也可能在 unistd_32.h ,unistd_64.h 中定义,具体看系统用的哪个。
-------------------------------------
movsb/w/l esi为source,edi为destination。
eg: movl $source, %esi
movl $dest,%edi
movsl
cf 标志位 std置位,cld清0.
-----------------------------------------
leal helloworld,%esi //把helloworld的地址装入esi中。
lodw 把esi中的地址所指向的值读入ax中。
-------------------------------
leal desti,%esi
stosw 把ax中的值读入esi所指的内存中。
--------------------------------
leal source,%esi
leal dest,%edi
cmpsw //比较esi和edi中地址所指向的值。
阅读(3271) | 评论(0) | 转发(0) |