LeeReamond
V2EX  ›  问与答

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

  •  
  •   LeeReamond · Jul 30, 2021 · 1426 views
    This topic created in 1924 days ago, the information mentioned may be changed or developed.

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

    8 replies  •  2021-07-31 22:08:09 +08:00
    ysc3839
    ysc3839
    Jul 30, 2021
    1
    为什么触发异常有可能导致代码泄露?
    LeeReamond
    LeeReamond
    OP
    Jul 30, 2021
    2
    @ysc3839 异常会指示什么位置哪行代码出问题,不会导致泄露?
    O5oz6z3
    O5oz6z3
    Jul 30, 2021
    3
    不懂 cython 。说的是不是 sys.excepthook ?
    LeeReamond
    LeeReamond
    OP
    Jul 30, 2021
    4
    @O5oz6z3 印象中不是用这个实现的,不过这个可以用来拦截 exp 然后直接不输出任何信息到 stdout 对吧
    O5oz6z3
    O5oz6z3
    Jul 30, 2021
    5
    @LeeReamond 我还以为触发异常泄露代码指的是异常堆栈打印,其他的方法我就不知道了。
    ysc3839
    ysc3839
    Jul 30, 2021
    6
    @LeeReamond Cython 编译后就没有调用栈信息了吧?类似普通的 pyd 模块,遇到错误只能看到错误信息,没有具体代码信息的。
    ysc3839
    ysc3839
    Jul 30, 2021
    7
    哦,不对,函数名还是有的。即使是普通的 pyd 模块,定义 Python 函数的时候也要设置函数名,出错的时候 Python 也会打印出函数名。这种情况可能没什么好办法,不过一般不会认为函数名很重要吧?没记错的话 Objective-C 编译后也能逆向出完整的函数名和参数信息。
    LeeReamond
    LeeReamond
    OP
    Jul 31, 2021
    8
    @ysc3839 最好还是抹掉,你提到逆向那肯定知道逆向过程中函数名的作用非常重要。我印象中是可以去掉的,只是以前代码没保存,现在找不到了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1375 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 22:31 · PVG 06:31 · LAX 14:31 · JFK 17:31
    ♥ Do have faith in what you're doing.