首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python反汇编程序是用来干什么的?

Python反汇编程序是用来干什么的?
EN

Stack Overflow用户
提问于 2013-09-06 00:11:46
回答 3查看 275关注 0票数 3

我注意到人们对Python反汇编器(如dis模块)有很大的兴趣。

然而,令人惊讶的是,很难找到这些反汇编程序通常用于工业/学术界的用途。除了满足好奇心(完全合理的努力!)或者编写Python实现--它们有什么共同的用途吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-06 17:24:41

除了好奇或研究Python实现的细节之外,Python字节码反汇编程序没有什么通用用途。这类似于大多数C程序员从来不需要看汇编程序,即使他们正在编译C代码到汇编程序,并使用像gdb这样的调试器。在Python的例子中,pdb (以及追溯等等)都很好地隐藏了字节码,不让普通程序员看到。

当然,了解它也是很有趣的。这是一个很好地了解Python如何工作的方法:-)

票数 4
EN

Stack Overflow用户

发布于 2013-09-06 19:44:15

对于disassmblers来说,有一个实际的用途,尽管我只是为了完整性而对这种情况进行了讨论:当您在优化代码所在的位置时,您想要检查以不同的方式编写代码是否可以使其更快。这仅适用于速度非常重要的代码。您通常不需要担心这种低级别的优化。

例如,CPython编译器优化只包含文字的表达式,在编译时将类似'foo' + 'bar'的内容转换为'foobar'。其他Python实现可能与此不同,因此检查编译器是否对其进行优化的最佳方法是使用反汇编程序:

代码语言:javascript
复制
>>> import dis
>>> def f():
...     return 'foo'+'bar', 3*100, 'spam'*2
...
>>> dis.dis(f)
  2           0 LOAD_CONST               9 (('foobar', 300, 'spamspam'))
              3 RETURN_VALUE
票数 2
EN

Stack Overflow用户

发布于 2014-10-22 19:07:49

如果您想在机器语言程序中查找一行代码,例如导致令人讨厌的弹出或恶意软件的代码,反汇编程序可能会帮助您找到有毒代码。

此外,正如Flornquake所说,由Python等高级语言组装的程序有时效率不高。如果您需要一个高速程序,比如说读取来自外部设备的快速数据,您很可能需要进入组装的代码并调整它以获得最大的速度。例如,将20的音乐信号数字化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18647897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档