假设我在python解释器中并定义一个函数如下:
def h(a):
return a
Run Code Online (Sandbox Code Playgroud)
如果我想查看字节码(不是使用dis的反汇编),我通常可以使用h.func_code.co_code.有没有其他方法来查看字节码?
例如,在解释器中,如果我只是在h不进行函数调用的情况下键入,我会得到函数的地址.我可以使用该地址来获取字节码吗?还有其他方法吗?
评论中的一些其他信息:
该应用程序是用python编写的,并使用Py2App,cx_freeze或py2exe之类的东西打包.我在可执行文件上玩了一些技巧,现在,在启动时,可执行文件将我转储到python命令行.从那里,我手动将我的功能h输入到interepeter中.
的其他属性h.func_code都存在,如co_varnames,co_argcount等,但co_code并非如此.
如果我输入h.func_code.co_code翻译,我得到'code' object has no attribute 'co_code'.
更新:再次发表评论.据我所知,操作码已重新映射为随应用程序一起提供的python解释器.
在GDB中,我可以通过发出命令来调用一个函数,该函数是我正在调试的可执行文件的一部分call foo("123").
我如何在OllyDbg(或可能是其他主要的Windows调试器)中执行相同的操作?