历时九个月,variant 终于补全当初项目最初设想的最后一块拼图,自定义(复制)图标和属性信息
闲聊几句
一般来说,给远控或者各种马添加图标有两个步骤:
- BeCyIconGrabbe 快速提取一个图标
- Restorator 2018 添加图标
- Resource Hacker、Qicon Changer、在线网站等等
不过,都不够优雅
go-winres
项目地址:https://github.com/tc-hib/go-winres
先不关注这个项目的实现原理,来看下它的用途:
NAME:
go-winres - A tool for embedding resources in Windows executables
USAGE:
go-winres [global options] command [command options] [arguments...]
COMMANDS:
init Create an initial ./winres/winres.json
make Make syso files for the "go build" command
simply Make syso files for the "go build" command (simplified)
extract Extract all resources from an executable
patch Replace resources in an executable file (exe, dll)
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help
- init:初始化图标和属性信息
- make:暂不关注
- simply:暂不关注
- extract:提取指定对象的图标和属性信息
- patch:给指定模板添加图标和资源信息
variant 在 20240926 的更新中新增了 gores 模块,可以快速调用上述方法,而且理论上可以用于任何Go编译的程序
秽土转生:Visual Studio Code
// 添加图标和文件信息
winres := gores.GoWinRes{
CompilePath: "output", // 指定编译目录
ExtractFile: "Code.exe", // 指定提取资源文件的对象
ExtractDir: "", // 指定提取资源文件后输出的路径
PatchFile: ExeFileName, // 指定使用 Patch 添加资源文件的对象
}
// 提取 vscode 所有的资源文件
err = winres.Extract()
if err != nil {
log.Fatal(err)
}
// 使用 Patch 添加资源文件到编译后的程序
err = winres.HandleWinRes()
if err != nil {
log.Fatal(err)
}
实现效果
关于资源信息对于免杀的影响
一般来说特定的ICO HASH会被标记,特定的资源也会被标记,所以添加图标和资源的这个方法只是一个增加不被怀疑的可能性
还有一些项目是微调ICO的RGB来达到修改HASH的目的,以此来绕过杀软或者沙箱等等的特征标记,其实这个 variant 项目早已实现
当然还有一些安服项目中需要钓鱼需要伪装,后继还会上线绑定执行的模块
在常用的添加图标和资源信息的软件特征被标记了的今天,工具似乎已经不重要了,思路才是
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
请登录后查看评论内容