【问题标题】:How to decrypt a string encrypted by V FoxPro如何解密由 V FoxPro 加密的字符串
【发布时间】:2015-03-03 03:45:35
【问题描述】:

我有一个内置在 Visual Fox Pro 中的程序,它可以在数据库中读取和写入信息,但信息是加密的。

我有源代码,我有密钥(加密和解密的密钥相同)用于加密/解密。但我无法获得用于加密/解密的算法。

我需要这个来使用 C# 创建一个新程序,该程序可以读取信息并将其保存在另一个数据库中。

下面是一些加密信息的示例:

ùœ¢Qa³•ù¼?-
pJ´’ˆò»Æ8-skYIÞµ§¬†Œ‚„Šç

럭IpAÔúùÈP@kJ´’ˆò»Æ8-skYIÞµ§¬†Œ‚„Šç

我了解到 VFP 没有用于加密的本机算法,因此开发人员应该使用外部库。在源代码中我找不到任何东西,他只是使用加密函数发送要加密的文本和密钥。

在根文件夹中有以下 DLL(可能其中一个有要加密的代码) 这是我第一次在 VFP 中看到一些东西 msvcr70.dll vfp7r.dll vfp7renu.dll vfp7resn.dll

【问题讨论】:

  • 加密函数要么是外部调用,要么包含外部调用。如果您有来源,您应该能够看到加密/解密的执行位置/方式。
  • 我有...但是函数只是“wreturn = encrypt(plaintext,wpassw)”并且加密函数没有在任何地方定义。也许在那些 DLL 中...我不知道
  • 您提到您拥有加密密钥 - 它们是如何提供给加密代码的?
  • 正如西蒙所说。 FWIW,Craig Boyd 的 VFPEncryption 库可能是过去十年中 VFP 社区中最受欢迎的库,并且具有 Encrypt() 函数。它是 FLL 而不是 DLL,另见 sweetpotatosoftware.com/SPSBlog/2009/08/09/…

标签: encryption cryptography visual-foxpro encryption-symmetric


【解决方案1】:

VFP 没有任何本机加密功能。您列出的那些 DLL 只是 VFP 7 运行时和 VFP 7 运行时所依赖的 Visual C++ 运行时。

我会做的是:

  1. 从 sysinternals.com 下载 Process Explorer。
  2. 启动它,然后运行您的 VFP 程序可执行文件。
  3. 在 Process Monitor 进程列中找到您的程序 EXE,然后单击一次。
  4. 在顶部的工具栏中,使用按钮在查看句柄和查看 DLL 之间切换。这将列出 EXE 已打开的每一个。

我怀疑是 Craig Boyd 的图书馆。

【讨论】:

    【解决方案2】:

    如果您的 VFP 应用程序是基于 Visual MaxFrame 构建的,那么它包含自己的加密/解密功能作为 prg,它是框架 (x3ed.prg) 的一部分。

    它基本上是一个带有一些模块化逻辑来翻转几个位的密码,但有两种变体。

    如果你有一个特殊的密钥,那么这可能不是它,但以防万一。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-27
      • 2012-11-22
      • 2012-03-08
      • 2012-11-30
      • 2019-09-11
      • 2012-07-01
      • 2018-08-26
      相关资源
      最近更新 更多