【问题标题】:Return value of c# exe with execc# exe与exec的返回值
【发布时间】:2011-12-13 09:49:19
【问题描述】:

我在使用 inno 设置时遇到问题。我正在使用 inno 安装更新,并使用 update.exe 用户获得带有许可证号的 txtfile。在他的 Unit 上,这个 licencenumber 可由 dll 函数读取。

在安装过程之前,我必须比较这些数字。仅当此数字相同时,用户才尝试在具有正确许可证的正确计算机上安装更新。

如果我将此检查放入单独的 exe 中,则只需更改 exe 即可轻松破解它(无错误代码)。所以我想将检查拆分为单独的 exe(我在其中检查其他一些东西,如安装的版本号等)和 update.exe

在更新 exe 中,我想读取更新包内的 txt 文件 - 这很简单。 在 check.exe 中,我想调用内部 dll 并获取机器的许可证号。我必须将此数字作为 int 返回。 C# 允许我这样做。

但是我怎样才能在 innosetup 中得到这个数字呢?

我尝试为此获取错误代码(0=错误 - 版本不正确等,XXXXXXXXX = 机器的许可证号)。但是错误代码在 inno 中只有 2 个字符。我只得到 2 个字符...

将数字保存在另一个文件中不是解决方案,因为用户可以通过这种方式破解它......是否可以在不给用户机会操纵的情况下将数字放入 inno 中?

【问题讨论】:

    标签: security licensing exec inno-setup pascal


    【解决方案1】:

    如果您将代码移动到 DLL(COM 或普通 stdcall DLL)中,那么 Inno 可以使用它并在它们之间传递额外的数据,包括完整的字符串等。

    【讨论】:

      猜你喜欢
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多