当前位置: 首页 > news >正文

免杀对抗—C++混淆算法shellcode上线回调编译执行

前言

上次讲了python混淆免杀,今天讲一下C++混淆免杀。其实都大差不差的,也都是通过各种算法对shellcod进行混淆免杀,只不过是语言从python换成c++了而已。

实验环境

测试环境依旧是360、火绒、WD还有VT。

shellcode上线

下面是最基本几个shellcode加载器和运行代码。

#include <Windows.h>
#include <stdio.h>
#include <string.h>
#pragma comment(linker,"/subsystem:\"Windows\" /entry:\"mainCRTStartup\"")   //windows控制台程序不出黑窗口
unsigned char buf[] =" ";
int main()
{//方式一:指针执行/* ((void(*)(void)) & buf)();*///方式二:强制类型转换//((void(WINAPI*)(void))&buf)();//方式三:申请动态内存加载/*char* Memory;Memory = VirtualAlloc(NULL, sizeof(buf), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);memcpy(Memory, buf, sizeof(buf));((void(*)())Memory)();*///方式四:嵌入汇编加载//__asm {//lea eax,buf//call eax//}//方式五:汇编花指令//__asm{//mov eax, offset shellcode//_emit 0xFF//_emit 0xE0//}
}

C++呢它不能像python那样直接运行就可以上线,必须生成exe才可以进行上线。顺便说一下如果你生成的shellcode是64位的,那么编译成exe也要选择64位的,同时选择release发布版本,如果你选择debug版本的话,在运行的时候可能会出错,说缺DLL啥的。

生成exe。

但是不知道为啥运行不了,黑窗弹出来然后马上就没了,命令运行也没见啥报错,奇怪了。

虚拟机运行报错如下,有了解的还请解答一下。

后来我又找了一个加载器,不同于上面四个的,这个就可以成功运行。

void main()
{LPVOID Memory = VirtualAlloc(NULL, sizeof(shellcode), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);if (Memory == NULL) { return; }memcpy(Memory, shellcode, sizeof(shellcode));((void(*)())Memory)();
}

不用说,原生态的肯定会被查杀的。

加载器免杀

上篇文章说了,除了对shellcode进行混淆之外,还可以对加载器进行免杀。这是我从github找的开源项目,反正就是换各种奇奇怪怪的加载器来执行shellcode,但是效果就不怎么好的,基本没有免杀成功的,就不一个个测试了。

shellcode免杀

我们利用ShellcodeWrapper这个脚本进行免杀,对我们的shellcode进行异或,或者是RC4加密。

下载地址:GitHub - Ch1ngg/ShellcodeWrapperModify: Shellcode wrapper with encryption for multiple target languages

XOR

先生成一个raw格式的shellcode。

这个项目用法也简单,-cpp就是加密后生成一个c++的源文件,-CS就是生成C#的源文件,-py这些也同样的道理。

./shellcode_encoder.py -cpp -cs -py -bin -go 3.bin xor

把c++的编译一下,测试效果,其它语言自己测试就好。火绒一落地就杀了,都还没检测。

WD也是一落地就杀了。

360也杀了。

VT有41个引擎检测到,免杀效果很差,不过也正常20年的项目了,现在都不更新了。

RC4

试试RC4看看效果如何,火绒杀掉了。

360也杀掉了

WD也不行。

说明这个项目确实没啥用了,VT就不测试了。

总结

思路就是用C++来写算法对shellcode加密,以此来逃过杀软的检测。C++的免杀效果不太好,想要达到更好的免杀效果,一个就是换其他语言,比如go啊、python啊。还有就是加密脚本尽量自己写,因为网上公开的脚本,只要用的人多了,杀软就会提取它的特征加入特征库,所以这就是为啥公开的很快就失效了。并不是说自己写的脚本加密方式有多复杂,而是避开了那些特征。还有就是可以进别人的星球去买内部的免杀资源,这样的效果会好很多。

最后,以上仅为个人的拙见,如何有不对的地方,欢迎各位师傅指正与补充,有兴趣的师傅可以一起交流学习。

相关文章:

免杀对抗—C++混淆算法shellcode上线回调编译执行

前言 上次讲了python混淆免杀&#xff0c;今天讲一下C混淆免杀。其实都大差不差的&#xff0c;也都是通过各种算法对shellcod进行混淆免杀&#xff0c;只不过是语言从python换成c了而已。 实验环境 测试环境依旧是360、火绒、WD还有VT。 shellcode上线 下面是最基本几个sh…...

考研数据结构——C语言实现插入排序

插入排序是一种简单直观的比较排序算法&#xff0c;它的工作原理是通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。插入排序在实现上&#xff0c;通常采用in-place&#xff08;原地排序&#xff09;&#…...

苍穹外卖学习笔记(十三)

三. 导入商品浏览功能代码 由于user的Controller与admin的相同&#xff0c;记得修改RestController注释 1. 查询分类 CategoryController package com.sky.controller.user;import com.sky.entity.Category; import com.sky.result.Result; import com.sky.service.Categor…...

​如果没有pos信息,只有一些近景的照片,可以用​编辑重建大师进行建模吗?​

可以。软件在新建工程时&#xff0c;提供有无人机和近景的选择&#xff0c;选择为近景即可。 重建大师&#xff0c;这是一款专为超大规模实景三维数据生产设计的集群并行处理软件&#xff0c;支持卫星影像、航空影像、倾斜影像和激光点云多源数据输入建模&#xff0c;可完成超…...

智能感知,主动防御:移动云态势感知为政企安全护航

数字化时代&#xff0c;网络安全已成为企业持续运营和发展的重要基石。随着业务扩展&#xff0c;企业资产的数量急剧增加&#xff0c;且分布日益分散&#xff0c;如何全面、准确地掌握和管理资产成为众多政企单位的难题。同时&#xff0c;传统安全手段又难以有效应对新型、隐蔽…...

论文笔记(四十六)RobotGPT: Robot Manipulation Learning From ChatGPT

xx RobotGPT: Robot Manipulation Learning From ChatGPT 文章概括摘要I. 介绍II. 相关工作III. 方法论A. ChatGPT 提示机器人操作B. 机器人学习 IV. 实验A. 衡量标准B. 实验设置C. 模拟实验D. 真实机器人实验E. AB测试 V. 结论 文章概括 引用&#xff1a; article{jin2024r…...

docker - 镜像操作(拉取、查看、删除)

文章目录 1、docker search --help&#xff08;用于显示 Docker 搜索命令的帮助信息&#xff09;2、docker pull&#xff08;拉取镜像&#xff09;3、docker images (查看镜像)3.1、docker images --help&#xff08;用于显示 Docker 镜像管理相关命令的帮助信息&#xff09;3.…...

如何选择数据库架构

选择合适的数据库架构是一个复杂的过程&#xff0c;它取决于多种因素&#xff0c;包括应用程序的需求、数据量的大小、并发访问量、数据一致性要求、预算以及技术团队的熟悉程度等。以下是一些关键的步骤和考虑因素&#xff0c;帮助你选择合适的数据库架构&#xff1a; 1. 分析…...

Mysql高级篇(中)——锁机制

锁机制 一、概述二、分类1、读锁2、写锁⭐、FOR SHARE / FOR UPDATE&#xff08;1&#xff09;NOWAIT&#xff08;2&#xff09;SKIP LOCKED&#xff08;3&#xff09;NOWAIT 和 SKIP LOCKED 的比较 ⭐、 脏写3、表级锁之 S锁 / X锁&#xff08;1&#xff09;总结&#xff08;2…...

JavaWeb图书借阅系统

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 spring-mybatis.xml3.5 spring-mvc.xml3.5 login.jsp 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优…...

文档矫正算法:DocTr++

文档弯曲矫正&#xff08;Document Image Rectification&#xff09;的主要作用是在图像处理领域中&#xff0c;对由于拍摄、扫描或打印过程中产生的弯曲、扭曲文档进行校正&#xff0c;使其恢复为平整、易读的形态。 一. 论文和代码 论文地址&#xff1a;https://arxiv.org/…...

Vxe UI vue vxe-table vxe-grid 单元格与表尾单元格如何格式化数据

Vxe UI vue vxe-table vxe-grid 单元格与表尾单元格如何格式化数据 查看 github vxe-table 官网 单元格内容格式化 通过 formatter 属性自定义格式化方法 <template><div><vxe-grid v-bind"gridOptions"></vxe-grid></div> </t…...

【百日算法计划】:每日一题,见证成长(021)

题目 栈排序 编写程序&#xff0c;对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据&#xff0c;但不得将元素复制到别的数据结构&#xff08;如数组&#xff09;中。该栈支持如下操作&#xff1a;push、pop、peek 和 isEmpty。当栈为空时&#xff0c;p…...

数据恢复篇:如何恢复几年前删除的照片

您是否曾经遇到过几年前删除了一张图片并觉得需要恢复旧照片的情况&#xff1f;虽然&#xff0c;没有确定的方法可以丢失或删除的照片。但是&#xff0c;借助奇客数据恢复等恢复工具&#xff0c;可以恢复多年前永久删除的照片、视频和音频文件。 注意 – 如果旧数据被覆盖&…...

前端注释规范

1、目的和原则 提高可读性和可维护性 如无必要&#xff0c;无增注释&#xff1b;如有必要&#xff0c;尽量详尽 2、语法 单行注释&#xff1a; // 多行注释&#xff1a; /**/ 3、规范 1、注释符与注释内容之间加一个空格 2、注释行与上方代码间加一个空行 4、Javascript …...

uniapp踩坑 tabbar页面数据刷新了但视图没有更新

问题描述&#xff1a; 有个uni-data-checkbox组件&#xff0c;两个选项&#xff1a;选项1和选项2&#xff08;对应的value值分别为1和2&#xff09;&#xff0c;v-model绑定属性名为value 两个tabbar页面&#xff1a;tab1&#xff0c;tab2。 tab1页面有个逻辑是在onShow中刷新v…...

WebAssembly与WebGPU:游戏开发的新时代

文章目录 WebAssembly简介WebGPU简介Wasm WebGPU 在游戏开发中的优势创建一个简单的WebAssembly模块使用WebGPU绘制一个三角形WebAssembly 的高级特性内存管理异步加载与多线程 WebGPU 的高级特性着色器编程计算着色器 实战案例&#xff1a;创建一个简单的 2D 游戏游戏逻辑设计…...

SAP B1 认证考试习题 - 解析版(二)

前一篇&#xff1a;《SAP B1 认证考试习题 - 解析版&#xff08;一&#xff09;》 题目纯享版合集&#xff1a;《SAP B1 认证考试习题 - 纯享版》 三、采购流程 30. 下列哪个凭证在采购流程中是必须要完成的 A. 采购订单 B. 收货采购订单 C. 应付发票 D. 退货 E. 应付贷…...

《Ubuntu20.04环境下的ROS进阶学习7》

一、使用nav_msgs消息包显示小车轨迹 在我们跑实验的时候通常希望看到小车的轨迹&#xff0c;在ROS1中可以将小车的路径存储在nav_msgs::Path 这种消息类型里&#xff0c;发布出来后使用rviz来显示小车轨迹。 二、了解nav_msgs消息包 那么首先我们要来了解一下nav_msgs这个消息…...

免费视频无损压缩工具+预览视频生成工具

视频无损压缩工具 功能与作用 &#xff1a;视频无损压缩工具是一种能够减少视频文件大小&#xff0c;但同时保持视频质量的工具。它通过先进的编码技术和算法&#xff0c;有效降低视频文件的存储空间&#xff0c;同时保证视频的清晰度和观感。这对于需要分享或存储大量视频内容…...

TranslucentTB:3分钟打造Windows任务栏透明效果的终极指南

TranslucentTB&#xff1a;3分钟打造Windows任务栏透明效果的终极指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 想让你的Windows桌…...

OBS多平台直播插件:obs-multi-rtmp终极使用指南与架构解析

OBS多平台直播插件&#xff1a;obs-multi-rtmp终极使用指南与架构解析 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 在当今内容创作者蓬勃发展的时代&#xff0c;多平台同步直播已成为…...

基于RP2040与NeoPixel的交互式LED气泡桌:硬件选型、电路设计与动画编程全解析

1. 项目概述&#xff1a;打造一个会呼吸的光影气泡桌 几年前&#xff0c;我在一个艺术展上看到一个用灯光和烟雾营造氛围的装置&#xff0c;当时就被那种动态光影与物理形态结合的美感深深吸引。作为一个喜欢动手的嵌入式开发者&#xff0c;我一直在想&#xff0c;能不能做一个…...

告别点灯:用GC9A01圆形屏为你的Arduino/ESP32项目做个酷炫UI(附完整代码)

告别点灯&#xff1a;用GC9A01圆形屏为你的Arduino/ESP32项目做个酷炫UI&#xff08;附完整代码&#xff09; 在智能硬件项目中&#xff0c;一个精致的用户界面往往能大幅提升产品质感。GC9A01这款1.28英寸圆形TFT屏幕&#xff0c;以其240x240的高分辨率和IPS面板的广视角特性…...

零基础新手会议记录,选购避坑指南 可直接上手

日常工作学习中&#xff0c;不少人会遇到会议纪要整理、访谈录音处理、讲座笔记记录的难题&#xff0c;手动整理耗时费力还易出错。本文评测了市面上主流录音转写工具&#xff0c;整理了新手避坑指南和实用选择建议&#xff0c;零基础也能快速上手。综合实测后&#xff0c;听脑…...

Page Assist终极指南:5分钟为浏览器安装本地AI助手,彻底告别云端依赖

Page Assist终极指南&#xff1a;5分钟为浏览器安装本地AI助手&#xff0c;彻底告别云端依赖 【免费下载链接】page-assist Use your locally running AI models to assist you in your web browsing 项目地址: https://gitcode.com/GitHub_Trending/pa/page-assist 想要…...

开源基础大模型实战:从零构建领域专家模型的技术指南

1. 项目概述&#xff1a;从零到一&#xff0c;理解开源基础大模型的价值最近在社区里看到不少朋友在讨论“datawhalechina/base-llm”这个项目&#xff0c;乍一看名字&#xff0c;可能觉得又是一个平平无奇的模型仓库。但如果你真的动手去部署、去尝试、去理解它背后的设计&…...

ReID跨镜需人工复核,镜像视界无感定位实现全自动全链路闭环

ReID跨镜需人工复核&#xff0c;镜像视界无感定位实现全自动全链路闭环在全域视频感知与人员动态管控行业应用落地进程中&#xff0c;传统依托ReID行人重识别搭建的跨镜追踪体系&#xff0c;长期深陷算法识别偏差大、数据容错率低、最终必须依赖人工二次复核的运营困局&#xf…...

Go语言策略模式:算法替换

Go语言策略模式&#xff1a;算法替换 1. 策略接口 type SortStrategy interface {Sort(data []int) []int }type BubbleSort struct{}func (s *BubbleSort) Sort(data []int) []int {// 冒泡排序实现return data }type QuickSort struct{}func (s *QuickSort) Sort(data []int)…...

AI驱动的代码安全审计工具OpenClaw:原理、部署与实战调优

1. 项目概述&#xff1a;当AI成为代码审计的“利爪” 最近在安全圈和开源社区里&#xff0c;一个名为“OpenClaw”的项目引起了我的注意。它的全称是 zast-ai/openclaw-security-audit &#xff0c;从名字就能嗅到一股“技术极客”的味道——“zast-ai”暗示着AI驱动&#xf…...