抗沙箱方式列举

news/2025/1/19 22:36:42/文章来源:https://www.cnblogs.com/o-O-oO/p/18680429

前言

研究过免杀的朋友们一定会碰到过自己的🐎今天还能用,明天就被秒的情况。这种情况大多数是被上传到沙箱然后被沙箱检测和分析发现是🐎,进而记录特征让咱们花好几天写的🐎直接废了。为了提高🐎的存活周期,咱们就需要抗沙箱这门技术。

未加抗沙箱

首先,作为演示我先写一个pingdnslog的程序,然后咱们加上一些抗沙箱手段来展示效果。

代码

#include <windows.h>
#include <stdio.h>int main()
{system("ping e22799d2.dnslog.biz");
}

这里没加任何反沙箱手段,程序运行。

检测文件夹

在vm虚拟机上安装了“vmware tools”就会生成对应名称的文件夹,路径:C:\Program Files\VMware\VMware Tools,这样就可以在代码上加上一个判断。同理我们也可以加个同目录检测,检测当前目录下有没有某一个文件夹或者文件,如若没有就不运行程序。

代码

if (PathIsDirectory(L"C:\\Program Files\\VMware\\VMware Tools") == 0){return flase;}else{return TRUE;}
}

这里检测到是沙箱便不在运行程序了。

检测进程

虚拟机运行会有vmtoolsd.exe这个进程,下面代码是检测进程中是否有vmtoolsd.exe。同理我们可以检测别的进程比如检测某个软件是否在运行,如果没运行程序就不运行。

代码

PROCESSENTRY32 pe32 = { sizeof(PROCESSENTRY32) };HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);if (hProcessSnap == INVALID_HANDLE_VALUE){return false;}while (Process32Next(hProcessSnap,&pe32)){if (wcscmp(pe32.szExeFile,L"vmtoolsd.exe") == 0){return true;}}CloseHandle(hProcessSnap);return false;

检测mac地址

由于vmware默认的mac地址是00开头的所以我们可以利用这个来检测是不是在虚拟机上运行,来判断是否运行程序。

代码

void GetMac(byte* mac)
{PIP_ADAPTER_INFO pIpAdapterInfo = new IP_ADAPTER_INFO();unsigned long stSize = sizeof(IP_ADAPTER_INFO);int nRet = GetAdaptersInfo(pIpAdapterInfo, &stSize);if (nRet == ERROR_BUFFER_OVERFLOW){delete pIpAdapterInfo;pIpAdapterInfo = (PIP_ADAPTER_INFO)new BYTE[stSize];nRet = GetAdaptersInfo(pIpAdapterInfo, &stSize);}if (nRet == ERROR_SUCCESS){while (pIpAdapterInfo){memcpy(mac, pIpAdapterInfo->Address, 8);break;}}if (pIpAdapterInfo){delete pIpAdapterInfo;}
}BOOL VM()
{byte mac[8] = { 0 };GetMac(mac);if (mac[0] == 0x00 && mac[1] == 0x05 && mac[2] == 0x69){return TRUE;}else if (mac[0] == 0x00 && mac[1] == 0x0c && mac[2] == 0x29){return TRUE;}else if (mac[0] == 0x00 && mac[1] == 0x50 && mac[2] == 0x56){return TRUE;}else{return FALSE;}
}

检测是否开启测试模式

在看分析的时候偶然发现截图里面显示系统为测试模式(不清楚是什么的建议百度一下windows测试模式这里不做赘述),便想通过检测是否是测试模式来进行抗沙箱。

代码

HKEY hKey;
DWORD testModeValue;LPCWSTR regPath = L"SYSTEM\\CurrentControlSet\\Control\\CI\\Testing";
LPCWSTR regValue = L"TestSigning";if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, regPath, 0, KEY_READ, &hKey) == ERROR_SUCCESS) {DWORD dwType;DWORD dwSize = sizeof(DWORD);if (RegQueryValueExW(hKey, regValue, NULL, &dwType, (LPBYTE)&testModeValue, &dwSize) == ERROR_SUCCESS) {RegCloseKey(hKey);if (testModeValue == 1) {return false;}elsereturn true;}RegCloseKey(hKey);
}
````![](https://img2024.cnblogs.com/blog/3330979/202501/3330979-20250119223559538-1949344240.png)#原文🔗 
```
https://mp.weixin.qq.com/s?__biz=MzkzODM0OTE4OA==&mid=2247484411&idx=1&sn=d1c8f115f5b9843b8482cc1ce9e5d9af&chksm=c280c410f5f74d0687dd2ab436d04d346f75439b4f965e4b09886e0ae2a5757b2fe32f423f1b&cur_album_id=3440585169323933701&scene=189#wechat_redirect
```

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/871891.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K-D树及其应用

K-D树及其应用 简介 在单个维度的范围搜索场景下,如:搜索创建时间最靠近某个日期的商品信息。可以通过遍历所有的商品信息,计算每个商品的创建日期的差值,得到差值最小的商品即可,这样每次查询的时间复杂度为 \(O(n)\);或者通过构造一个 BST,通过日期进行比较查询,这样…

基础动态规划讲解

(标题就叫这个吧,我也没什么主意了) 动态规划,要给这个这个东西下个定义,确实不太好下,他是一种基于状态来思考问题的算法思想 用来表示状态的话,那就是dp,(这么说好抽象),就直接说涉及动态规划的题目怎么处理吧 ,这个还是有步骤可行的,就按如下步骤操作 1.寻找子…

遗传算法个人入门笔记

先举一个简单的求解例子: 变量x,y 函数f(x,y) = (x-5)^2 + (y+3)^2 - 5 求最小值。 def test(x,y):return (x - 5)**2 + (y - 3)**2 - 5显然,这个函数在x=5,y=3时取最小值-5。现在我们尝试用遗传算法解决之。 遗传算法主要是模拟生物进化的过程,将每一个值视作一个生物,有…

excel快速定位到某一行

左上角输入框输入:A100定位到第100行

2024秋季学期 电子技术基础期末复习笔记

这期末也太难了吧,15*2,俩超级难的电路,直接给我算麻了电路分析模拟电路

【牛客训练记录】牛客周赛 Round 77

训练情况赛后反思 打一半吃饭去了,C题看到 ax+by=k 的问题,简单的扩欧exgcd没反应过来,简单数论还是不熟悉TAT,D题DSU计算联通块大小时 \(i\) 打成 \(a_i\) 疯狂 RE 被硬控了十几分钟 A题 输出题目所述的第几个字符串即可 #include <bits/stdc++.h> // #define int l…

LIS于LCS

LIS与LCS是动态规划中最常见的两种情况,LIS也就是最长上升子序列,而LCS是最长公共子序列。 在解决这个问题之前,先要明白为什么是序列,举个例子来说明,在数组 [1,2,3,4,5,6]中,[2,3,5]就是其子序列,也就是说,子序列其实就是数组中存在先后顺序,但不强调连续的子数组。…

层次分析法:数学建模

今天学习了层次分析法和数学建模,这里就简单写一下自己的学习新的,参考的资料是B站上的免费网课,老师讲的不错,可以去围观,学习,希望可以拿个奖。https://www.bilibili.com/video/BV1p14y1U7Nr/?spm_id_from=333.337.search-card.all.click 上面这里是链接。本文的大部分…

那些年我在 HL 集训做的题【某人别催了!】

某人别催了!!!Day 0 1.16 下午到 HL,居然还写了一道题? P8855 [POI2002] 商务旅行 LCA 板子。不理解当时为啥要写这个东东,可能是为了热热身吧。 Day 1 讲整体二分,但是没听懂。貌似是魔改版 CDQ...不管它。但是我似乎发现了一片新天地,一切的一切都从下面的一道题说起…

Mac 刷题环境配置

方便Mac 刷题,记录一些环境配置Mac 刷题环境配置 这篇博文主要记录自己为了更方便的在 Mac 上写算法题,主要是基于 Clion做的一些环境配置;有些操作其实在 Windows ,Linux 下也是通用的,如果看到的小伙伴也可以结合自己的情况参考。 Clion 插件 推荐一下这个插件 C/C++ Si…

excel对列数据去重(数据核对)

第一步,选中A列数据,单击功能区——数据选项卡——高级第二步,在弹出的对话框中,选中“将筛选结果复制到其他位置”,"列表区域"填写A列的地址:$A$1:$A$17,“复制到”填写:B1,把“选择不重复记录”勾上,确定即可。结果如下图

前端开发day1

day1 目的:开发一个平台(网站)- 前端开发:HTML、CSS、JavaScript- Web框架:接收请求并处理- MySQL数据库:存储数据地方快速上手:基于Flask Web框架让你快速搭建一个网站出来。深入学习:基于Django框架(主要)1,快速开发网站 pip install flaskfrom flask import Flask…