首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在c#中“携带”字节并运行它?

如何在c#中“携带”字节并运行它?
EN

Stack Overflow用户
提问于 2013-01-14 21:23:56
回答 2查看 188关注 0票数 0

我需要我的程序是安全的,因为它的内容包括个人信息,如IP (一个私人IRC聊天,如果你必须知道)。我的计划是读取程序的字节,然后创建一个对称加密算法(如AES )来加密字节数组,为了提高安全性,我增加了其他一些次要的内容,例如可以处理调试和仿真器。然后,我将使用codedom来创建“承载”这些加密字节的存根。我知道有两种方法可以“携带”代码:

  1. 将加密的字节追加到存根中,以便对其进行解密、写入和运行。(称为下降)
  2. 将它添加到存根的资源中,这样它就可以解密和加载它,这样它就能够在内存中运行它。

我可以有4种方法,添加到资源,然后解密,写和运行或附加,然后解密,加载和运行在内存中。我也可以在代码中造成我自己的小混淆,但我怀疑这会有多大的区别。

方法2似乎被人滥用,并被反病毒检测到,而且每次调试时都会让您的项目被反病毒阻塞,这真的很烦人。足够的借口,它将只是一个假阳性的用户,当所有的程序正在做的是保护自己不容易被分解的程序,如红门反射器。包括数据库信息(例如SQL登录方法),如果解压缩,仍然需要分析:

还有更多的方法吗?

EN

回答 2

Stack Overflow用户

发布于 2013-01-14 21:38:48

没有办法做你所描述的事情。把它处理掉。

另一种方法是拥有一个way服务,用户必须对其进行身份验证,然后通过安全通道(例如SSL/TLS)发送敏感信息。

第二种方法可能是

  1. 使信息
  2. 将敏感信息的加密版本嵌入可执行的
  3. 在运行时向用户询问一个对称密钥(例如,他必须输入数据的"passwort“)
  4. 使用对称密钥解密信息
  5. 使用信息

这里最大的缺点是,如果对称密钥(例如密码)以任何方式被窃取,攻击者就可以获得所有这些加密信息。

票数 2
EN

Stack Overflow用户

发布于 2013-01-14 21:30:37

SecureString呢?似乎这会处理隐藏在程序中的信息,而不需要花费大量的精力。如果内存在执行过程中被转储,那么数据将被加密。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14326929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档