update README

This commit is contained in:
firmianay 2017-10-15 14:44:32 +08:00
parent f66305c535
commit 9ee30786b8
6 changed files with 48 additions and 3 deletions

View File

@ -20,6 +20,8 @@
├── pic ├── pic
│   ├── 1.3_byte_order.png │   ├── 1.3_byte_order.png
│   └── 5.2_pin_arch.png │   └── 5.2_pin_arch.png
├── ppt
│ └── 01_fight-with-linux.pdf
├── README.md ├── README.md
├── src ├── src
│   ├── Others │   ├── Others
@ -38,6 +40,7 @@
- `doc`:该文件夹包含书全部内容的 Markdown 文件。(文字) - `doc`:该文件夹包含书全部内容的 Markdown 文件。(文字)
- `pic`:该文件夹包含所有 Markdown 中引用的所有图片文件。(图片) - `pic`:该文件夹包含所有 Markdown 中引用的所有图片文件。(图片)
- `src`:该文件夹包含书中示例和练习的二进制文件或源代码,分专题保存。(代码) - `src`:该文件夹包含书中示例和练习的二进制文件或源代码,分专题保存。(代码)
- `ppt`:该文件夹包含以书为主要内容制作的 PPT。(分享)
#### 注意事项 #### 注意事项
- 在开始编写某一个内容之前,请先在下面的表格里注明,以避免重复和冲突。如果是已经完成的章节,则可以直接进行修改。 - 在开始编写某一个内容之前,请先在下面的表格里注明,以避免重复和冲突。如果是已经完成的章节,则可以直接进行修改。
@ -46,7 +49,6 @@
- 如果你新添加一个章节,需要在 **README.md**、**SUMMARY.md** 和章节所属部分相应的文件中添加条目。 - 如果你新添加一个章节,需要在 **README.md**、**SUMMARY.md** 和章节所属部分相应的文件中添加条目。
| 章节 | 作者 | 进度 | | 章节 | 作者 | 进度 |
| ------------------ | --------- | ---- | | ------------------ | --------- | ------ |
| 1.5.5_static_link | firmianay | 未完成 | | 1.5.5_static_link | firmianay | 未完成 |
| 1.6-Crypto/2.1-gdb | Skye | 未完成 |

View File

@ -62,6 +62,7 @@
- [6.3 更多资源](doc/6.3_books&blogs.md) - [6.3 更多资源](doc/6.3_books&blogs.md)
- [6.4 习题 write-up](doc/6.4_writeup.md) - [6.4 习题 write-up](doc/6.4_writeup.md)
- [6.5 Linux x86-64 系统调用表](doc/6.5_syscall.md) - [6.5 Linux x86-64 系统调用表](doc/6.5_syscall.md)
- [6.6 PPT](doc/6.6_ppt.md)
合作和贡献 合作和贡献

View File

@ -58,3 +58,4 @@
* [6.3 更多资源](doc/6.3_books&blogs.md) * [6.3 更多资源](doc/6.3_books&blogs.md)
* [6.4 习题 write-up](doc/6.4_writeup.md) * [6.4 习题 write-up](doc/6.4_writeup.md)
* [6.5 Linux x86-64 系统调用表](doc/6.5_syscall.md) * [6.5 Linux x86-64 系统调用表](doc/6.5_syscall.md)
* [6.6 PPT](doc/6.6_ppt.md)

View File

@ -487,8 +487,43 @@ continue
#### rop #### rop
#### util #### util
`pwnlib.util.packing`, `pwnlib.util.cyclic`
util 其实是一些模块的集合包含了一些实用的小工具。这里主要介绍两个packing 和 cyclic。
packing 模块用于将整数打包和解包,它简化了标准库中的 `struct.pack``struct.unpack` 函数,同时增加了对任意宽度整数的支持。
使用 `p32`, `p64`, `u32`, `u64` 函数分别对 32 位和 64 位整数打包和解包,也可以使用 `pack()` 自己定义长度,另外添加参数 `endian``signed` 设置端序和是否带符号。
```
>>> p32(0xdeadbeef)
'\xef\xbe\xad\xde'
>>> p64(0xdeadbeef).encode('hex')
'efbeadde00000000'
>>> p32(0xdeadbeef, endian='big', sign='unsigned')
'\xde\xad\xbe\xef'
```
```
>>> u32('1234')
875770417
>>> u32('1234', endian='big', sign='signed')
825373492
>>> u32('\xef\xbe\xad\xde')
3735928559
```
cyclic 模块在缓冲区溢出中很有用,它帮助生成模式字符串,然后查找偏移,以确定返回地址。
```
>>> cyclic(20)
'aaaabaaacaaadaaaeaaa'
>>> cyclic_find(0x61616162)
4
```
## Pwntools 在 CTF 中的运用 ## Pwntools 在 CTF 中的运用
可以在下面的仓库中找到大量使用 pwntools 的 write-up
[pwntools-write-ups](https://github.com/Gallopsled/pwntools-write-ups)
## 参考资料 ## 参考资料
- [docs.pwntools.com](https://docs.pwntools.com/en/stable/index.html) - [docs.pwntools.com](https://docs.pwntools.com/en/stable/index.html)

5
doc/6.6_ppt.md Normal file
View File

@ -0,0 +1,5 @@
# PPT
这些是我在 XDSEC 做分享的 PPT主要内容取自 CTF-All-In-One可作为辅助学习。
- [01 Fight with Linux](../ppt/01_fight-with-linux.pdf)

View File

@ -5,3 +5,4 @@
- [6.3 更多资源](6.3_books&blogs.md) - [6.3 更多资源](6.3_books&blogs.md)
- [6.4 习题 write-up](6.4_writeup.md) - [6.4 习题 write-up](6.4_writeup.md)
- [6.5 Linux x86-64 系统调用表](http://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/) - [6.5 Linux x86-64 系统调用表](http://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/)
- [6.6 PPT](6.6_ppt.md)