首页 > 其他分享 >go语言免杀-garble混淆

go语言免杀-garble混淆

时间:2024-08-25 15:36:56浏览次数:10  
标签:混淆 exe 免杀 amd64 Go go garble

题记

“愿先生心境,四季如春”

  作者回答:剑来之所以最大宗旨,是“我们不要轻易对这个世界失望”,因为道理太简单不过了,我们每个人在现实生活当中,太容易对人对事,产生大大小小的失望。而“愿先生心境四季如春”这句话,以后在书中会被主角回答一句“愿学生心境如春”,我会有意去掉四季一词,因为四季如春,太难做到,但是当我们能够每次从失望,重新变成心怀希望,就是一次新年辞旧岁,心境再次入春。

  自评:初识此句,陈平安即将入局书简湖,这是学生对先生的殷切期盼,祝先生能度过此难关。某天,我走在路上,脑中突然浮现这句话,我感受到了一种最美好的祝福。人这一生,是不断变化的一个过程,今天你的想法,明天就会变,甚至两极反转。一个人无法保证今天的标准适用明天的你,所以总有人说“想起一出儿是一出儿”,可见坚守本心是多么不容易的一件事,当初胸怀天下、慷慨激昂立志说要改变世界的少年,也许就会因为平平淡淡的工作而磨平棱角并自嘲说躺平了。人的想法一直在变化,想法的变化又带来情绪的变化,我们总是在伤心、难过、失落、开心、惊喜、委屈中循环往复,愿先生心境,四季如春,这是多么美好的祝福啊!我们不要伤心,不要难过,我们的心情,一直如春天一样,将会多么幸福。

安装高版本go

  由于garble不支持低版本的go,要求版本大于1.20。所以要先把之前的go卸载掉,然后安装新版本的go。

  go env我们可以看到GOROOT与GOPATH两部分。问过chatgpt后我们可以知道。

  GOROOT是Go语言安装目录的路径,指向 Go 语言的安装位置。包含 Go 语言的标准库和工具链(如编译器、工具等)。通常在安装 Go 语言时自动设置,用户一般不需要手动修改。

  GOPATH是Go语言工作区的路径,指向用户的工作目录。用于存放用户的 Go 语言项目和第三方库。

 

  将这两个路径下的go文件删掉就好了。

  安装新版本的go:

下载和解压go高版本:

wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gztar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz

 

编辑环境变量配置:vi ~/.bashrc

 

在后面加入:

export PATH=$PATH:/usr/local/go/bin

export GOPATH=$HOME/go

 

让配置文件立即生效:source ~/.bashrc

 

验证版本:go version

garble混淆

  安装garble,只需要一条命令:go install mvdan.cc/garble@latest

  这里需要注意的是,go把garble下载到了GOPATH路径下的bin文件夹里,正常执行不了,需要把这个移动到/usr/local/go/bin下边,让环境变量能够读取到。

  一切都完成后发现还需要安装下sys模块。

  这里可参考我上篇文章。

  一切准备就绪后,可以使用garble混淆go代码了。以下是参考命令。

混淆偏移:

GOOS=windows GOARCH=386 garble -literals -tiny -seed=random build -ldflags="-s -w -H windowsgui" -o 333.exe 333.go       无黑框

 

GOOS=windows GOARCH=amd64 garble -literals -tiny -seed=random build -o app.exe main.go

 

其他编译:

garble -tiny -literals -seed=random build -ldflags="-w -s -H windowsgui" -race go-sc.go

garble(混淆库):

  -tiny              删除额外信息                    

  -literals          混淆文字

  -seed=random       base64编码的随机种子

 go:

  -w                 去掉调试信息,不能gdb调试了

  -s                 去掉符号表

  -H windowsgui      隐藏执行窗口,不占用 cmd 终端。(被查杀率高)

  -race              使数据允许竞争检测,编译时改变了生成后的文件特征,使得杀软无法检测,当然有一天也会失效的。

 

  编译完成后我们可以看到,木马体积变得很大,变得大了小一半。

  可直接过火绒上线,360过不了。

其他处理-这里不进行测试了,用的时候再说

upx压缩体积

  马子太大的话可以使用这个压缩体积

项目地址:

  https://github.com/upx/upx

 

  upx.exe -9 xxx.exe

去特征

项目地址:
  https://github.com/optiv/Mangle


  可以使用去特征工具再进行一步特征去除:Mangle_1.2_windows_amd64.exe -I app-amd64.exe -M -O aaa.exe

参考文章

  免杀fscan教程:https://mp.weixin.qq.com/s/k2uoGGODWZ_QxpBSTeqhwA

  go语言学习过程报错处理:https://www.cnblogs.com/sunny11/p/18367820

标签:混淆,exe,免杀,amd64,Go,go,garble
From: https://www.cnblogs.com/sunny11/p/18379012

相关文章

  • Android fork 进程 process(init/Zygote/SystemServer)
    ##Android的init/Zygote/SystemServer Android手机先开机,init/Zygote/SystemServer,然后启动Framework,然后启动Launcher;【安装APP(PMS),】然后启动APP(AMS)。所有的Android应用进程都是有Zygote进程fork出来的。Android系统启动流程(一)解析init进程-http://blog.csdn.net/itach......
  • GO中GRPC
    什么是GRPCgRPC是一款语言中立、平台中立、开源的远程过程调用系统,gRPC客户端和服务端可以在多种环境中运行和交互,例如用java写一个服务端,可以用go语言写客户端调用。数据在进行网络传输的时候,需要进行序列化,序列化协议有很多种,比如xml,json,protobuf等gRPC默认使用protocolbu......
  • golang mutex原理
    最近面试遇到问锁的问题,答得不是很好,重新做一下总结梳理 go中的sync包提供了两种锁的类型,分别是互斥锁sync.Mutex和读写锁sync.RWMutex,这两种锁都属于悲观锁饥饿模式与正常模式在下面的内容会经常涉及到一个概念,饥饿模式,这里先简单说一下1.正常模式(非公平锁)正常模式下,所......
  • 计算机毕业设计django+vue共享自习室系统【开题+程序+论文】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着社会对终身学习和自我提升需求的日益增长,共享自习室作为一种新兴的学习空间模式,逐渐受到广大学习者的青睐。然而,传统的自习室管理方式......
  • 计算机毕业设计django+vue基于Android的婚物语APP的设计与实现【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着移动互联网技术的飞速发展,智能手机已成为人们日常生活中不可或缺的一部分,特别是在婚嫁领域,移动应用以其便捷性、实时性和个性化服务的......
  • Go使用crypto实现AES和RSA加密处理
    前言在Go语言中,实现数据加密可以通过使用标准库中的crypto包以及encoding/base64等包来完成。这里,我们将重点阐述如何在Go语言中使用这些库来实现对称加密和非对称加密的详细逻辑。一、对称加密对称加密是指加密和解密使用同一密钥的加密方式。常用的对称加密算法有AES、......
  • Centos 7.9安装go
    1.go文件的下载:Downloads-TheGoProgrammingLanguage 2.放入linux系统中,并在/usr/local/目录下解压文件#cd/usr/local/#tar-zxvfgo1.19.linux-amd64.tar.gz#解压文件3.更改环境变量:#vim/etc/profileexportGOROOT=/usr/local/go/exportGOPATH=/home/goexpor......
  • Writing your first Django app, part 1
    使用以下代码查看django的版本信息。$python-mdjango--version进入项目文件夹创建一个名为mysite的django项目。$django-adminstartprojectmysite会创建一个项目目录mysite/manage.pymysite/__init__.pysettings.pyurls.......
  • go免杀学习记录
    题记最近剑来动漫上线,虽然观感不如我的预期,感觉节奏过快。但是也是一种进步了,愿各位道友都能找到自己的宁姚。"我喜欢的姑娘啊,她眉如远山,浩然天下所有好看的山,好看的水,加起来都不如她。她睫毛轻颤的模样,落在了我的心里。那万年不动的剑气长城,都好像轻轻晃了晃。"  ......
  • Study Plan For Algorithms - Part11
    1.合并两个有序链表题目链接:https://leetcode.cn/problems/merge-two-sorted-lists/将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。classSolution:defmergeTwoLists(self,list1:Optional[ListNode],list2:Option......