安全措施 程序分析 首先是初始化程序,将 puts 放在了 bss 段 0x4088 的位置,具体查看汇编发现是直接把 puts 的函数地址放进去了。 主程序先接受一个 name 存在 0x4068 位置,然后执行 4 个选项的菜单循环。 选项 1、2、3 分别能够通过 +、-、^ 操作 0x40a0 之前的内存;选项 4 调用 0x4088 位置…
思路 列出可用集,根据可用集逐步构造出全指令集 根据可用集逐步编码shellcode 看了别的师傅有很巧妙的做法:不直接调shell,而是先手写调read,然后输入真正的shellcode,绕过检测。 我这里主要借机学习一下shellcode编码,就按官方思路复现了。 指令集扩展 shellcode字符集 编写一个基础的shellcode: mov…
## 工具介绍 GNU汇编器(GNU Assembler),简称为GAS。 汇编代码通过*汇编器***汇编**生成机器码。 参考**编译原理**相关文章。 ## 工具安装 ### Linux 系统自带,无需安装 ## 基本用法 具体用法见手册 ``` <pre class="wp-block-code">`…
## 工具介绍 ROPgadget工具可以帮助你寻找合适的gadgets,在编写你的ROP exp的时候有很大作用。 ROPgadget支持 x86, x64, ARM, ARM64, PowerPC, SPARC和MIPS架构下的ELF/PE/Mach-O文件格式。 ## 工具安装 安装pwntools自带 ## 基本用法 ``` <pre…
原理 利用RAND()和GROUP BY,以包含RAND()的数据为键进行分组(GROUP BY),在执行过程中,GROUP BY会读取每一行数据,如果已存在相应的键值会更新对应行的值,否则会插入该键值,而插入该键值时会重新执行RAND()函数,而不是用之前读取到的值,如果此时RAND()生成了与已有键值冲突的值,则会导致主键冲突报错,报错格式如下…
确定变量相对ebp偏移量 介绍四种确定变量相对ebp偏移量的方法 一、GDB调试出偏移量 0x8048677 <main+95> lea eax, [esp + 0x1c] 0x804867b <main+99> mov dword ptr [esp], eax ► 0x804867e <main+102> ca…