Python自解密脚本,作为混淆的意思

逆向工程 加密 Python 混淆
2021-07-02 20:37:24

我有一个带有嵌入式 python 解释器的软件。该软件可以在启动给定.py脚本时打开并执行它。让我们假设在我的 python 环境中,我无法打开其他文件,也无法使用外部工具,例如Cython

我想混淆脚本。我唯一的要求是payload文件一部分(我的自定义业务逻辑)无法在文本编辑器中打开和纯文本读取。

我可以想象脚本的流程将是有效载荷的去混淆/解密,它.py作为第一步驻留在文件中,然后执行它。

我可以在脚本中存储任何加密密钥,而且我不在乎解密部分是否可见并且可以轻松复制。

任何想法我怎样才能做到这一点?

1个回答

我过去做过类似的事情,这是您需要携带的想法:

  1. 您创建要执行和混淆的 python 脚本:

    print('Some string')
    
  2. 另一个脚本打开前一个脚本,加密内容和base64加密,最后放入一个变量,如:

    text = "cHJpbnQoJ1NvbWUgc3RyaW5nJyk="
    
  3. 在另一个 python 文件上,您粘贴文本变量和用于解密和解码 base64 的例程。

  4. 使用该方法eval()执行之前的解密和解码字符串。

这并不完美,但至少你有一些东西可以玩和探索。