EXE竞争(针对.NET应用程序)算法在二进制代码中显示具有真实人名的奇怪字符

Sec*_*ret 0 .net compression algorithm exe runtime

刚打开刚才编译的.net应用程序并在文件的二进制结构中找到了下一个:

在此输入图像描述

我刚刚使用我的HTTP解析器工具,我正在使用子串搜索算法进行训练,并在不同的地方找到了一些人类"Ivan Medvedev"的真实姓名.

它是什么?

Han*_*ant 8

他是一名安全专家,曾在谷歌工作,此前曾在微软工作过.他的名字出现在他在Codeproject上发布的这个项目中用于初始化PasswordDeriveBytes的字节中:

    PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, 
        new byte[] {0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 
        0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76}); 
Run Code Online (Sandbox Code Playgroud)

看起来很熟悉?这在程序的元数据表中逐字结束,当您查看可执行文件并位于文件的早期时,以明文形式显示.不好.他在文章中警告说:

还应该有一些加密特定的考虑因素.例如,PasswordDeriveBytes中的salt值最好是随机的而不是硬编码的(有时可以将它们硬编码,例如,当加密很少发生并且攻击者无法访问代码时).如果盐是随机的并经常更换,您甚至不必保密.此外,如果可能,使用byte []键而不是密码.由于人为因素,基于密码的加密不是保护信息的最安全方式.为了从密码中获取128位密钥信息,它必须很长.如果您只使用小字母,每个字符可以提供大约5位信息,并且您的密码长度必须超过25个字符才能达到128位.如果您使用大写字母和一些符号,则每个字符可以达到大约7位,密码最小长度必须大约为18个字符(密码需要多长时间?;-)).

嗯,你知道为什么.这就是他的样子:

在此输入图像描述