不论是Python标准库中自带的dis,还是我们之前看到的sdis,都只能一次对一段代码进行反汇编,对于Cobra来说,这还不是很方便。为了在Cobra的GUI界面中显示对一个.py文件完整的反汇编结果,我们还需要一个比sdis更加强大的反汇编工具,这就是disassemble。
disassemble能一次性地对一个.py文件进行完整的反汇编,同时将反汇编结果以用户用好的方式嵌入到源文件中,从而为Cobra的显示提供了基础。
下面是利用disassemble来反汇编某个.py文件的例子:
>>> from core.disassemble import Disassemble
>>> dis = Disassemble()
>>> result = dis.parsePyFile('../demo.py')
>>> print >> open('demo_dised.ppy', 'w'), result
下面是源文件和反汇编的结果文件:
【源文件:demo.py】
def
f():
pass
def g():
print ' hello world '
def fun():
pass
class MyClass(object):
def __init__ (self):
pass
a = 1
a += 1
print
pass
def g():
print ' hello world '
def fun():
pass
class MyClass(object):
def __init__ (self):
pass
a = 1
a += 1