使用 Nuitka 默认参数打包出来的 exe 仍可以正常输出带路径、行号的错误堆栈,是否说明可以反编译?为什么? Nuitka 存储了怎样的对应关系,是不是像 il2cpp 的 global-metadata 一样

217 天前
 drymonfidelia
听说这个工作原理像 Unity 的 il2cpp 一样。il2cpp 会把源代码的很多信息存在 global-metadata 用于实现 C#的高级特性。Python 是否也一样需要类似的东西来实现高级特性?
1833 次点击
所在节点    Python
5 条回复
louiswong2099
217 天前
Nuitka 在将 Python 脚本编译成二进制文件时,并没有完全去掉 Python 自身的一些属性。 只是将 Python 代码转换为 C 代码,再编译成机器码。
Trim21
217 天前
你可以试试用 cython 把 py 编译成 c ,然后看看生成的 c 代码。
R4rvZ6agNVWr56V0
217 天前
如果你仔细看文档,你会发现付费就可以解决符号信息泄漏问题 https://nuitka.net/doc/commercial.html
iorilu
214 天前
你在最外层的 main 入口函数包以一个 try-except 吃掉所有异常不就行了, 有任何问题直接 sys.exit 退出
drymonfidelia
214 天前
@iorilu 我知道怎么让报错不显示,想问的是这个显示原本堆栈的功能是怎么实现的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1113975

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX