TBSandbox-Day2.5
微步沙箱分析-Day2.5
这是Day2.5 用来总结一些奇淫艺技用的
QQ内存大小判断法
之前有人说可以使用检查QQ内存大小来判断是否为微步沙箱
于是我们来测试下看看 糊了一个程序
use std::process::Command;
use sysinfo::{System};
fn main() {
println!("Hello, world!");
let s = System::new_all();
for (_pid,process) in s.processes(){
let process_name = process.name();
if process_name == "QQ.exe" {
println!("Process name is {} Memory is {}",process_name,process.memory())
}
}
let _ = Command::new("cmd.exe").arg("/c").arg("pause").status();
}

结果是可行的,QQ只存在单进程且仅有2MB.且通过这个方法似乎可以使微步执行超时?
喂了避免使用CreateToolhelp32Snapshot造成沙箱生成遍历进程的指标.在这里用到了sysinfo
子进程判断法

微步会把奇奇怪怪的进程都塞给Explorer.exe 所以可以通过这个方法简易的判断一下
CPU判断
use std::process::Command;
use raw_cpuid::CpuId;
fn main() {
// 创建 CPUID 对象
let cpuid = CpuId::new();
// 查询 CPU 型号和制造商信息
if let Some(brand_string) = cpuid.get_processor_brand_string()
{
println!("CPU 型号: {}", brand_string.as_str());
} else {
println!("无法获取 CPU 型号信息");
}
if let Some(feature_info) = cpuid.get_feature_info() {
if feature_info.has_vmx() || feature_info.has_avx() {
println!("CPU 支持虚拟化");
} else {
println!("CPU 不支持虚拟化");
}
} else {
println!("无法获取 CPU 特性信息");
}
let _ = Command::new("cmd.exe").arg("/c").arg("pause").status();
}
来看看样本吧 未完待续( 打群星去了

也不知道是不是上次那哥们传的 就用这个分析以下看看吧
反调试
if ( IsDebuggerPresent() ) //检测当前进程是否正在被调试器调试
goto LABEL_2;
pbDebuggerPresent = 0;
CurrentProcess = GetCurrentProcess();
if ( CheckRemoteDebuggerPresent(CurrentProcess, &pbDebuggerPresent) ) //检测是否正在被远程调试器调试
{
if ( pbDebuggerPresent )
goto LABEL_2;
}糊一个调试器的测试代码吧 远程调试器就不写了
extern crate winapi;
use winapi::um::winuser::IsDebuggerPresent;
fn main() {
let debugger_present = unsafe { IsDebuggerPresent() };
if debugger_present != 0 {
println!("Debugger is present.");
} else {
println!("Debugger is not present.");
}
}判断是否为远程链接
if ( GetSystemMetrics(4096) )
goto LABEL_2;通过**GetSystemMetrics(SM_REMOTESESSION)**来判断是否为远程桌面.
extern crate winapi;
use winapi::um::winuser::GetSystemMetrics;
fn main() {
let remote_session = unsafe { GetSystemMetrics(4096) };
if remote_session != 0 {
println!("Current session is a remote session.");
} else {
println!("Current session is not a remote session.");
}
}
TBSandbox-Day2.5
https://blog.lenxy.net/TBSandbox-Day2-5.html