自从上一周以来,我一直在努力解决这个问题.我混淆了我的应用程序的exe.我们的应用程序是在线Web应用程序的离线工具 客户端将安装此应用程序并连接到Internet,应用程序将下载相关信息并存储在客户端计算机上的xml文件中以供进一步显示.出于安全考虑,我们正在加密这些xml文件.不幸的是,我们在exe内部有一个方法GetCryptXML,它将在客户机上读取加密的settings.xml并在解密后返回它.此setting.xml也包含其他xml的加密密钥.
我面临的问题是,即使在混淆之后,人也可以通过传递混淆的名称来调用GetCryptXML方法.
有什么方法可以解决这个问题吗?
这是我解决问题的想法,但我不确定如何实施.
我的想法:只有通过使用InvokeMember()函数进行反射才能调用我的函数.在可以调用此函数之前,他/她需要使用此函数来加载程序集.
Assembly.LoadFrom("myapplication.exe")
Run Code Online (Sandbox Code Playgroud)
如果myapplication.exe中的代码可以识别哪个应用程序试图加载我,那么我们可以限制它们加载,如果它不是应用程序.我不知道怎么解决.
任何帮助是极大的赞赏.
谢谢.