pack, unpack, p64, u64
長さに関するエラーが出たら、unpack(hoge, 'all')のように第二引数にallを指定せよ
code:pytohn
>> pack(0x41, 'all')
b'A'
>> pack(41, 'all')
b')'
code:python
>> strings = b'abc'
97
b'a'
code:pwntools
Out13: b'\x80\x10@\x00\x00\x00\x00\x00' In 15: type(hex(offset_atoi)) code:python
p32(0xdeadbeef) # '\xef\xbe\xad\xde'
p64(0xdeadbeef) # '\xef\xbe\xad\xde\x00\x00\x00\x00'
hex(u32('\xef\xbe\xad\xde')) # '0xdeadbeef'
hex(u64('/bin/sh\x00')) # '0x68732f6e69622f'
context(arch='i386')
pack(0xdeadbeef) # "\xef\xbe\xad\xde"
context(arch='amd64')
pack(0xdeadbeef) # '\xef\xbe\xad\xde\x00\x00\x00\x00'
p64とかu64で「not require integer」が出たら:
code:python
In 18: int( b'0x7fac70645992', 16) In 19: hex(int( b'0x7fac70645992', 16)) code:python
from base64 import b64decode
from pwn import *
array = b64decode('0Nv32PTwgYjzg9/8j5TbmvPd3e7WhtWWyuPsyO76/Y+U193E')
key = bytes('armando', 'utf-8')
result = b''
for i in range(len(array)):
# print(temp)
ans += pack(temp, 'all')
print(result)