我正在用Winforms开发应用程序,似乎无法对可执行文件和其他生成的程序集进行反编译……tools可以在几秒钟内反编译。有混淆器可用。但是,我专门在寻找免费的。
我在应用程序中存储了一些非常敏感的字符串,尽管我尽力将其加密或保存在本地sqlite数据库中,但总是存在一个单点故障,使整个应用程序容易受到攻击。我检查了两个混淆器,分别是open source和commercial offerings。开源软件似乎已经坏掉了,而商业软件的价格却相当高,对于像我这样的独立开发者来说,这是无法承受的。
我知道可执行文件必须在内存中运行,这本身使其容易受到攻击。坚定的攻击者最终可以反编译应用程序。但是,我想使此过程尽可能昂贵。至少我要保护应用程序中的字符串。
我的问题是,如果我决定不使用任何昂贵的可用选项,是否无法保护应用程序集免受逆向工程?
答案 0 :(得分:1)
Windows中有很多保护措施。但这就是保护用户免受您侵害的全部方法,而不是相反。
答案 1 :(得分:0)
反编译的简单事实是:“只要计算机仍然可以执行它,它也可以反编译它。”
执行是将二进制文件转换为动作的过程。
反编译是将二进制文件转换为代码的过程。
如果其中一个被阻止,则另一个也被阻止。
混淆会使读取反编译后的代码变得更困难。但这就是它所能做的一切。
我在应用程序中存储了一些非常敏感的字符串,尽管我尽力使它们保持加密状态或在本地sqlite数据库中,但总是存在一个单点故障,使整个应用程序容易受到攻击
每个字符串仅与保存它的位置一样保存。加密密钥也是如此。有2种有限的解决方法:
这取决于您的实际方案。但是最后,如果要使用字符串或其他形式的信息,则它在内存中很容易受到攻击。