Python exe - 如何限制查看源代码和字节代码?

Python exe - how can I restrict viewing source and byte code?

我正在做一个简单的项目,我将在 HTML 网站上提供一个可下载的抓取工具。抓取工具是在 Python 中制作的,并被转换为 .exe 文件以供下载。然而,在 python 代码中,我将一个 Google 应用程序密码包含在一个电子邮件帐户中,因为爬虫发送了一封电子邮件,我需要服务器使用可用的 Google 帐户登录。虽然很难获得 .exe 文件的源代码,但我已经看到有一些方法可以做到这一点,我想知道,我怎样才能做到这一点,让任何下载了 scraper.exe 文件的人都看不到我将在刮板需要时用来向他们发送电子邮件的电子邮件登录详细信息?如果可能的话,甚至可以完全阻止他们访问任何 .exe 源代码或字节码?我正在使用 Python 库 bs4 和请求。

此外,这是题外话,但是,因为这是我第一次开发可下载文件,即使在将 Python 文件转换为 .exe 文件时,我的防病毒软件也将其视为可疑文件文件。这就像一个 50 行的网络爬虫,显然其中没有任何恶意代码。我怎样才能使代码对防病毒程序不那么可疑?

可悲的是,即使在今天,这个问题也没有完美的解决方案。

  • 理想的用例是从 Web 应用程序提供此 secret_password,但在您的情况下似乎不太可能,因为您正在构建一个相当小的桌面应用程序。
  • 最好和最简单的方法是创建一个在单独的文件中提供此 secret_password 的函数,并使用 Cython 编译此文件,这会混淆您的脚本(和您的 secret_password)一个非常好的 extend.Will 这可以保护您免受匿名或国家安全机构的侵害?No.Here 合理思考您的密码实际上有多秘密和重要,以及您主要可能受到哪些人的伤害。 最后,在编译之前,您可以 'salt' 您的脚本或使用 bcrypt 或其他库进一步混淆它。

关于你的第二个问题,防病毒软件,特别是 windows 不喜欢没有安装程序和未签名的程序 运行。 您可以使用 inno setup 创建一个真实的程序安装程序。 如果您想处理 UAC 或其他与未签名程序相关的问题,您可以对您的程序进行签名(需要付费)。

  • 首先,为什么还要给他们发邮件?由于它们将是 运行 .exe,它可以弹出一个 window 并提出保存文件。如果必须发送电子邮件,可以从用户的 gmail 而不是您的。

  • 其次,以这种方式使用您的 gmail 帐户可能违反服务条款。您可能会暂停您的帐户,从技术上讲,这在美国可能是重罪。如果这是一个问题,请咨询律师。

  • 对于你的问题,基本上没有办法混淆密码,这对任何不感兴趣的人来说都是一种轻微的烦恼。在一天结束时,(a) 脚本在用户的控制下运行,可能在 VM 或容器中运行,可能捕获网络通信; (b) 在某些时候它必须解密并发送密码。对于任何想付出适度努力的人来说,解码并遵循脚本或它进行的网络通信都将相对简单。