
kernel
一点涵
2019年7月4日
展开
-
学习打卡6:printf()函数 和 babydriver
督促自己:2020-9-14学习记录:《逆向工程权威指南》上printf()函数与参数传递#include<stdio.h>int main(){ printf("a=%d;b=%d;c=%d",1,2,3); return 0;};X86传递三个参数,在MSVC下的汇编:printf()函数的参数以逆序存入栈中;32位环境下,32位地址指针和int类型数据都占据32位/4字节空间,所以四个参数共占用:4x4=16字节“add esp,X”指令修正e原创 2020-09-15 15:09:47 · 399 阅读 · 0 评论 -
学习打卡5:栈与kernel base
督促自己:2020-9-11学习记录:《逆向工程权威指南》上函数序言和函数尾声函数序言汇编指令大致如下:push ebpmov ebp,espsub esp, X指令的功能室:在栈里保存EBP寄存器的内容,将ESP的值复制到EBP,然后修改栈的高度,以便为本函数的局部变量申请存储空间。函数尾声:mov esp,ebppop ebpret 0函数在退出时,要做启动过程的反操作,释放栈中申请的内存,还原ESP寄存器的值,将代码控制权还原给调用函数(callee)栈栈是CPU寄存原创 2020-09-11 18:40:00 · 448 阅读 · 0 评论