向任意进程注入DLL

大漠插件(三、免注册使用com接口规范的dll) 在第一篇文章中我们使用 bat 来将 com 接口的大漠 dll 加入注册表来使用。但是这会出现问题,一、有的人有精神洁癖,不想注册表内加入奇怪的东西。这样就可以直接在程序中加载 DLL 来免去 bat 注册 DLL 的问题。2、注意 dm.tlh 中有写死的 关于 dm.tli 的绝对路径,可以修改这个路径。能够正常开发程序了。3、初始化 dm.dll 并获取对象的代码,最重要的就是这段代码。5、在生成路径下会生成两个文件,dm.tlh dm.tli。2、“添加现有文件”,把 dm.dll 添加进去。 阅读详情
向任意进程注入DLL
可能这对高手来说已经是老掉牙的东西了,

还是来说说原理把(本人也是菜鸟啊)!
远程注入就是在目标进程中用VirtualAllocEx申请一段内存,
然后用WriteProcessMemory函数将自己dll的完整路径复制到远程进程中,
然后在Kernel32中计算LoadLibraryA的地址,再调用LoadLibraryA函数加载远程dll,
并在CreateRemoteThread创建远程进程!
#include "stdafx.h"
#include "windows.h"
#include "tlhelp32.h"
#include "stdio.h"
#pragma comment(lib,"ws2_32")

int EnableDebugPriv(const char * name)//提提权函数
{
    HANDLE hToken;
    TOKEN_PRIVILEGES tp;
    LUID luid;
    //打开进程令牌环
    if(!OpenProcessToken(GetCurrentProcess(),
    TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,
        &hToken))
    {
        MessageBox(NULL,"OpenProcessToken Error!","Error!",MB_OK);
            return 1;
    }
    //获得进程本地唯一ID
    if(!LookupPrivilegeValue(NULL,name,&luid))
    {
        MessageBox(NULL,"LookupPrivivlegeValue Error!","Error",MB_OK);
    }
    tp.PrivilegeCount=1;
    tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
    tp.Privileges[0].Luid=luid;
    //调整权限
    if(!AdjustTokenPrivileges(hToken,0,&tp,sizeof(TOKEN_PRIVILEGES),NULL,NULL))
    {
        MessageBox(NULL,"AdjustTokenPrivileges Error!","Error",MB_OK);
        return 1;
    }
    return 0;
}
BOOL injectit(const char *DllPath,const DWORD dwRemoteProcessld)//注入主函数
{
    HANDLE hrp;
    if(EnableDebugPriv(SE_DEBUG_NAME))
    {
        MessageBox(NULL,"Add Privilege Error!","Error",MB_OK);
        return FALSE;
    }
    if((hrp=OpenProcess(PROCESS_CREATE_THREAD|//允许远程创建线程
        PROCESS_VM_OPERATION|//允许远程VM操作
        PROCESS_VM_WRITE,//允许远程VM写
        FALSE,dwRemoteProcessld))==NULL)
    {
        MessageBox(NULL,"OpenProcess Error!","Error",MB_OK);
        return FALSE;
    }
    char *psLibFileRemote;
    //使用VirtualAllocEx函数在远程进程的内存地址空间分配DLL文件名缓冲
    psLibFileRemote=(char *)VirtualAllocEx(hrp,NULL,lstrlen(DllPath)+1,
        MEM_COMMIT,PAGE_READWRITE);
    if(psLibFileRemote==NULL)
    {
        MessageBox(NULL,"VirtualAllocEx Error!","Error",MB_OK);
        return FALSE;
    }
    //使用WriteProcessMemory函数将DLL的路径名复制到远程的内存空间
    if(WriteProcessMemory(hrp,psLibFileRemote,(void *)DllPath,lstrlen(DllPath)+1,NULL)==0)
    {
        MessageBox(NULL,"WriteProcessMemory Error!","Error",MB_OK);
        return FALSE;
    }
    //计算LoadLibraryA的入口地址
    PTHREAD_START_ROUTINE pfnStartAddr=(PTHREAD_START_ROUTINE)
        GetProcAddress(GetModuleHandle(TEXT("Kernel32")),"LoadLibraryA");
    if(pfnStartAddr==NULL)
    {
        MessageBox(NULL,"GetProcAddress Error!","Error",MB_OK);
        return FALSE;
    }
    //pfnStartAddr地址就是LoadLibraryA的入口地址


    HANDLE hrt;
    if((hrt=CreateRemoteThread(hrp,
        NULL,
        0,
        pfnStartAddr,
        psLibFileRemote,
        0,
        NULL))==NULL)
    {
        MessageBox(NULL,"CreateRemote Error!","Error",MB_OK);
        return FALSE;
    }
    return TRUE;
}
unsigned long getpid(char *pn)//得到进程pid
{
    BOOL b;
    HANDLE hnd;
    PROCESSENTRY32 pe;
    //得到进程快照
    hnd=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    pe.dwSize=sizeof(pe);
    b=Process32First(hnd,&pe);
    while(b)
    {
        if(strcmp(pn,pe.szExeFile)==0)
            return pe.th32ProcessID;
        b=Process32Next(hnd,&pe);
    }
}

int main(int argc, char* argv[])
{
    if(argc<2)
    {
        printf("++++++++++++++++++++++++++++++++++++++++++++++++++++++/n");
        printf("injectpro V1.0!/nAuthor:text  QQ:52674548/nusage:/n  injectpro.exe targetprocess youdll/n");
        printf("  eg:injectpro.exe iexplorer.exe c://youdll.dll/n");
        printf("++++++++++++++++++++++++++++++++++++++++++++++++++++++/n");
        return 0;
    }
    EnableDebugPriv(SE_DEBUG_NAME);//自身提权
    DWORD pid=getpid(argv[1]);
    //printf("%d",pid);
    if(pid==0)
        return 1;
        if(injectit(argv[2],pid))
        {
            printf("inject success!");
        }
        else
        {
            printf("inject error!");
        }
    return 0;
}
 
windows-CODE注入(远程线程注入) 远程线程注入 阅读详情

相关推荐

大漠插件重新封装为DLL库

之前开源项目是COM 调用 会被杀毒软件拦截,改为静态库调用的方式不会被拦截

DLL注入

原文转自:http://www.3800hk.com/news/w45/130228.htmlDLL在程序编制中可作出巨大贡献,它提供了具共性代码的复用能力。但是,正如一门高深的武学,若被掌握在正义之侠的手上,便可助其仗义江湖;但若被掌握在邪恶之徒的手上,则必然在江湖上掀起腥风血雨。DLL正是一种这样的武学。DLL一旦染上了魔性,就不再是正常的DLL程序,而是DLL木马,一种恶贯满盈的病毒,令

weixu_2008的专栏 928

大漠插件dll

大漠插件dll,内含FindPic、FindColor、GetScreenResolution等函数

WIN 64位注册大漠dm.dll(regsvr32)解决失败方法

在Windows 32位系统中,Regsvr32.EXE注册DLL运行是的System32文夹内,64位版本的系统比如WIN7 我们要运行Syswow64文 件夹内的Regsvr32.exe,这就是有时候造成注册失败的原因,下面提供一个解决方法: 解決步骤(以windows 7为例): 1.將 dm.dll复制到 C:\Windows\SysWOW64 文件夹里 2.执行cmd.exe 进入命令提示列, 进入到 C:\Windows\SysWOW64 后 再执行 regsvr32 dm.dll

511遇见 1万+

大漠插件2.1133(dll文件,供调用)包括字库及制作说明

大漠插件是发布在按键精灵论坛的一个DLL,现在已停止免费下载。 虽然该插件已经有N个新版本,但这个版本本人一直使用,有几年时间了,没有出现任何问题。 一直用按键精灵调用插件识别文字,.dll插件也支持编程语言直接调用,识别速度很快。 大漠插件2.1133(dll文件,供调用) 压缩包包括字库及制作说明 解压密码是123456

大漠免注册dll文件 dmreg.dll

E语言平台 首先在DLL命令自定义表里增加一个DLL函数导入接口,比如 .版本 2 .DLL命令 SetDllPathA, , "c:\test_game\dmreg.dll", "SetDllPathA" .参数 path, 文本型 .参数 mode, 整数型 然后在使用插件之前,调用这个接口 .版本 2 SetDllPathA (“c:\test_game\dm.dll”, 0) dm.创建 (“dm.dmsoft”, ) 信息框 (dm.文本方法 (“ver”, ), 0, )

dm.dll注册(大漠插件注册)

环境:vs2005 windows07 如果发现程序无法运行,需要安装vc插件,自行百度。 具体步骤如下 1.在网上获取dm.dll 然后还有大漠的.chm帮助文件 2.新建MFC对话框程序 3.添加MFC类 添加插件 这样我们就生成了一个类 Cdmsoft 包装类

小鱼酱的博客 1万+

HWSD全球土壤数据下载处理

下载地址: http://www.fao.org/soils-portal/soil-survey/soil-maps-and-databases/harmonized-world-soil-database-v12/en/

江北20190411的博客 3万+

提权之DLL注入

DLL注入是一种允许攻击者在另一个进程的地址空间的上下文中运行任意代码的技术。如果进程中以过多的权限运行,那么可以会被攻击者加以利用,以便以DLL文件的...

Ms08067安全实验室 1195

2.1 量子精密测量:SERF原子陀螺仪中的核自旋-电子自旋强耦合机制

本文深入解析了SERF原子陀螺仪中核自旋-电子自旋强耦合机制的核心原理与应用。通过量子精密测量技术,SERF陀螺仪实现了超高精度的惯性导航,其独特的磁场自补偿和拉莫尔进动特性使其在弱磁场环境下表现出色。文章还探讨了关键技术突破和前沿进展,展示了量子精密测量在惯性导航领域的巨大潜力。

kotlin6android的博客 211

Rocky Linux 9.2:利用LVM动态调整/home与/根分区空间分配

本文详细介绍了在Rocky Linux 9.2系统中,如何利用LVM(逻辑卷管理器)动态调整/home与根分区(/)的空间分配。针对根分区空间不足而/home分区闲置的常见问题,文章提供了从检查磁盘布局、备份数据、卸载分区、调整逻辑卷大小到重建文件系统的完整操作步骤,并重点说明了XFS与EXT4文件系统在缩容时的不同处理方法,帮助系统管理员安全、在线地实现存储空间的灵活调配。

weixin_29271263的博客 177

提权学习:Windows提权实战(DLL注入)

前言DLL注入是一种允许攻击者在另一个进程的地址空间的上下文中运行任意代码的技术。如果某进程以过多的权限运行,那么可以会被攻击者加以利用,以DLL文件的形式执行恶意代码以提升权限。手动注入通过Metasploit的msfvenom创建DLL,该文件可以生成包含特定有效内容的DLL文件。应该注意的是,如果DLL...

bylfsj的博客 1367

得利捷datalogic扫码枪调试说明

针对得利捷datalogic扫码枪快速调试并,可以根据详细步骤设置扫码枪,并配有tcp调试助手辅以验证,以达到快速调试完成扫码枪的工作。

Conway510的博客 1万+

Windows提权实战————4、DLL注入

前言DLL注入是一种允许攻击者在另一个进程的地址空间的上下文中运行任意代码的技术。如果某进程以过多的权限运行,那么可以会被攻击者加以利用,以DLL文件的形式执行恶意代码以提升权限。手动注入通过Metasploit的msfvenom创建DLL,该文件可以生成包含特定有效内容的DLL文件。应该注意的是,如果DLL被注入的进程是64位,那么应该使用64位有效负载。下一步是设置metasploit监听,以...

Fly_鹏程万里 3743

YOLOv8 智能交通违章检测 - 机动车道占用(违停/非机动车占道)详解

本文提出基于YOLOv8的智能交通违章检测方案,主要针对机动车道占用问题。系统整合目标检测、目标跟踪和ROI区域判定,实现两种典型场景检测:违章停车(静止超时)和非机动车/行人占道。详细介绍了系统架构、配置文件设计、核心逻辑实现及可视化模块,包括ROI区域管理、状态跟踪和违章判定算法。针对实际应用中的堵车误判、非机动车误报等问题,提出了密度检测、轨迹分析和自适应阈值等优化策略。该方案计算量适中,适合边缘设备部署,并建议配套开发ROI标定工具和证据链保存功能。

u010117029的博客 236

8、音频运行时系统的架构设计

本文深入探讨了音频运行时系统的分层设计及其优势,包括逻辑层和物理层的功能划分。通过分层设计,开发者可以更轻松地管理和优化音频资源,确保其在不同平台上的高效运行。文章还介绍了平台适配与优化、错误处理与调试以及未来发展方向等内容,为开发者提供了宝贵的参考和指导。

juice的博客 461

VC++ MFC 写了个超级进程插件注入器1.0版

我们学习破解或者研究辅助外挂需要用到将DLL文件注入到目标程序的功能,注入方法多种多样,

C语言也能干大事 478

AI智算-K8s如何利用GPFS分布式并行文件存储加速训练or推理

GPFS(General Parallel File System,通用并行文件系统)是由 IBM 开发的高性能分布式文件系统,最初设计于 1990 年代,用于满足高性能计算(HPC)环境对大规模数据存储和访问的需求。GPFS 现已广泛应用于企业级存储、云计算、大数据分析、人工智能和媒体处理等领域。它以其高性能、可扩展性和可靠性著称,能够支持从小型集群到超大规模系统的各种部署场景。

Kason_iWiki 1132

系统安全攻防战:DLL注入技术详解

DLL注入是一种允许攻击者在另一个进程的地址空间的上下文中运行任意代码的技术。攻击者使用DLL注入的过程中如果被赋予过多的运行特权,那么攻击者就很有可能会在DLL文件中嵌入自己的恶意攻击代码以获取更高的执行权限。 具体而言,该技术遵循以下步骤: 1.需要将DLL写入磁盘中; 2.“CreateRemoteThread”调用“LoadLibrary”; 3.反射加载程序功能将尝...

weixin_30567225的博客 121

基于Matlab的自动泊车系统开发:利用模糊控制实现智能停车解决方案的详细教程

Matlab是一种广泛应用于科学计算、工程建模与仿真的编程语言,其强大的工具箱和简洁的编程语法,使其成为开发自动泊车系统的理想选择。在开始编写代码之前,我们需要搭建Matlab的工作环境,并熟悉相关的工具箱,如Fuzzy Logic Toolbox,用于实现模糊控制。首先,确保你已经安装了Matlab软件,并加载了必要的工具箱。接下来,我们将逐步讲解如何在Matlab中实现自动泊车系统。

qq_38334677的博客 663

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

内核注入DLL,支持注入PPL

项目提供的release版本的驱动没有签名,请在调试模式下使用。已在Win7 x32/x64 ~ Win10 x32/x64上测试通过,Win11理论上也是支持的,请自测。Rookit和Anti-Rookit相关的功能。

qq_41252520的博客 606

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: 内核态进程管理器Intercessor和实现细节
下一篇: Detour
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值