win7 64 DLL的远程注入技术 及注入dll函数调用

DLL加载器-远程线程注入(常规dll注入 注入思路 先获取到LoadLibrary的函数地址,之后使用CreateRemoteThread加载这段地址即可 简单例子: D:\VS项目\Dll3\x64\Debug\Dll3.dll kernel.dll加载的地址在所有进程都是一样的 https://zhuanlan.zhihu.com/p/599915628?utm_id=0 DLL进程注入 dll注入器 生成dll-2-1.exe 这里注入的exe是notepad++,找到其进程,注入dll是我cs生成的beacon.dll 主要思路是: 阅读详情

一、DLL注入

DLL的远程注入技术是目前Win32病毒广泛使用的一种技术。使用这种技术的病毒体通常位于一个DLL中,在系统启动的时候,一个EXE程序会将这个DLL加载至某些系统进程(如Explorer.exe)中运行
这样一来,普通的进程管理器就很难发现这种病毒了,而且即使发现了也很难清除,因为只要病毒寄生的进程不终止运行,那么这个DLL就不会在内存中卸载,
用户也就无法在资源管理器中删除这个DLL文件,真可谓一箭双雕哉。记得2003年QQ尾巴病毒肆虐的时候,就已经有些尾巴病毒的变种在使用这种技术了。
到了2004年初,我曾经尝试着仿真了一个QQ尾巴病毒,但独是跳过了DLL的远程加载技术。直到最近在学校论坛上看到了几位朋友在探讨这一技术,便忍不住将这一尘封已久的技术从我的记忆中拣了出来,以满足广大的技术爱好者们。
在阅读本文之前,你需要了解以下几个API函数:

  ·OpenProcess - 用于打开要寄生的目标进程。

  ·VirtualAllocEx/VirtualFreeEx - 用于在目标进程中分配/释放内存空间

  ·WriteProcessMemory - 用于在目标进程中写入要加载的DLL名称

  ·CreateRemoteThread - 远程加载DLL的核心内容,用于控制目标进程调用API函数。

  ·LoadLibrary - 目标进程通过调用此函数来加载病毒DLL。

 在此我只给出了简要的函数说明,关于函数的详细功能和介绍请参阅MSDN。

示例程序

  我将在以下的篇幅中用一个简单的示例Virus.exe来实现这一技术。这个示例的界面如下图:


(1)首先运行Target.exe,这个文件是一个用Win32 Application向导生成的“Hello, World”程序,用来作为寄生的目标进程。

(2)然后在界面的编辑控件中输入进程的名称“Target.exe”,单击“注入DLL”按钮,这时候Virus.exe就会将当前目录下的DLL.dll注入至Target.exe进程中。

(3)在注入DLL.dll之后,你也可以单击“卸载DLL”来将已经注入的DLL卸载。

  模拟的病毒体DLL.dll

  这是一个简单的Win32 DLL程序,它仅由一个入口函数DllMain组成:

[cpp]  view plain copy
  1. BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved )  
  2. {  
  3.  switch ( fdwReason )  
  4.  {  
  5.   case DLL_PROCESS_ATTACH:  
  6.   {  
  7.    MessageBox( NULL, _T("DLL已进入目标进程。"), _T("信息"), MB_ICONINFORMATION );  
  8.   }  
  9.   break;  
  10.   case DLL_PROCESS_DETACH:  
  11.   {  
  12.    MessageBox( NULL, _T("DLL已从目标进程卸载。"), _T("信息"), MB_ICONINFORMATION );  
  13.   }  
  14.   break;  
  15.  }  
  16.  return TRUE;  
  17. }   


如你所见,这里我在DLL被加载和卸载的时候调用了MessageBox,这是用来显示我的远程注入/卸载工作是否成功完成。而对于一个真正的病毒体来说,
它往往就是处理DLL_PROCESS_ATTACH事件,在其中加入了启动病毒代码的部分:

[cpp]  view plain copy
  1. case DLL_PROCESS_ATTACH:  
  2. {  
  3.  StartVirus();  
  4. }  
  5. break;   

注入!
现在要开始我们的注入工作了。首先,我们需要找到目标进程:

[cpp] 
浅谈DLL劫持 最近在搞内网,需要实现免杀后门,大佬推荐了dll劫持,DLL劫持后,能干很多事情,比如杀软对某些厂商的软件是实行白名单的,你干些敏感操作都是不拦截,不提示的。还有留后门,提权等等。本文主要介绍如何检测dll劫持,以及实例演示。 1|0DLL劫持 1|1dll文件是什么? DLL(Dynamic Link Library)文件为动态链接库文件,又称"应用程序拓展",是软件文件类型。... 阅读详情

相关推荐

win7 64bit下远程线程注入技术(进程劫持入门技术)

http://blog.csdn.net/arvon2012/article/details/7766439 本文是配合上文学习和使用的。上文中,最后,我们生成了可以hook api的dll,那么怎么把它发射到其他进程中,让其他进程调用运行我们的dll呢? 远程线程注入技术可以解决这个问题。   原理: 远程线程注入是这样的,首先在当前运行的进程中找到目标进程,然后将我们的dll的内容写

扣的CODE 7793

Win10远程线程注入DLL源码.zip

原理跟32进程注入没太大区别,首先获取ntdll下的RtlInitUnicodeString,LdrLoadDll,NtCreateThreadEx地址,最后分配内存写入Code数据创建远程线程跑起来!

LdrLoadDll+NtCreateThreadEx结合实现DLL注入

项目要求实现对文件操作的监控,首先想到的就是通过HOOK的方式,先是通过setWindowsHookEx采用全局注入方式注入文件操作DLL,这种方式在WIN10操作系统有效,但是在WIN7上无效,后来又使用了CreateRemoteThread采用远程注入方式,结果还是只在WIN10上有限,又查了很多资料,最后看到网上又说可以使用LdrLoadDll+NtCreateThreadEx于是又采用这种...

技术引领巅峰=〉牛人无所不在 3233

DLL远程注入技术

转载自: http://blog.csdn.net/bai_bzl/article/details/1801023   一、DLL注入 DLL远程注入技术是目前Win32病毒广泛使用的一种技术。使用这种技术的病毒体通常于一个DLL中,在系统启动的时候,一个EXE程序会将这个DLL加载至某些系统进程(如Explorer.exe)中运行。 这样一来,普通的进程管理器就很难发现这种病毒了,而

chenyujing1234的专栏 2万+

利用远程线程注入DLL

远程线程注入 dll注入

weixin_43799752的博客 1876

Dll注入技术远程线程注入

Dll注入技术远程线程注入测试环境系统:Windows 10 64bit注入目标: win7 64bit 计算器(这个软件用着习惯,所以我从win7上拷贝到win10上了)主要思路:1.使用进程PID打开进程,获得句柄2.使用进程句柄申请内存空间3.把dll路径写入内存4.创建远程线程,调用LoadLibrary5.释放收尾工作或者卸载dll主要函数://打开进程HANDLE WINAPI Op...

Hades的博客 1万+

DLL远程线程注入技术详解:适配64Win7系统

在操作系统中,进程是程序执行的基本单,它包含了程序代码、数据、资源分配等信息。线程是进程中的实际执行路径,是CPU调度和分派的基本单。每个进程至少包含一个线程,即主线程。从理论上讲,远程线程注入技术基于操作系统提供的机制,允许一个进程控制另一个进程中的线程执行。线程之间的关系可以通过以下几来描述:独立性:每个线程在进程的地址空间中拥有自己的堆栈和执行序列,它们独立地执行任务。资源共享:同一进程中的所有线程共享进程资源,如内存和句柄。通信。

weixin_35364187的博客 917

常见的几种DLL注入技术

这次实验是在WIN7 X86系统上进程,使用的编译器是VS2017。所谓的DLL注入,其实就是在其他的进程中把我们编写的DLL加载进去。如下图所示而加载Dll的API就是LoadLibrary,它的参数是保存要加载的DLL的路径的地址。所以DLL注入的核心就是把要注入DLL的路径写到目标进程中,然后在目标进程中调用LoadLibrary函数,并且指定参数为保存了DLL路径的地址。要实现DLL注入,首先就要创建一个用来注入DLL

2503_90751789的博客 1728

使用CreateRemoteThread进行Dll注入(Win7-x86\x64 Win10-x86\x64)

实现思路:

KOOKNUT的博客 1901

Windows 7环境下的DLL注入技术实现与应用

DLL注入,顾名思义,就是将一个DLL动态地加载到另一个进程的地址空间中,并运行其中的代码。它的主要目的包括但不限于扩展或修改进程的行为,增加额外的功能,或对软件进行调试。

weixin_29840475的博客 906

火绒内核注入dll方式win7-win10通用x64下不触发PG

帖子原地址为:http://www.mengwuji.net/thread-6765-1-1.html 看起来相当简单.结果踩进去以后全都是坑 32下完工代码地址:http://git.oschina.net/ockdieso/nahequdongzhurudll 只是对哪个帖子做一些...

chio1994的博客 3039

Ring3下的DLL注入工具 x86&x64(NtCreateThreadEx + LdrLoadDll方式实现,可以注入系统进程)

本文首发在吾爱破解:http://www.52pojie.cn/thread-429548-1-1.html DLL注入工具有很多,但是也有很多无法注入系统进程如explorer.exe,notepad.exe等,特别是Win7以上平台。此注入工具核心注入部分使用NtCreateThreadEx + LdrLoadDlll方式实现,特色在于比一般的远程线程注入稳定,可以注入系统进程,服务

sunflover454的专栏 8550

DLL注入之CreateRemoteThread法

基本步骤 获取目标进程句柄 将要注入dll路径写入目标进程内存 获取LoadLibraryW()API地址 在目标进程中运行远程线程 代码 stdafx.h: #if !defined(AFX_STDAFX_H__BDB235D7_5A28_46BE_B3ED_30F25A462A9A__INCLUDED_) #define AFX_STDAFX_H__BDB235D7_5A28_46B...

钞sir的博客 1万+

使用NtCreateThreadEx将Dll注入目标进程

第一遍学习这个注入方法时候,只知道NtCreateThreadEx是未公开的nt函数,当时要定义一个函数指针出来,好像在看雪上找到的这个函数的声明,,太久远了,记不清了。 在Windows2000的源码和Reactos中都无法找到NtCreateThreadEx的函数声明和实现,所以试了下用IDA看看ntdll的导出表,哇,好开心找到了,但是,,好像什么都没有,只有一个系统调用号,没有任何参数的信息。 我最后在https://securityxploded.com/ntcreatethreadex.php

KOOKNUT的博客 2824

Win7利用NSA Eternalblue 永恒之蓝 和fuzzbunch工具实现dll注入 Win 7 64CN

Win7利用NSA Eternalblue 永恒之蓝 和fuzzbunch工具实现dll注入 Win 7 64CN 一、原理 1.Eternalblue可以利用SMB漏洞,结合Doublepulsar后,获取Windows 7 系统权限 2.漏洞存在环境 几乎所有开放455端口的Win系统 3. SMB 一个网络文件共享协议 二、实验准备 攻击机:win7 64 IP:192.168.226.128 靶机:win7 64 CN IP: 192.168.226.129 辅助攻击机:kali IP : 192.

Zyecho的博客 3606

Win7 64注入工具

搜索到这里,相信你一定是在Win7 或者5.0以上 64win系统下尝试注入时遇到了错误,具体错误值为5,贴到ErroLookup上显示为:拒绝访问,本工具可以帮你解决这个问题,测试环境为Win7 64,该工具实现了64注入32dll到32目标进程中。     正在上传资源,等链接出来,再贴上。      下载地址:   http://download.csdn.net/det

能哥的专栏 4900

API hook原理和实例快速入门(inline hook),以dll线程注入方式使用(win7-64bit)

一个完整的hook,如果hook程序是以dll形式生成的,是分两步:1.完成dll本身的设计和生成,2.完成dll注入程序的设计和生成 本文完成第一步。 第二步在http://blog.csdn.net/arvon2012/article/details/7767437有详细讲解。   最近在64win7上hook文件复制,拖拽和剪切的hook(这个要通过hook IFileOperat

扣的CODE 1万+
上一篇: MFC调用vlc动态库libvlc.dll实现简单播放器 中文路径处理
下一篇: 进程隐藏与进程保护(SSDT Hook 实现)(二 视频加密软件推荐
xuplus
码龄19年 139粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值