Skip to content

Commit 61ec256

Browse files
committed
Fixed variable names
1 parent 9ed9a8b commit 61ec256

3 files changed

Lines changed: 11 additions & 8 deletions

File tree

shellcode_emulator/api.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ def return_function(self, uc, return_address, arg_count, return_value):
3232
uc.reg_write(self.emulator.get_register_by_name("eax"), return_value)
3333

3434
def callback(self, uc, address, size, user_data):
35-
self.emulator.instruction.dump_disassembly(address, size, resolve_symbol = True)
35+
self.emulator.instruction.dump_disassembly(address, size, find_symbol = True)
3636

3737
code = uc.mem_read(address, size)
3838
try:
39-
name = self.emulator.debugger.resolve_symbol(instruction.address)
39+
name = self.emulator.debugger.find_symbol(instruction.address)
4040
except:
4141
name = ''
4242

shellcode_emulator/instruction.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def disassemble(self, code, address):
3535
md = capstone.Cs(capstone.CS_ARCH_X86, capstone.CS_MODE_64)
3636
return md.disasm(code, address)
3737

38-
def dump_disassembly(self, address, size, resolve_symbol = False, dump_instruction_count = 1):
38+
def dump_disassembly(self, address, size, find_symbol = False, dump_instruction_count = 1):
3939
code = self.uc.mem_read(address, size)
4040

4141
try:
@@ -50,7 +50,7 @@ def dump_disassembly(self, address, size, resolve_symbol = False, dump_instructi
5050
symbol_str = ''
5151
if self.emulator.debugger:
5252
try:
53-
symbol_str = self.emulator.debugger.resolve_symbol(instruction.address) + ':\t'
53+
symbol_str = self.emulator.debugger.find_symbol(instruction.address) + ':\t'
5454
except:
5555
pass
5656

shellcode_emulator/run.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,16 @@ def add_unicorn_hook(self, hook_type, callback, arg = None, start = 0, end = 0):
7373
def start(self, start, end):
7474
self.uc.emu_start(start, end)
7575

76-
class ShellEmu:
77-
def __init__(self, shellcode_filename, shellcode_bytes = '', dump_filename = '', exhaustive_loop_dump_frequency = 0x10000):
76+
class ShellcodeEmulator:
77+
def __init__(self, shellcode_filename, shellcode_bytes = '', dump_filename = '', arch = 'AMD64', exhaustive_loop_dump_frequency = 0x10000):
7878
self.shellcode_filename = shellcode_filename
7979
self.shellcode_bytes = shellcode_bytes
8080
self.exhaustive_loop_dump_frequency = exhaustive_loop_dump_frequency
8181
self.address_hit_map = {}
8282
self.last_code_address = 0
8383
self.last_code_size = 0
8484

85-
self.emulator = Emulator(dump_filename = dump_filename)
85+
self.emulator = Emulator(dump_filename = dump_filename, arch = arch)
8686

8787
def instruction_callback(self, uc, address, size, user_data):
8888
self.emulator.instruction.dump_context()
@@ -151,6 +151,9 @@ def run(self, trace_self_modification = False, print_first_instructions = False)
151151
parser.add_option("-d", "--dump_filename", dest = "dump_filename",
152152
type = "string", default = "", metavar = "DUMP_FILENAME",
153153
help = "A process dump file from normal Windows process")
154+
parser.add_option("-a", "--arch", dest = "arch",
155+
type = "string", default = "AMD64", metavar = "ARCH",
156+
help = "A process dump file from normal Windows process")
154157
parser.add_option("-l", "--list_filename", dest = "list_filename",
155158
type = "string", default = "", metavar = "LIST_FILENAME",
156159
help = "A list filename generated by IDA (this can be used instead of shellcode filename)")
@@ -173,5 +176,5 @@ def run(self, trace_self_modification = False, print_first_instructions = False)
173176
parser.print_help()
174177
sys.exit(0)
175178

176-
shell_emu = ShellEmu(shellcode_filename, shellcode_bytes = shellcode_bytes, dump_filename = options.dump_filename)
179+
shell_emu = ShellcodeEmulator(shellcode_filename, shellcode_bytes = shellcode_bytes, arch = options.arch, dump_filename = options.dump_filename)
177180
shell_emu.run(trace_self_modification = True, print_first_instructions = True)

0 commit comments

Comments
 (0)