01
前言
由于制作免杀时经常要用到的一些加解密和字符串转换,经常要切换另一个项目或要打开另一个工具来进行加解密或转换,切换另一个项目非常麻烦,使用的工具又不能完全满足我的要求,还要自己进行调整,如果工具是java写的打开还会非常慢,于是我按照本人的习惯,将我制作免杀时经常要用到的一些功能集成到了一个小工具中,使用C 编写,使用起来小巧快速。
工具文末下载。
02
使用
使用方法如下,内容不多,但是非常灵活:
代码语言:javascript复制用法:
-p <password> 数字加密密钥,可以为单个字符
-x <string> 要加解密的16进制shellcode或要编码和解码的内容
-f <file> 从文件输入要加解密或要编码和解码的二进制内容
-o <file> 输出文件
-c <string> 要清除空字符,可以为16进制字符串
-h 与 -o 使用,输出转为C语言的头文件
-d 解密
-dd 解密以16进制显示
实用选项:
-hex 进入16编码解码模式
-base64 进入base64编码解码模式
-er 进入熵减加解密模式
-nc 不使用熵减加解密模式压缩
-t 字符串转堆
-tt 字符串转Unicode堆
默认进行自定义异或随机值加解密,加密内容可以为字符串与16进制字符串,输出为16进制字符串:
-d 解密:
-dd 解密以16进制显示:
解密代码如下:
代码语言:javascript复制unsigned char* decrypt(unsigned char* input, int len, unsigned int key) {
unsigned char* output = new unsigned char[len];
srand(key);
for (int i = 0; i < len; i ) {
output[i] = input[i] ^ (rand() % len 1);
output[i] = output[i] ^ key;
}
return output;
}
-f 输入文件,-o 输出文件:
下面是一个很实用的功能,与 linux 的 xxd -i input.txt > output.txt
命令功能相同。
-h 输出为C语言头文件,可以直接在代码中引用:
-hex 16进制编码和解密,-base64 base64编码和解密:
-t 与 -tt,与 -h 有点类似,将字符串转堆数组以便在代码中使用:
还有最近写的 -er 熵减加解密,将字符串加密成熵值比较低的字符串,减少报毒:
-nc 可以禁用熵减加解密的压缩,压缩对大shellcode效果比较好,较小的shellcode使用压缩后可能反而会变大。
加密内容与上面的对比小了很多。
03
最后
相应的C 解密算法都在源码中,源码仅对星球内部成员开放。
可以自己修改源代码中的加解密函数,实现自己的加解密:
要添加更多的加解密也非常简单。
- 修改一下入口的命令值获取:
- 添加加解密:
锦鲤安全
一个安全技术学习与工具分享平台
点分享
点收藏
点点赞
点在看