disassembler.py

来自「也是DC的一个调试程序,具体看README吧」· Python 代码 · 共 46 行

PY
46
字号
##################################################################### Disassembler stuffimport daimport stringclass Disassembler:	def __init__(self):		f = open("test.bin", "r")		self.buffer = f.read()		f.close()		da.init(self.read, self.err)	def read(self, addr, len):		return self.buffer[addr:addr+len]	def err(self, status, addr):		print "Memory error! Status is", status, "addr is", addr	def disasm(self, addr):		# Get the raw disassembled instruction		r = da.disassemble_insn(addr, 0)		# Split it into tabbed columns		cols = string.split(r, "\t")		# One column version: return the string		if len(cols) == 1:			return cols[0]		# Two columns: at 0 and 10		elif len(cols) == 2:			return cols[0] + " "*(10-len(cols[0])) \				+ cols[1]		# Three columns: at 0, 10, and 20		elif len(cols) == 3:			return cols[0] + " "*(10-len(cols[0])) \				+ cols[1] + " "*(20-len(cols[1])) \				+ cols[2]def test_disasm():	d = Disassembler()	for i in range(0, 100, 2):		print "%08x\t%s" % (i, d.disasm(i))

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?