反混淆
1.所有字符串和配置数据没有加密。 1分
2.所有字符串和配置数据加密了但是静态反编译之后就是一坨坨。 2分
3.所有字符串和配置数据加密了但是静态反编译之后很干净,和普通商业软件很像。 3分
解密时机的选择
.在执行后等待一段时间后解密或去混淆所有字符串数据或配置数据。
PE净化
务必从二进制文件的最终构建中去除所有调试符号信息、清单(MSVC 工件)、构建路径、开发人员用户名
请勿留下与一般美国核心工作时间(即东部时间上午 8 点至下午 6 点)相关的日期/时间,例如编译时间戳、链接器时间戳、构建时间、访问时间等
尽一切合理努力将所有将上传到远程目标的二进制文件的二进制文件大小最小化(不使用打包程序或压缩)。对于功能齐全的工具,理想的二进制文件大小应小于 150KB。
不要导出敏感的函数名称;如果二进制文件需要导出,请使用序数或良性函数名称。
内存清除
一旦不再需要该数据,请立即从内存中明确删除敏感数据(加密密钥、原始收集数据、shellcode、上传的模块等)
务必使用beacon/网络通信的可变大小和时间(又名抖动)。不要预测性地发送具有固定大小和时间的数据包。
不要使用以美国为中心的时间戳格式,例如 MM-DD-YYYY。通常首选 YYYYMMDD
编译环境
最好使用低版本的VS,譬如vc+++6.0,不要设置语言,默认为英语。在虚拟机中开发,不要安装杀毒软件。