CreateRemoteThread注入DLL奇怪的问题
PROCESS_INFORMATION pi;
STARTUPINFO si;
memset(&si, 0, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
BOOL bRet = CreateProcess(_T("C:\\111.exe"), NULL, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &si, &pi);
if (bRet)
{
WCHAR wFilePath[256] = _T("C:\\EmptyDLL.dll");
LPWSTR pszLibFile = NULL;
int len = (lstrlenW(wFilePath) + 1) * 2;
pszLibFile = (PWSTR)VirtualAllocEx(pi.hProcess, NULL, len, MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory(pi.hProcess, pszLibFile, (PVOID) wFilePath, len, NULL);
PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(_T("Kernel32")), "LoadLibraryW");
HANDLE hRemoteThread = CreateRemoteThread(pi.hProcess, NULL, 0, pfnThreadRtn, pszLibFile, 0, NULL);
WaitForSingleObject(hRemoteThread, INFINITE);
if (pszLibFile != NULL)
{
VirtualFreeEx(pi.hProcess, pszLibFile, 0, MEM_RELEASE);
}
CloseHandle(hRemoteThread);
ResumeThread(pi.hThread);
DWORD dwErr = GetLastError();
CString str;
str.Format(_T("0x%08x"), dwErr);
MessageBox(str);
}
上段代码在一个exe里调用,就是在新进程主线程CREATE_SUSPENDED时注入一个DLL,CreateProcess的第一个参数111.exe,是MFC程序,注入之后无论如何都无法启动,没有任何报错迹象,GetLastError是0。但如果是console程序注入之后是可以启动的,比如启动cmd.exe。EmptyDLL.dll是一个空的DLL,DllMain直接返回TRUE。
各位大大看看,是哪里有问题?
相关推荐
AES-256-GCM加密与ATT&CK框架结合的免杀技术实战解析
在网络安全领域,加密算法是保障数据机密性与完整性的核心技术,其原理基于复杂的数学运算实现信息转换,确保传输内容无法被未授权方解读。AES-256-GCM作为一种认证加密模式,不仅提供高强度保密性,还通过认证标签验证数据完整性,技术价值在于能有效规避基于静态特征的检测。在工程实践中,结合ATT&CK框架的防御规避战术,可指导攻击载荷的行为设计,使其更贴近系统正常活动,从而在动态检测中隐藏行踪。应用场景包括高级持续性威胁(APT)攻击、红队评估等,其中免杀技术和进程注入是关键实现手段,通过内存操作避免文件落地,
CS1.6辅助模块技术拆解:Aimbot自动瞄准与Glow发光原理
游戏安全与逆向工程领域,外挂程序的分析一直是技术研究的热点。以CS1.6中的经典辅助模块为例,其核心功能通常依赖DLL注入、内存读写和渲染Hook等底层技术。自动瞄准(Aimbot)通过定位实体链表、计算欧拉角并写回视角实现;发光效果(Glow)则通过修改模型渲染参数或拦截OpenGL绘制函数来高亮目标。理解这些实现原理,不仅有助于开发反作弊系统,也能加深对游戏引擎运行机制的认识。从文件命名逻辑出发,逐步拆解其技术架构、注入方式与生命周期管理,并探讨行为检测等对抗思路,可为游戏开发与安全研究提供实用参考。
游戏逆向开发实战指南:从内存扫描到协议分析的全栈技能
逆向工程是理解软件内部运行机制的关键技术,其核心原理在于通过静态与动态分析,解析程序的数据结构、执行逻辑与通信协议。这项技术的价值在于能够深入理解复杂系统的运作方式,广泛应用于软件安全分析、漏洞挖掘、兼容性开发与自动化测试等领域。在游戏开发与安全研究场景中,掌握逆向工程能力尤为重要,它使开发者能够分析游戏逻辑、优化性能或进行安全评估。本指南聚焦于**游戏逆向开发**,系统性地拆解了从**数据层内存寻址**、逻辑层代码反编译,到协议层网络数据分析的完整技术栈,并提供了应对反外挂机制的实用策略,旨在帮助学习者构
Hooka Shellcode加载器实战:避开5大常见错误,打造稳定隐蔽的恶意代码加载器
Shellcode加载器是红队评估与权限维持中的关键技术组件,其核心原理在于将加密的机器代码注入目标进程内存并执行。理解内存操作、进程注入和API调用等底层机制,对于实现稳定、隐蔽的恶意代码执行至关重要。在工程实践中,编码混淆、反调试和流量伪装等技术能有效提升加载器的对抗能力,规避安全软件的静态与动态检测。本文聚焦于Hooka这类流行框架,针对“谷歌验证器未能加载账号”、“checkpoint加载器没有模型”等常见集成困惑,深入剖析Shellcode处理、进程注入、编译配置、环境感知和网络通信五大典型错误,
C2流量伪装与内存隐藏实战:从HTTP配置到进程注入的进阶技巧
在网络安全攻防对抗中,命令与控制(C2)通信的隐蔽性是红队行动成功的关键。C2框架的核心原理在于建立攻击者与受控主机之间的远程控制通道,其技术价值在于实现持久化访问与指令下发。然而,现代检测体系(如EDR、IDS)会从网络流量和主机行为两个层面进行立体化监控。网络流量层分析重点关注TLS指纹、HTTP头特征、数据包规律性等;主机内存层则通过扫描进程内存、监控API调用序列来识别恶意行为。因此,C2通信的伪装需要覆盖从网络协议到内存执行的完整链条。应用场景包括渗透测试、红队演练及安全研究,旨在绕过深度检测。本


进程/线程/DLL
