Python 문자열로 표현된 C structs와 Python Value 간의 변환
파일에 Binary Data를 저장하거나 Network Connection 시 사용
struct.pack(fmt, v1, v2,...)
- 지정된 Format에 따라 v1, v2의 value를 Pack을 수행하며 그 결과는 String으로 리턴
struct.unpack(fmt, string)
- 지정된 Format에 따라 String을 Unpack을 수행하며 그 결과는 Tuple로 리턴
CharacterByte orderSizeAlignment
@ | native | native | native |
= | native | standard | none |
< | little-endian | standard | none |
> | big-endian | standard | none |
! | network (= big-endian) | standard | none |
FormatC TypePython typeStandard sizeNotes
x | pad byte | no value | ||
c | char | string of length 1 | 1 | |
b | signed char | integer | 1 | (3) |
B | unsigned char | integer | 1 | (3) |
? | _Bool | bool | 1 | (1) |
h | short | integer | 2 | (3) |
H | unsigned short | integer | 2 | (3) |
i | int | integer | 4 | (3) |
I | unsigned int | integer | 4 | (3) |
l | long | integer | 4 | (3) |
L | unsigned long | integer | 4 | (3) |
q | long long | integer | 8 | (2), (3) |
Q | unsigned long long | integer | 8 | (2), (3) |
f | float | float | 4 | (4) |
d | double | float | 8 | (4) |
s | char[] | string | ||
p | char[] | string | ||
P | void * | integer | (5), (3) |
ex) struct.pack('<B',i)
'Python' 카테고리의 다른 글
[pwntools]pwnlib.util (0) | 2019.11.19 |
---|---|
hex encoding to chr() (0) | 2019.05.17 |
파이썬 리스트의 문자열을 int 형태로 변환 (2) | 2019.02.18 |
Python z3 모듈 (0) | 2018.12.02 |