随笔分类 - PWN入门前基础
摘要:pwntools:http://www.91ri.org/14382.html ida:https://www.jianshu.com/p/d425140c6561
阅读全文
摘要:https://bbs.pediy.com/thread-254599.htm
阅读全文
摘要:https://blog.csdn.net/qq_33883085/article/details/88667003
阅读全文
摘要:https://www.jianshu.com/p/8a9ef7205632
阅读全文
摘要:一.简单认识JCC指令(也可以改EIP的寄存器但得看条件) 由下图可以看出JCC指令和很多标志寄存器有关 标志寄存器的不一样也就表示JCC指令的含义不同 所以 学习JCC指令实际上是学习标志寄存器 二.标志寄存器(32位) 2.1 CF位(判断无符号数运算之后结果有没有溢出) 当无符号数发生进位或借
阅读全文
摘要:一.EBP寻址 ESP:栈顶指针 (程序对与堆栈的使用 使用到哪里,esp就是哪里) EBP: 栈底指针 之前都是借用ESP去寻址确定一些参数 ,但如果存到堆栈里面的值过多,那么就得不断地调整ESP的指向,这是ESP寻址的缺点 那么EBP寻址的思路是什么呢? 先把EBP的值保存起来 然后然后EBP指
阅读全文
摘要:一.什么是堆栈平衡 含义就是 当函数在一步步执行的时候 一直到ret执行之前,堆栈栈顶的地址 一定要是call指令的下一个地址。 也就是说函数执行前一直到函数执行结束,函数里面的堆栈是要保持不变的。 如果堆栈变化了,那么,要在ret执行前将堆栈恢复成原来的样子。 第一种情况:push影响堆栈 比如
阅读全文
摘要:一.什么是函数?? 例子:往寄存器中存值 比如以下四个指令就可以说成一个函数 二.调用一个函数 例子 如果我们调用上面四个指令集合那个函数。 jmp方法:jmp 00418403 缺点 :一般不用jmp因为 调用完这个函数 程序还要接着执行,多次调用的时候容易出问题 。 call方法:call 00
阅读全文
摘要:一.JMP指令(修改EIP的值)(第一个修改EIP的指令) 三种方法 :JMP 立即数 JMP 寄存器 JMP 内存 EIP 之前介绍过,EIP存放的值就是cpu下一次要执行的地址 1.之前学过要修改一个通用寄存器的值,mov指令就可以完成,但是mov这个指令时不允许修改EIP寄存器的 所以可以使用
阅读全文
摘要:1.什么是堆栈 1.1堆栈 堆栈可以看作程序的心脏 所有重要的数据都会在这个里面体现(比如运算一道算术题,虽然还没算出最终答案,但是你在算出最终结果前的一些过程值可以放进堆栈) 堆栈这块内存比较特殊,他是由大地址往小地址用 1.2栈指针寄存器ESP 假设现在程序的堆栈用到0018FF8C 当我们想使
阅读全文
摘要:1.MOV指令(移动) 比如MOV r/m16,r16 r:代表寄存器 m16:代表内存 r16:代表16位的通用寄存器 于是这条指令的意思就是,可以把r16的寄存器中的数据 存到 通用寄存器中也可以存到16位的内存中。 2.ADD指令(相加) 例子:假如EAX 00000001,ECX 00000
阅读全文
摘要:一.存储模式 拿<2>来说往内存编号存入1A2C。 1A为高位 2C伪低位 如上图 有两个模式:大端模式(大尾)和小端模式(小尾) 如果是大端模式则存储就是 : 如果是小端模式则存储就是 : 在80x86这种cpu 绝大多数用的都是小端模式,然而在手机上面的绝大多数应用则是大端模式 这并不是绝对的
阅读全文
摘要:一.代码 和 汇编 和 二进制之间的关系 二.复习一下计算机组成原理的知识 1.寄存器 计算机中有三个存储 32位cpu提供的寄存器有三种类型8位 16位 32位 64位的只是32位的扩展 并且程序大多是32位 以下是32位的8个通用寄存器(有宽度) 2.MOV指令 mov eax ,1(向eax寄
阅读全文
摘要:之前还有一个计算机的原码反码补码,这些比较简单 ,大家可以自行了解 不过要掌握一个思路 拿到一个二进制数据时 拿到数据(二进制)———> 搞清楚时以什么方式编码(视频还是txt)——————>根据不用方式的编码规则编码 一. 计算机的运算--(位运算) 二.为什么要学习位运算?? 三.位运算 1.与
阅读全文
摘要:你TM不会进制不存在入门pwn! 一.进制的定义 2.二进制的练习. 二进制从0写到30: 0 1 10 11 100 101 110 111 1000 1001 1011 1100 1101 1110 1111 10000 10001 ... 八进制从0写到79 进制的优点: 16进制是二进制的简
阅读全文