Dav*_*vid 8 .net c++ security decompiling binaries
众所周知,.NET生成的dll可以很容易地反编译.这意味着敏感信息(例如加密密钥)不应存储在.NET二进制文件中.
在(例如)可能由我的.NET代码使用的C++二进制文件中存储敏感数据是否是一种明智的替代方法?我还不知道互操作的东西,但我很好奇这是否是一个值得追求的途径.我想澄清一下,我的问题是:
gbj*_*anb 12
答案是不.虽然它真正的.NET dll可以简单地反编译为其原始结构,并且C/C++ dll只能被反编译成编译器会喜欢的怪物混乱,存储在那里的数据将放在一个大的,un - 所以任何知道要查看哪个部分的人(并且,好的,所有数据都紧挨着彼此,因此很难知道哪个位是哪个),但数据将在那里供所有人查看.
谷歌用于数据段,这是本机Windows二进制文件中静态数据的放置位置.
快速编辑:当然,您可以将加密信息存储在C++二进制文件中,对其进行预加密,但您必须使用其他东西来存储解密密钥(例如您的Windows用户密码或类似密码)..NET允许您将敏感信息存储在配置文件中,并在首次运行或安装时轻松加密,然后根据应用程序运行的用户帐户详细信息对其进行加密和解密(因此请勿更改,并保留某处未加密的配置文件的副本:-))