此项目在一些大佬的基础上进行了修改,或许能提供一些思路。还在学习中很菜很菜,不足之处还请师傅们多多指点

tips

  • 对shellcode使用AES + Base85加密后以txt保存在远端供下载。
  • 针对url和解密的密钥进行了加密,这两个参数是替换的,只有在使用时才会解密。
  • 替换字节数组可能会有问题,源字节数组和目标字节数组的长度不匹配导致了错误的替换,在最后传入时剥离\x18即可
  • 马子的生成无需重新编译,而是通过直接替换二进制的
  • go在远程加载上由于常用的net包被盯的很死,就用了一个前段时间出现的"github.com/carlmjohnson/requests"
  • 函数的变量名上都简化,在调用dll文件时都使用字节数组替换字符串来规避静态检查。
  • 反沙箱,反虚拟机,延时执行,资源检查。
  • 直接使用upx已经不合适了,go-strip的特征也被标记都会提升查杀率
  • 隐藏黑框不要使用编译参数,而是使用"github.com/lxn/win"这个包
win.ShowWindow(win.GetConsoleWindow(), win.SW_HIDE)

测试

原始情况下vt查杀9/70

然后使用gotrip去除编译信息,upx压缩,反沙箱之后。好家伙被查的死死的。

也难怪,upx的特征很明显,去掉upx之后下降了很多。

再取消使用go-strp又下降了一点,目前反沙箱是有正向效果的,不过这个也挺久了(只有检查是否为虚拟机,资源、dbg,延迟执行),看到有些师傅通过桌面壁纸的hash来判断,后续再去学习。

结果

所以最后就是原始+反沙箱。一下测试时间均为9月25日,只测了火绒和联想电脑管家,动静态均通过。

方法 vt比例 比较
原始 9/70 0.1285
原始 + 反沙箱 8/71 0.1126
原始 + 反沙箱 + go-strip 9/71 0.1267
原始 + 反沙箱 + go-strip + upx 14/71 0.197

微步1/26

过火绒

过联想电脑管家

项目地址

传送门

loader编写小记的更多相关文章

  1. Webpack学习-Loader

    什么是Loader? 继上两篇文章webpack工作原理介绍(上篇.下篇),我们了解到Loader:模块转换器,也就是将模块的内容按照需求装换成新内容,而且每个Loader的职责都是单一,只会完成一种 ...

  2. 关于webpack官网的学习

    webpack,从名词上,"web pack",大概可以看出是一个网页打包工具,其实它具有打包.压缩.解析编译的功能. 使用(配置webpack.config.js) entry: ...

  3. webpack系列--浅析webpack的原理

    一.前言 现在随着前端开发的复杂度和规模越来越大,鹰不能抛开工程化来独立开发,比如:react的jsx代码必须编译后才能在浏览器中使用,比如sass和less代码浏览器是不支持的.如果摒弃这些开发框架 ...

  4. Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

    #29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类T ...

  5. 在Salesforce中通过编写C#程序调用dataloadercliq的bat文件取触发调用data loader来批量处理数据

    通过这篇文章 http://www.cnblogs.com/mingmingruyuedlut/p/3413903.html 我们已经知道了Data Loader可以对Salesforce的Objec ...

  6. webpack3.0之loader配置及编写(一)

    loader 用于对模块的源代码进行转换.loader 可以使你在 import 或"加载"模块时预处理文件.loader 可以将文件从不同的语言(如 TypeScript)转换为 ...

  7. webpack loader和插件的编写原理

    webpack自定义loader和插件的api网址:https://www.webpackjs.com/api/loaders/ 点击顶部API,看左侧api: 1. 如何编写一个loader 实现的 ...

  8. 恶意软件开发——编写第一个Loader加载器

    一.什么是shellcode loader? 上一篇文章说了,我们说到了什么是shellcode,为了使我们的shellcode加载到内存并执行,我们需要shellcode加载器,也就是我们的shel ...

  9. 初探webpack之编写loader

    初探webpack之编写loader loader加载器是webpack的核心之一,其用于将不同类型的文件转换为webpack可识别的模块,即用于把模块原内容按照需求转换成新内容,用以加载非js模块, ...

  10. 编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

    package car; public class Vehicle { //定义成员变量 private int wheels; private double weight; public int g ...

随机推荐

  1. windows10 jdk下载及环境配置

     一.环境准备 windows10 系统 jdk 各种版本(配置大同小异) 二.下载并安装jdk 下载地址:http://www.oracle.com/technetwork/java/javase/ ...

  2. 每日一练:无感刷新页面(附可运行的前后端源码,前端vue,后端node)

    1.前言 想象下,你正常在网页上浏览页面.突然弹出一个窗口,告诉你登录失效,跳回了登录页面,让你重新登录.你是不是很恼火.这时候无感刷新的作用就体现出来了. 2.方案 2.1 redis设置过期时间 ...

  3. python入门基础(13)--类、对象

    面向过程的编程语言,如C语言,所使用的数据和函数之间是没有任何直接联系的,它们之间是通过函数调用提供参数的形式将数据传入函数进行处理. 但可能因为错误的传递参数.错误地修改了数据而导致程序出错,甚至是 ...

  4. 解决SpringBoot3.X中starter配置自动注入失效问题

    在自定义 starter 项目时,如果组件无法被 @ComponentScan 扫描并且想自动注册到 IOC 中,在springboot2.7之前 我们会采用 spring,factories 方式, ...

  5. Python--乱码转化为中文

    1. \u和\x的含义 \u:代表的是unicode码 \x:代表的是16进制码 2. 代码实现 :\x类型 # \xe4\xb8\xad\xe6\x96\x87 代表的意思是'中文' s = u'\ ...

  6. Chromium Mojo通信

    Mojo 是一个跨平台 IPC 框架,它诞生于 chromium ,用来实现 chromium 进程内/进程间的通信.目前,它也被用于 ChromeOS. 在我们代码应用中,如何使用Mojo来作进程间 ...

  7. Redis 6 学习笔记 1 —— NoSQL数据库介绍,Redis常用数据类型

    NoSQL数据库介绍(了解) 技术的分类1.解决功能性的问题:Java.Jsp.RDBMS.Tomcat.HTML.Linux.JDBC.SVN,2.进一步地,解决系统功能扩展性的问题:Struts. ...

  8. Go 如何实现多态

    在 Go 语言中,虽然没有经典的面向对象编程中的继承和多态的概念,但你可以通过接口(interface)来实现多态性.Go 语言鼓励组合和接口多态,这使得代码更加灵活和模块化.下面将详细介绍 Go 语 ...

  9. 从零开始搭建antd4.x + react16 + redux4 + webpack4 + react-router5基础框架解析

    以上是2020年10月份的版本,后来,我将xmind进行了完善,文档也写的差不多了,可是,电脑坏了,硬盘换了,文件都没有了.这已经是第三次写这个文档了,思维导图就不更新了,按照几个重点进行说明. 这个 ...

  10. 对于goland相对较新一些版本新建项目时没有go mod模式选项的坑

    前言 对于一些小白在网上看很早的一些go视频,使用goland2020.3.x版本或者其之前版本创建新项目,里面会有GO Modules(vgo)这个选项,也就是gomod模式创建新项目,然而对于现在 ...