Cython 编译出的程序如何禁止异常冒泡?

2021-07-30 13:50:30 +08:00
 LeeReamond

如题,cython 编译 python 代码似乎是一种常见的 py 分发加密方法,而触发异常有可能导致代码泄露,我印象中是能够关闭掉的,刚才百度搜了半天没搜到,好像关键字不太对,有没有大佬指点一下,谢谢。

758 次点击
所在节点    问与答
8 条回复
ysc3839
2021-07-30 14:47:19 +08:00
为什么触发异常有可能导致代码泄露?
LeeReamond
2021-07-30 15:43:10 +08:00
@ysc3839 异常会指示什么位置哪行代码出问题,不会导致泄露?
O5oz6z3
2021-07-30 16:47:41 +08:00
不懂 cython 。说的是不是 sys.excepthook ?
LeeReamond
2021-07-30 17:02:19 +08:00
@O5oz6z3 印象中不是用这个实现的,不过这个可以用来拦截 exp 然后直接不输出任何信息到 stdout 对吧
O5oz6z3
2021-07-30 18:32:38 +08:00
@LeeReamond 我还以为触发异常泄露代码指的是异常堆栈打印,其他的方法我就不知道了。
ysc3839
2021-07-30 19:12:56 +08:00
@LeeReamond Cython 编译后就没有调用栈信息了吧?类似普通的 pyd 模块,遇到错误只能看到错误信息,没有具体代码信息的。
ysc3839
2021-07-30 19:24:17 +08:00
哦,不对,函数名还是有的。即使是普通的 pyd 模块,定义 Python 函数的时候也要设置函数名,出错的时候 Python 也会打印出函数名。这种情况可能没什么好办法,不过一般不会认为函数名很重要吧?没记错的话 Objective-C 编译后也能逆向出完整的函数名和参数信息。
LeeReamond
2021-07-31 22:08:09 +08:00
@ysc3839 最好还是抹掉,你提到逆向那肯定知道逆向过程中函数名的作用非常重要。我印象中是可以去掉的,只是以前代码没保存,现在找不到了

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

https://www.v2ex.com/t/792682

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

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

© 2021 V2EX