秽土转生:图标和属性信息

历时九个月,variant 终于补全当初项目最初设想的最后一块拼图,自定义(复制)图标和属性信息

闲聊几句

一般来说,给远控或者各种马添加图标有两个步骤:

  1. BeCyIconGrabbe 快速提取一个图标
  2. Restorator 2018 添加图标
  3. Resource HackerQicon 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
  1. init:初始化图标和属性信息
  2. make:暂不关注
  3. simply:暂不关注
  4. extract:提取指定对象的图标和属性信息
  5. 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)
	}

实现效果

6000c743e820240926152834

关于资源信息对于免杀的影响

一般来说特定的ICO HASH会被标记,特定的资源也会被标记,所以添加图标和资源的这个方法只是一个增加不被怀疑的可能性

还有一些项目是微调ICO的RGB来达到修改HASH的目的,以此来绕过杀软或者沙箱等等的特征标记,其实这个 variant 项目早已实现

当然还有一些安服项目中需要钓鱼需要伪装,后继还会上线绑定执行的模块

在常用的添加图标和资源信息的软件特征被标记了的今天,工具似乎已经不重要了,思路才是

 

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容