티스토리 뷰
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
from struct import unpack
ul32 = lambda x: unpack("<L", x)[0]
ul64 = lambda x: unpack("<Q", x)[0]
def padding(s, bit=32):
s_len = len(s)
align = bit/8
pad_len = align - (s_len % align)
return s + '\x00'*pad_len
def print_x86(s):
for i in xrange(0, len(s), 4):
print '0x%08x' % ul32(s[i:i+4])
def print_x64(s):
for i in xrange(0, len(s), 8):
print '0x%016x' % ul64(s[i:i+8])
if __name__ == '__main__':
BIT = 32 # 64
a = 'urlmon.dll'
a = padding(a, BIT)
if BIT == 32:
print_x86(a)
else:
print_x64(a)
|
cs |
'Programming > Python' 카테고리의 다른 글
[subprocess] subprocess.Popen 좀비 프로세스(defunct) 이슈 (0) | 2023.05.19 |
---|---|
[socket] select 인자로 class object 사용하는 법 (0) | 2020.10.19 |
[Mac] import weakref 오류 (0) | 2018.09.14 |
[Python] RAW Socket (0) | 2018.07.18 |
idapython 스크립트 모음 (0) | 2018.06.26 |
댓글