Installation 如何从反编译中保护/加密Inno安装程序

Installation 如何从反编译中保护/加密Inno安装程序,installation,inno-setup,Installation,Inno Setup,我正在使用Inno设置工具打包/设置我的所有文件(dll、exe、jpg等)。 但我发现有一个名为的软件,它可以真正打开我的安装程序,读取所有脚本,还可以提取所有文件,因为我需要在安装程序中隐藏/保护我的文件。我花了很多时间/精力来保护我的setup.exe,它是从中生成的,但我发现有人说向Inno安装脚本添加密码,但这也是错误的,因为客户知道密码,他可以简单地使用InnoExtractor提取所有东西,即使它受密码保护!不是吗 现在,我只是问是否有人可以建议我解决这个问题。事实上,我嵌入了XM

我正在使用Inno设置工具打包/设置我的所有文件(dll、exe、jpg等)。 但我发现有一个名为的软件,它可以真正打开我的安装程序,读取所有脚本,还可以提取所有文件,因为我需要在安装程序中隐藏/保护我的文件。我花了很多时间/精力来保护我的setup.exe,它是从中生成的,但我发现有人说向Inno安装脚本添加密码,但这也是错误的,因为客户知道密码,他可以简单地使用InnoExtractor提取所有东西,即使它受密码保护!不是吗


现在,我只是问是否有人可以建议我解决这个问题。事实上,我嵌入了XML文件和DLL,用于根据客户端机器在客户端安装特定的文件,但是如果客户端将所有DLL提取到他的机器上,那将是一场灾难!我需要一种方法来防止客户端看到/提取我的setup.exe

如果您需要能够在用户的计算机上运行相同的代码,则无法保护代码不受用户的攻击。一旦您将文件交付到客户机,无论您使用何种方法打包它们,客户机都可以提取文件

你只能让它变得更难,但没有绝对的解决办法

使用的标准工具越多,反编译代码就越容易。如果您想使反编译变得困难,请使用自定义安装程序,而不是依赖标准安装工具(如Inno Setup)


也许唯一安全的方法就是使用一些在线服务

  • 您可以使用一些非常强的密码对文件进行加密(每个文件/DLL使用不同的加密密钥)。安装程序将要求用户输入一些密码,并将密码发送到一些在线服务。验证密码后,联机服务将发回允许客户端安装的DLL的解密密钥。这将允许安装程序仅解密该客户端的DLL

  • 另一种选择是,只有在验证客户端之后,安装程序才会从服务器下载DLL


    • 没有办法100%保护安装程序免受攻击者的攻击。如果有人想破解它,那么它可以做到

      您可以做什么:

      1) 使用某些自定义(第三方)系统或使用[Setup]Encryption指令加密文件

      2) 修改Inno设置-下载源代码,更改它们并重新编译

      3) 将敏感文件和数据放在服务器上,并在安装过程中下载(+加密)


      4) [代码]部分无法完全解包,将一些计算或文件操作放在那里(第4页)不是真的。也许有人还没有编写完整的反汇编程序(或者我不知道有)。但这是可以做到的,就像任何代码一样。我计划有一天自己做:)+1不管怎样,你所说的修改Inno安装下载源是什么意思。马丁:如果你有太多的时间,请尝试编写一个小应用程序,帮助解决运行时错误(226:472):类型不匹配等错误。这对许多用户来说真的很有用@Slappy你的意思是将这些数字映射到一个真实的代码行数字吗?@是的,我相信脚本是以某种方式编译到安装程序/卸载程序中的(正如你提到的,可以将其解包),因此我认为可以从这个226:472数字计算出正确的命令/操作/行