一.自行编译
下载源码 : https://github.com/shadow1ng/fscan/tree/main
成品下载地址:https://pan.quark.cn/s/72cead4b313d
使用命令进行编译,编译完成之后,会生成mian.exe。
go build -ldflags="-s -w " -trimpath main.go
发现还是会被火绒查杀!
火绒为什么可以直接查杀出来呢,首先感觉肯定有明文的fscan字符串,使用strings工具查找一下。
strings .main.exe | findstr "fscan"
通过查找结果可以发现,fscan字符串主要出现在github.com/shadow1ng/fscan/Plugins/、github.com/shadow1ng/fscan/WebScan/、github.com/shadow1ng/fscan/common这三个导入包中,还有一处是出现在fscan version:地方。那是不是可以就可以将这三个包,替换成本地导入的方式。
将fscan源码拖入到VScode中,并打开mian.go,可以看到导入包中存在github.com/shadow1ng/fscan/Plugins、github.com/shadow1ng/fscan/common。
进行全局替换,将github.com/shadow1ng/fscan替换为main,替换为你想替换的任意字符都行。
在common/flag.go文件中,将fscan version替换为fs version,这里也是替换为你想替换的字符就行。
接下来,在GOPATH下的src目录中,新建一个main目录。并将fscan源码中的common、Plugins、WebScan目录,全部”复制/剪切”到新建立的main目录中。
(如果以上操作未成功, 请直接从以下步骤开始编译......)
二.使用garble混淆
既然使用go编译会进行报毒,那么换一种编译工具进行编译,这里使用garble(go必须是1.22.10版本)对fscan进行编译。
garble -literals build main.go
这个混淆偏移是我一般在使用的
garble -literals -tiny -seed=random build -o appwudi.exe main.go
garble(混淆库):
-tiny 删除额外信息
-literals 混淆文字
-seed=random base64编码的随机种子
编译后得到 appwudi.exe
如果! 如果! 如果! 报错没有成功, 就把刚刚复制的三个文件夹删掉再试试.
三.加壳压缩
使用kali 的 upx压缩一下.(当然其他的加壳工具也行)
upx appwudi.exe
四.签名
一般程序被执行得时候,杀软都会检测是否存在数字签名,所以很有必要再加一层数字签名
我这里选择了一款一直在用的签名劫持软件
https://github.com/langsasec/Sign-Sacker
这里我们掠夺超级无敌的QQ签名,嘻嘻!
最后,要把文件名字进行修改,尽量不要出现 fscan 或者 Signed 字眼,这里我们改为fc.exe, 正常情况某绒,De某der ,3某0, GW某绿球,等都是能免杀的。
测试Defender 是否免杀
某绒
3某0
GW 某緑球
《算法不难 》分为5章。第1章介绍算法的基本概念以及如何正确使用和设计算法等相关知识;第2章介绍排序算法的基本思想以及冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序和基数排序十大排序算法;第3章首先介绍图算法的基础知识,然后介绍路径搜索、广度优先搜索、深度优先搜索、最小生成树、单源最短路径、**流等常用图算法。第4章介绍字符串处理算法的相关知识,涵盖字符串基础知识以及字符串判断、字符串匹配、字符串排序和字符串压缩等。第5章介绍枚举、递推、递归、分治、贪心、动态规划、迭代、回溯和模拟九大算法思想的原理与应用。