about summary refs log tree commit diff stats
path: root/example/loader/test_pe.py
blob: 543cbea5f1d0fd6e1ed73d3cfc1929fc5105ba07 (plain) (blame)
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
#! /usr/bin/env python

import miasm.loader.pe as pe
from miasm.loader.pe_init import PE
import rlcompleter
import readline
import pdb
import sys
from pprint import pprint as pp
readline.parse_and_bind("tab: complete")


e_ = PE()
mysh = b"\xc3"
s_text = e_.SHList.add_section(
    name="text", addr=0x1000, rawsize=0x1000, data=mysh)
e_.Opthdr.AddressOfEntryPoint = s_text.addr
new_dll = [({"name": "kernel32.dll",
             "firstthunk": s_text.addr + 0x100},
            ["CreateFileA", "SetFilePointer", "WriteFile", "CloseHandle"]
            ),
           ({"name": "USER32.dll",
             "firstthunk": None},
            ["SetDlgItemInt", "GetMenu", "HideCaret"]
            )
           ]
e_.DirImport.add_dlldesc(new_dll)

s_myimp = e_.SHList.add_section(name="myimp", rawsize=0x1000)
e_.DirImport.set_rva(s_myimp.addr)
open('uu.bin', 'wb').write(bytes(e_))