/img/avatar.gif

Wings

2022 MiniL CTF 部分 WP

认真学了 pwn 后打的第一场比赛, 感觉良好. 之前听师傅们说 pwn 题出难了, 那赛前想着能出 1 题就是胜利, 结果出了 4 题, 超出预期一大截了. (后来发现人均 pwn 4 题 …)

缺人打到了校内第 6, 还不错.

更换可执行文件的 glibc 版本

准备学堆了, 不同版本的 glibc 对于堆的管理稍有不同 (比如高版本可能增加了一些补丁, 使得某些漏洞无法利用). 由于需要本地调试, 所以得先学一下怎么更换 glibc 版本.

Pwn 栈迁移 in x86

原理通过栈溢出向 bp 之上的地方构造 ROP 链, 可以达到控制程序流的效果. 但是如果需要的 ROP 链比较长, 而溢出的大小又不足以构造 ROP 链, 那么这时就必须想其他

零碎的安卓开发小技巧

Android 开发一直处于「面向谷歌编程, 下一次又不知道该怎么写」的状态 (指不会 startActivity). 前些天重写了一个东西, 又用到了一些奇奇怪怪的技巧. 遂记录, 供日后直接 copy.

Pwn ret2shellcode in x86

原理 shellcodeshellcode 指达到某种目的的 (二进制) 代码片段, 在 pwn 中一般指获取 shell 的指令. 下面以调用函数 execve("/bin/sh",0,0) 的 shellcode 来举例说明. shellcode 面向的对象是 CPU, 就是系统能够直接执行的指

Pwn ret2libc in x86

原理共享目标文件是 PIC (地址无关代码) 的, 对其中的符号进行寻址是 相对寻址, 这也说明了整个 .so 装载后是一个不可分割的整体, 各个符号之间的相对距离 (

奇偶校验与海明码

数据是由一堆 01 串组成的. 要看这些 01 串在传输过程中有没有出现错误, 最简单的方法就是比较一下接收到的数据和发送的数据是否相同. 但是, 接收数据的人怎么知道发送的 “正确数据” 是多少呢? 所以这就很有意思了.