티스토리 뷰

환경 :   Immunity Debugger 1.85

   Python 2.7.3

makeshellcode.py

설명 : 어셈블리로 쉘코드를 만든 후에 Hex 값을 가져오기 위해서 스크립트를 만듬. bin 파일로 만들어 두고, 실습을 할 때 많은 도움이 되었음 :)

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
32
33
34
35
36
37
38
39
40
import immlib
 
def WriteBinary(filename, data): # 파일 쓰기
    filename = r'C:\bin\{0}'.format(filename)
    with open(filename, 'wb') as bf:
        bf.write(data)
 
def MakeBinary(args):  # 바이너리 생성
    imm = immlib.Debugger()
    Source_address = int(args[0], 16)
    Destination_address = int(args[1], 16)
    length = Destination_address - Source_address + 1   
    ReadMemory = imm.readMemory(Source_address, length)
    WriteBinary('Binary.bin', ReadMemory)
 
def MakeShellcode(args): # 쉘코드 생성
    Arr = []
    imm = immlib.Debugger()
    Source_address = int(args[0], 16)
    Destination_address = int(args[1], 16)
    length = Destination_address - Source_address + 1
    ReadMemory = imm.readMemory(Source_address, length) 
    ReadMemory = ReadMemory.encode("HEX")
    data = ReadMemory.replace(" """)
 
    for index in range(0len(data), 2):
        Hex = r'\x' + data[index:index+2]
        Arr.append(Hex)
        result = "".join(Arr)
    WriteBinary('Shellcode.bin', result)
 
def main(args):
    order = args[2]
    if order == 'B':
        MakeBinary(args)
        return 'MakeBinary!!!'
    elif order == 'S':
        MakeShellcode(args)
        return 'MakeShellCode!!!'
 
cs


(수정중) 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
hex_list = []
 
def TransHex(require_hex_array):
    for index in range(0len(require_hex_array), 2):
        Hex = r'\x' + require_hex_array[index:index+2]
        hex_list.append(Hex)
        result = "".join(hex_list)
    with open(r"C:\rebuild.bin"'wb') as f2:
        f2.write(result_Hex)
 
def TransAscii(require_ascii_array):
    with open(r"C:\ascii_ex.bin"'wb') as ascii:
        ascii.write(require_ascii_array)
    print 'make bin code!'
        
with open(r"C:\PsExec.exe"'rb') as f:
    buff = f.read()
    suspected_HEX = buff[0x4E:0x27f].encode("hex")
    ascii_code =  buff[0X00:0x27f]
    TransAscii(ascii_code)
    #TransHex(suspected_HEX)
cs


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함