#include <Windows.h>
#include <TlHelp32.h>
int InjectDllWithApc(char DllFullPath[MAX_PATH], ULONG pid )
{
HANDLE hProcess,hThread,hThreadSnap = INVALID_HANDLE_VALUE;
THREADENTRY32 te32 = {0} ;
HMODULE hDll = GetModuleHandle("Kernel32.dll");
int len = strlen(DllFullPath) + 1;
hProcess = OpenProcess(PROCESS_VM_OPERATION|PROCESS_VM_WRITE,TRUE,pid);
//打开目标进程,向目标进程写入DLL
if(hProcess==NULL)
{
printf("failed to open process!!\n");
return 0;
}
//申请内存
PVOID pszLibFileRemote = (char *)VirtualAllocEx(hProcess, NULL, lstrlen(DllFullPath)+1, MEM_COMMIT, PAGE_READWRITE);
if (pszLibFileRemote != NULL)
{//写入DLL
if(WriteProcessMemory(hProcess,pszLibFileRemote,(void *)DllFullPath, lstrlen(DllFullPath)+1, NULL))
{
HANDLE hThreadSnap = INVALID_HANDLE_VALUE;
THREADENTRY32 te32;
hThreadSnap = CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD, 0 );
if( hThreadSnap == INVALID_HANDLE_VALUE )
return 1;
te32.dwSize = sizeof(THREADENTRY32 );
if( !Thread32First( hThreadSnap, &te32 ) )
{
CloseHandle( hThreadSnap );
return 1;
}
do
{//遍历进程线程
if( te32.th32OwnerProcessID == pid )
{ printf("TID:%d\n", te32.th32ThreadID) ;
hThread = OpenThread(THREAD_SET_CONTEXT ,FALSE,te32.th32ThreadID);
if (hThread != 0)
{//目标线程插入APC
if(QueueUserAPC((PAPCFUNC)LoadLibraryA, hThread, (DWORD)pszLibFileRemote))
{
printf("插入APC成功\n") ;
}
else
{
printf("插入APC失败\n");
return 1;
}
CloseHandle(hThread);
}
}
}while( Thread32Next(hThreadSnap, &te32 ) );
CloseHandle( hThreadSnap );
}
}
CloseHandle(hProcess);
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
InjectDllWithApc("C:\\DllTest.dll",1496);
return 0;
}
相关推荐
vins-fusion环境配置、安装与测试
本文主要介绍如何搭建vins-fusion的运行环境,以及解决vins-fusion编译运行时遇到的环境冲突问题,并在此基础上实现例程的运行。
安全之路 —— 借助DLL进行远程线程注入实现穿墙与隐藏进程
简介 大多数后门或病毒要想初步实现隐藏进程,即不被像任务管理器这样典型的RING3级进程管理器找到过于明显的不明进程,其中比较著名的方法就是通过远程线程注入的方法注入将恶意进程的DLL文件注入系统认可的正常进程,你会发现任务管理器以及找不到独立出现的恶意进程项了。反向连接型后门采用这种技术,注入防火墙认可的进程(例如大部分系统进程,像explorer.exe就很常见)还能...
时序基础模型Timer-S1:十亿参数如何革新时间序列预测
时间序列预测是数据分析与机器学习中的核心任务,旨在基于历史数据预测未来趋势。其原理在于捕捉数据中的趋势、周期性和季节性等时序依赖关系。这项技术的价值在于赋能业务决策,广泛应用于金融风控、能源管理、物联网监控和供应链优化等关键场景。传统方法依赖针对特定任务的专用模型,面临泛化能力弱和开发成本高的挑战。本文聚焦的时序基础模型,通过在海量跨领域数据上进行预训练,学习时序通用模式,并结合十亿级参数带来的强大容量,实现了性能的显著突破。这种范式转变,使得模型能够像“全科医生”一样,通过少量数据微调即可快速适应新任务,
APC注入以及几种实现方式
APC注入以及几种实现方式
FFmpeg HDR视频转SDR视频命令
之前蓝光盘电影多是AVC 1080p 8bit SDR格式视频,近两年4K电影流行,下载的蓝光电影多是HEVC 2160p 10bit HDR视频格式。 ffprobe查看有如下属性: # 10bit HDR Stream #0:0(eng): Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 23.98
产品竞争策略方法论:构建“差异化 + 结构化 + 系统化”的竞争优势
本文系统探讨了IoT产品竞争策略,指出当前企业普遍存在硬件能力强但商业竞争能力不足的问题。文章构建了五层竞争模型(产品层、体验层、服务层、数据层、生态层),提出五大核心竞争策略(成本领先、差异化竞争、聚焦竞争、生态竞争、数据驱动竞争),并详细阐述了差异化设计方法。通过行业案例分析(小米、苹果、特斯拉)和五步落地方法,强调从硬件竞争向系统优势转变的重要性。文章指出IoT竞争胜负关键在后半场的数据运营和服务延伸,建议企业通过构建差异化能力、完善服务体系、建立数据体系、逐步构建生态来避免价格战陷阱,实现从跟随到领
DLL的远程注入与远程卸载卸载
DLL的远程注入与远程卸载卸载 涉及Windows API FindWindow GetWindowThreadProcessId OpenProcess VirtualAlloc WriteProcessMemory CreateRemoteThread WaitForSingleObject 有时候修改目标程序,如制作插件,补丁,外挂等,需要使用到DLL注入的操作,注入的方式主要有远程注入、劫持注入、HOOK方式、内存注入等,这里主要说一下远程注入以及远程卸载 远程注入 什么是远程注入: 远程注入
Verilog语法之十:过程块(initial和always)
我将Verilog的语法进行了总结,写了13篇文章,让小白“快速见识猪如何跑”,每一篇讲解一类语法,结合正确的示例代码和错误的示例代码,有的章节对个别语法进行了归纳总结,帮助初学者加深理解。
关于dll注入方式的学习(APC注入)
QueueUserAPC 函数的第一个参数表示执行函数的地址,当开始执行该APC的时候,程序会跳转到该函数地址处来执行。在线程下一次被调度的时候,就会执行APC函数,APC有两种形式,由系统产生的APC称为内核模式APC,由应用程序产生的APC被称为用户模式APC。这里介绍一下应用程序的APC,APC是往线程中插入一个回调函数,但是用的APC调用这个回调函数是有条件的,如msdn所示。当处于用户模式的APC被压入到线程APC队列后,线程并不会立刻执行压入的APC函数,而是要等到线程处于。
AD9026芯片开发实战:从Example Code到API调用的关键步骤解析
本文详细解析了AD9026芯片开发的核心流程,重点阐述了如何从官方提供的Example Code入手,逐步理解硬件平台发现、HAL层初始化、配置加载、芯片复位、固件启动、JESD链路建立等关键API调用序列。通过剖析示例工程的结构与核心文件,为开发者在自定义硬件平台上移植和调试AD9026驱动提供了清晰的实战指南。
电蚊拍为什么能秒杀蚊子?深入解析两种四倍压整流电路设计差异
本文深入解析电蚊拍秒杀蚊子的核心原理——四倍压整流电路设计,对比对称式与级联式两种方案的性能差异。通过详细电路分析、实测数据对比和选型建议,揭示高压电路设计的关键技术要点,为电子爱好者和工程师提供实用参考。
插入用户APC
每个_Kthread都有一个成员Alerted,默认为0,表示是否可以被APC唤醒。所以下面这段程序,即使插入了APC,但是t线程仍然不会执行。 让t线程执行APC函数的方法是使t线程变成可被唤醒状态,使用函数SleepEx(时间,是否可以唤醒线程),第二个参数为true,Alerted设置为1,即可被唤醒;在插入APC时,APC函数就会执行。 #include "stdafx.h" #inc...
从DBC到ARXML:用RTA-CAR7实现车载通信协议栈自动化生成全流程
本文详细介绍了如何利用ETAS RTA-CAR7工具链,特别是ISOLAR-A和RTA-BSW ConfGen,实现从车载通信DBC文件到AUTOSAR ARXML系统描述文件,再到基础软件(BSW)协议栈代码的自动化生成全流程。该流程通过深度配置、信号路由、PDU复用及规则定制,大幅提升开发效率与一致性,是应对现代汽车电子复杂网络开发的关键实践。
详解最实用的几种dll注入方式
要谈dll注入,首先则要了解dll,对dll的概念和使用不熟悉的读者可移步所谓DLL注入就是将一个DLL放进某个进程的地址空间里,让它成为那个进程的一部分。这样该进程和dll共享同一内存空间,这样dll可以使用该进程的所有资源,随时监控程序运行。通常,我们将需要实现的功能封装生成dll文件,然后将其注入到某一进程中,从而在该进程中添加或扩展我们需要的功能。因此dll注入技术被广泛运用在恶意攻击、游戏外挂、木马等程序中。.........
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
Outlook Express 6 (OE6) for Win7/Win8/Win10
英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。
初识APC机制&实现APC注入
其实就是一种骚姿势进行的DLL注入,而且动静比之前的小,又已经在运行的线程来回调插入到APC队列中的恶意DLL。
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
7-DLL注入之APC注入
Asynchronous Procedure Call,异步过程调用,简称APC,是在特定线程中异步执行的函数。每个线程都有自己独立的APC队列,应用程序通过调用QueueUserAPC函数将某个APC函数加入到指定线程的APC队列中。当APC函数排入指定线程的APC队列中时,系统发出软中断。当下次调度此线程时,会调用队列中的APC函数。操作系统生成的APC函数叫内核态APC应用程序生成的APC函数叫用户态APC。
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
驱动DLL注入,APC注入,驱动回调注入等实现详细流程及代码!
DLL注入有很多方法,远线程,钩子,输入法,劫持,APC等等。 现在的好多进程都有保护,特别是一些游戏有各种保护如TP TS HS NP CD GPK BE SG3等等保护,这样常规的注入方法就没效果了。 现在流行且稳定的注入方法一般都要用驱动来实现了,驱动注入,APC,回调等都可以用驱动注入。 驱动部分代码: #include "apc_inject_test.h" #include "asm_...
DLL注入的8种姿势
目录 1、远程线程注入 2、APC注入 3、注册表注入 4、ComRes注入 5、劫持进程创建注入 6、输入法注入 7、消息钩子注入 8、依赖可信任进程注入 一、DLL注入——远程线程注入 https://blog.youkuaiyun.com/Cody_Ren/article/details/100041660 二、DLL注入——APC注入 APC注入...
DLL注入-APC注入
DLL注入-APC注入
DLL注入技术之APC注入
DLL注入技术之APC注入 APC注入的原理是利用当线程被唤醒时APC中的注册函数会被执行的机制,并以此去执行我们的DLL加载代码,进而完成DLL注入的目的,其具体流程如下: 1)当EXE里某个线程执行到SleepEx()或者WaitForSingleObjectEx()时,系统就会产生一个软中断。 2)当线程再次被唤醒时,此线程会首先执行APC队列中的被注册的函
Dll 注入 —— APC
背景 APC,即异步过程调用(Asynchronous Procedure Call)是函数(过程)在特定线程中被异步执行。在Microsoft Windows操作系统中,APC是一种并发机制,用于异步IO或者定时器。 每一个线程都有自己的APC队列,可以使用QueueUserAPC函数把一个APC函数压入APC队列中。当用户模式的APC压入线程APC队列后,该线程并不直接调用APC函数,除非该线程是处于可通知状态,调用的顺序为先入先出(FIFO)。 函数介绍 QueueUserAPC // 如果函数成功,
Dll注入技术之APC注入
转自:黑客反病毒 APC注入的原理是利用当线程被唤醒时APC中的注册函数会被执行的机制,并以此去执行我们的DLL加载代码,进而完成DLL注入的目的,其具体流程如下: 1)当EXE里某个线程执行到SleepEx()或者WaitForSingleObjectEx()时,系统就会产生一个软中断。 2)当线程再次被唤醒时,此线程会首先执行APC队列中的被注册的函数。 3
进程注入说人话系列:Windows API安全实战-APC注入
所以,Windows设计了可警醒状态,让APC在安全的时机(比如线程在等待时)执行。进程挂了,线程全完蛋;简单说,线程只有在“有空”的时候,才会去处理APC队列里的任务。APC执行时,借用线程的上下文,跑在进程的地址空间里。进程管着线程,线程管着APC队列,所以APC最终还是得看进程这大哥的脸色。线程忙着跑代码,APC说:“哥,等你喘口气,帮我跑个腿”。注意:APC是借用目标线程的上下文执行的,用的是线程的堆栈和寄存器,不是开新线程跑。APC是异步排队的,但执行是同步的,得等线程配合(进入可警醒状态)。
基于VC++实现APC注入
请见代码,向指定进程插入钩子#include "stdafx.h" #define _WIN32_WINNT 0x0400 #include #include #include #include using namespace std; #define DEF_BUF_SIZE 1024 // 用于存储注入模块DLL的路径全名 char szDllPa
Dll注入技术之驱动注入
Dll注入技术之驱动注入 0x0 技术简介 实现环境 系统:Windows 7 64bit 工具:VS+WDK 驱动注入 我这里驱动注入的技术是:采用驱动向目标进程插入APC执行LdrLoadDll函数加载Dll模块。 可以注入64位Dll到64位进程或注入32位Dll到32位进程。暂时没有实现跨位数。 APC(异步过程调用)是一种内核机制,它提供了一种在特定线程上下文中执行定制例...
DLL注入
DLL注入DLL注入原理dll注入实现过程功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 DLL注入原理 在Windows操作系统中,运行的每一个进程都生活在自己的程序空间中(保护模式),每一个进程都认为自己拥有整个机器的控制权,
1万+



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



