PWN入门笔记:
1.环境搭建
(1)系统安装搭建:ubuntu
(2)应用工具:ida(对函数题目进行反汇编从而进行插入)
(3)pwntools以及必备环境
*利用vim在终端下对系统换源
*安装python,利用pip安装pwntools
*安装git,利用git安装peda,pwngdb等插件
*最后利用sudo安装其余依赖与环境
2.汇编形式
(1)intel汇编语法
INTEL汇编语法第一个操作数表示目的操作数,第二个才是源操作数,赋值方向为从右向左;
例如:mov eax , ebx //eax = eax + ebx
INTEL汇编语法不需要前缀修饰;
例如:mov eax, 1
INTEL 不在mov后添加后缀
(2)AT&T汇编语法
AT&T汇编语法将INTEL钟操作数与源操作数调换位置;
例如:movl %ebx, %eax //eax = eax + ebx
AT&T汇编语法需要前缀修饰;
例如:movl $1, %eax
AT&T语法在mov后添加b(byte),w(word),l(long)来声明字节
3.函数调用栈与函数保护机制
*32位函数在函数返回地址上方(高地址方向),而64位函数在前六个分别在六个寄存器中,其余和32位一样压入栈中
*保护机制:
CANARY:栈保护,在函数执行前在栈底插入信息,函数返回后对该信息进行合法验证,若发生改变则停止程序运行.
NX:不可执行,将某段数据所在内存标识为不可执行,即无法利用和执行该段数据代码
RELRO:RELRO为Partial时表明对GOT表具有写权限,为Full则不可写
PIE:使地址空间随机化,此时无法对代码进行修改,可在Linux下使用sudo sh -c"echo 0 > /proc/sys/kernel/randomize_va_space"关闭
*litbc database search使用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R7barsUw-1678452066354)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20230308154853269.png)]
使用readlf -a命令进行查找偏移值
4.IDA使用基础
*导入exe文件后F5进行反编译
066354)]
使用readlf -a命令进行查找偏移值
4.IDA使用基础
*导入exe文件后F5进行反编译
*a:将数据转换为字符串