反射式DLL注入--方法

  1. 使用RWX权限打开目标进程,并为该DLL分配足够大的内存。
  2. 将DLL复制到分配的内存空间。
  3. 计算DLL中用于执行反射加载的导出的内存偏移量。
  4. 调用CreateRemoteThread(或类似的未公开的API函数RtlCreateUserThread)在远程进程中开始执行,使用反射加载函数的偏移地址作为入口点。
  5. 反射加载函数使用适当的CPU寄存器查找目标进程的进程环境块(PEB),并使用它查找内存中的地址kernel32.dll以及任何其他所需的库。
  6. 解析的KERNEL32出口目录中找到所需的API功能,如内存地址LoadLibraryAGetProcAddressVirtualAlloc
  7. 使用这些函数,然后正确加载DLL(本身)到内存中,并调用它的入口点,DllMain。
时间: 2024-10-11 21:06:01

反射式DLL注入--方法的相关文章

Dll注入方法-钩子

HHOOK SetWindowsHookEx(int idHook,HOOKPROC lpfn, HINSTANCE hMod, DWORD dwThreadId); idHook: 钩子类型lpfn:钩子过程的指针 ,也即拦截到指定系统消息后的预处理过程,定义在DLL中hMod:应用程序实例的句柄 如果是全局钩子, hInstance是DLL句柄(DllMain中给的模块地址.就是包含HookProc的动态库加载地址.否则给0就可以了,即勾自己.dwThreadId:要安装钩子的线程ID ,指

Dll注入方法之二

有了第一种方法,我们不难举一反三,由于原理是只需要我们的执行函数被写入到目标进程,所有相关的变量也在目标函数里,那么我们的函数就能被正确执行(前提是没有互相调用我们注入的函数,否则需要做地址处理.这也是为什么整个可执行文件注入时,要做很多重定位).这里,我们进一步尝试,将LoadLibrary放在一个函数里,在同一个函数里,我们再调用一个MessageBox(这里只是一个测试,以后你可以调用任何你的函数,但必须要对地址进行处理). 步骤一和步骤二:请参考Dll注入方法之一. 步骤三:书写需要被注

经典的就要转载:另类DLL注入法

转自:http://blog.csdn.net/onevs1/article/details/5692680 输入法注入[转帖] 百度搜来的.论述比较详细,不过我还没搞懂!就原文贴一下了! ----------------------------------------------------------------------------------------------以下是原文 Ring3下注入DLL的另类方法,能过杀软和游戏NP(源码)       注入DLL是做全局钩子或者拦截类软件

Windows系统的dll注入

声明:这篇博客原为本人在CSDN上发布的,但是CSDN这个网站违背了本人的分享和开源精神,另外CSDN的广告满天飞.审核重重(所有的下载必须使用CSDN下载,而下载需要积分,这严重违背本人的无私分享精神.开源精神.),即使审核通过也会不定时进行重新审核,CSDN的这些操作严重影响了本人的博客管理.因此,本着无私分享精神.开源精神.轻松使用原则,本人摒弃了CSDN,并将博文重新编辑并发布在博客园网站上,而原博文作删除处理! 一.什么是dll注入 在Windows操作系统中,运行的每一个进程都生活在

[转]Dll注入经典方法完整版

Pnig0s1992:算是复习了,最经典的教科书式的Dll注入. 总结一下基本的注入过程,分注入和卸载 注入Dll: 1,OpenProcess获得要注入进程的句柄 2,VirtualAllocEx在远程进程中开辟出一段内存,长度为strlen(dllname)+1; 3,WriteProcessMemory将Dll的名字写入第二步开辟出的内存中. 4,CreateRemoteThread将LoadLibraryA作为线程函数,参数为Dll的名称,创建新线程 5,CloseHandle关闭线程句

远程线程注入方法CreateRemoteThread

最近在整理学习Windows注入方面的知识,这个远程注入前面早写过,现在看看人家博客的理解整理,整理, 需要源码的可以到我的github上下载. 链接是  https://github.com/Arsense/WindowsCode 首先先来说说什么是注入,为什么要注入 0x00 Baise 注入就是把自己的Dll注入到人家的代码中,被注入的DLL拥有目标进程内存的访问权限,所以我们可以通过该 向某个进程注入DLL时的方法主要有以下三种: 创建远程线程(CreateRemoteThread()

DLL注入的学习(未完)

参考:http://andylin02.iteye.com/blog/459483 进程注入的方法分类如下: 带DLL的注入 利用注册表注入 利用Windows Hooks注入 利用远程线程注入 利用特洛伊DLL注入 不带DLL的注入 直接将代码写入目标进程,并启动远程线程 1. 利用注册表注入(appinit_dll 注入) 在Windows NT/2000/XP/2003中,有一个注册表键值HKEY_LOCAL_MACHINE\Software\Microsoft \WindowsHKEY_

<ReversingEngineering>关于windows32位系统下的dll注入技术经验汇

上个学期把自己闷在图书馆一直在看关于逆向工程技术方面的书,从入门到初级,现在也敢说自己一条腿已经迈进了这片知识的大门里,因为该博客刚开通先将一些经验记录下来,也是留给自己一方面做个参照. <逆向工程核心原理>((韩)李承远 )<Reversing:逆向工程揭密(电子工业出版社)><黑客反汇编揭密>((俄)卡巴斯基 ) dll注入技术是一门逆向工程中非常基础非常初步的技术,也是打开大门的钥匙,逆向破解的前提条件.API勾取 ,Rootkit进程隐藏都需要dll注入为先决条

[转载]Dll注入技术之ComRes注入

转自:黑客反病毒 DLL注入技术之ComRes注入     ComRes注入的原理是利用Windows 系统中C:\WINDOWS\system32目录下的ComRes.dll这个文件,当待注入EXE如果使用CoCreateInstance()这个API时,COM服务器会加载ComRes.dll到EXE中,我们利用这个加载过程,移花接木的把ComRes.dll替换掉,并在伪造的ComRes.dll,然后利用LoadLibrary()将事先准备好的DLL加载到目标的EXE中. 1.编写测试文件