摘要: pwn2 拿到题目首先判断32位还是64位,然后检查保护措施 放到IDA里观察有没有目标函数等,发现没有system函数也没有/bin/sh,于是构造 使用gdb调试,用vmmap观察各段状态 bss段可写入数据,但这道题bss段不可执行,stack可执行,所以写到栈上再返回 64位传参先使用6个寄 阅读全文
posted @ 2025-06-06 21:37 myrrrr 阅读(22) 评论(0) 推荐(0)
摘要: pwn1 拿到题目先检查基本信息 32位且没有保护措施 放到IDA里观察 发现有system函数和gets函数地址,查看源代码 但没有/bin/sh,所以需要手动构造 发现可以写到栈上,开始构造payload 32位架构 from pwn import * context.arch = 'i386' 阅读全文
posted @ 2025-06-06 21:36 myrrrr 阅读(18) 评论(0) 推荐(0)
摘要: 应用程序 字符串内容后面一定要有一个0,标记字符串的结束 通过检测0知道是否已经处理完整个字符串,可以用jcxz检测0 解决寄存器使用上的冲突问题:在子程序开始将子程序中所有用到的寄存器中的内容都保存起来,在子程序返回前再恢复。可以用栈来保存寄存器中的内容 标准框架: 子程序开始:子程序中使用的寄存 阅读全文
posted @ 2025-05-06 10:20 myrrrr 阅读(26) 评论(0) 推荐(0)
摘要: 8086的数据总线宽度为16根,读取次数:1024/(16/8)=512 80836的数据总线宽度是32根,读取次数:1024/(32/8)=256 寄存器(内存访问) 一个字要用两个地址连续的内存单元来存放,低位放在低地址单元中,高位放在高地址单元中 0、1两个内存单元来存储一个字,0是低地址单元 阅读全文
posted @ 2025-04-29 20:58 myrrrr 阅读(14) 评论(0) 推荐(0)
摘要: 内存寻址模型 主要分为两种:实模式分段模型、保护模式扁平模型 实模式:CPU的原始工作模式(16位),直接物理地址访问,使用分段模型,单任务环境,现代CPU启动时首先进入实模式 保护模式:CPU的现代工作模式(32位/64位),支持虚拟内存和分页机制、提供内存保护、特权级检查和任务隔离,支持多任务, 阅读全文
posted @ 2025-04-21 16:07 myrrrr 阅读(19) 评论(0) 推荐(0)
摘要: const用法 1.修饰局部变量,防止只读内存区域的赋值程序立刻异常终止 2.区分常量指针和指针常量:const在*左,为常量指针;在右为指针常量 3.修饰函数,防止修改指针指向的内容/地址 4.修饰函数返回值 防止出现编译错误 5.修饰全局变量 strtok函数 分割字符串 char *strto 阅读全文
posted @ 2025-04-15 21:06 myrrrr 阅读(16) 评论(0) 推荐(0)
摘要: 编译和链接 预编译--编译--汇编--链接 运行 编译:将c语言代码转化为汇编语言 汇编:生成目标文件或机器指令,形成符号表 链接:生成的目标文件通过链接器接在一起,生产可执行的程序 格式化输出 %d/%i:输出十进制整数 %u:输出无符号十进制整数 %f:输出浮点数 %s:输出字符串 %c:输出字 阅读全文
posted @ 2025-04-08 21:40 myrrrr 阅读(34) 评论(0) 推荐(0)
摘要: linux命令总结 一.关机与重启 shutdown:关机,reboot:重启, halt:关机(但要手动关闭电源) eg: shutdown -h 在XX时候关机 ​ shutdown -r 在XX时候重启 取消定时关机命令:shutdown -c 总结:先运行sync命令(确保数据写入磁盘) 二 阅读全文
posted @ 2025-03-31 19:25 myrrrr 阅读(42) 评论(0) 推荐(0)