@pnck
2017-10-26T15:55:41.000000Z
字数 600
阅读 1642
Step into PWN
presentation
- 二进制代码分析技巧(IDA为中心
- 快速定位/交叉参考
- 变量/结构定义
- 栈结构/栈指针(定位shellcode/栈内容
- 寄存器变量->定义为同一变量
- IDA和调试器结合调试(map文件,ida_dbgserver调试本地
- 熟悉高级语言代码特性(C++
- this指针 -> ecx
- 大量的结构体(其实是类/对象
- 虚函数表VTBL,调用方式call[eax+xx]
- ...这篇博客
- 非标准执行流
- JJJJJJJJJump(f5
- push return
- 花指令(db E8) d/c
- *壳(脚本/脱壳机 不可能找不到
- 动态调试
- PWN题目类型
- Stack Overflow
- 最简单
- 容易防范(/GS NX/DEP
- 可写任何非结束字符
- ebp探明栈结构
- ROP/ret2libc --> gcc编译程序的入口流程
- ret system() / execve gadget
- Format String
- F5可以瞬间发现
- %n两级寻址
- 单个%n写入值有限,%hn,%hhn配合一级地址写入任意数据
- 配合栈缓冲区任意读写
- 无栈缓冲区
- *Heap Overflow
- 堆链表卸载节点原理
- DWORD SHOT
- shellcode定位/修改返回地址
- *Heap Spray
- 可写shellcode的题目
- 最短shellcode和dead char的回避
- shellcode自定位(jmp [esp]的gadget
- 避免依赖(系统调用(lin/固定基址(win