前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自写免杀辅助小工具

自写免杀辅助小工具

作者头像
Creaper
发布2023-11-20 12:37:35
2410
发布2023-11-20 12:37:35
举报
文章被收录于专栏:锦鲤安全锦鲤安全

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++解密算法都在源码中,源码仅对星球内部成员开放。

可以自己修改源代码中的加解密函数,实现自己的加解密:

要添加更多的加解密也非常简单。

  1. 修改一下入口的命令值获取:
  1. 添加加解密:

锦鲤安全

一个安全技术学习与工具分享平台

点分享

点收藏

点点赞

点在看

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 锦鲤安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档