DLL注入/劫持
DLL注入/劫持
(-: LYSM :-)
这个作者很懒,什么都没留下…
展开
-
[DLL 注入] C/C++ 修改EIP实现DLL注入
背景挂起目标进程,停止目标进程EIP的变换,在目标进程开启空间,然后把相关的指令机器码和数据拷贝到里面去,然后修改目标进程EIP使其强行跳转到我们拷贝进去的相关机器码位置,执行相关,然后跳转回来。下面的例子是实现DLL注入,但是和平时说的远程代码注入在注入的逻辑上不同,但是同时都是用到了一个重要的结论就是:很多系统dll的导出函数地址在不同进程中,是一样的.注意两个问题1.call 如果直接是个地址的话要这么计算 call RVA - call指令的下一条地址 RVA - (nowaddres转载 2020-11-28 01:41:01 · 953 阅读 · 0 评论 -
[DLL 劫持] 修改 IAT ,让程序启动时加载自己的 DLL
请转到以下链接食用 ????????:https://www.cnblogs.com/LyShark/p/13697577.html原创 2020-11-27 17:58:36 · 1017 阅读 · 0 评论 -
基于AheadLib工具进行DLL劫持
背景或许你听过DLL劫持技术,获取你还没有尝试过DLL劫持技术。DLL劫持技术的原理是:由于输入表中只包含DLL名而没有它的路径名,因此加载程序必须在磁盘上搜索DLL文件。首先会尝试从当前程序所在的目录加载DLL,如果没找到,则在Windows系统目录中查找,最后是在环境变量中列出的各个目录下查找。利用这个特点,先伪造一个系统同名的DLL,提供同样的输出表,每个输出函数转向真正的系统DLL。程序调用系统DLL时会先调用当前目录下伪造的DLL,完成相关功能后,再跳到系统DLL同名函数里执行。这个过程用个形转载 2020-06-24 14:39:14 · 3199 阅读 · 0 评论 -
[注入] - NtMapViewOfSection
背景新的注入方式:利用一个未公开函数 NtMapViewOfSection 在远程进程地址空间写入代码,并且用一种新的技术在远程进程中执行它,这种技术完全工作在用户模式下,并且不需要特殊的条件比如像管理员权限或者之类的要求代码#define _WIN32_WINNT 0x0400#include <windows.h> typedef LONG NTSTATUS, *PNTSTATUS;#define NT_SUCCESS(Status) ((NTSTATUS)(Status) &转载 2020-08-20 17:29:35 · 1133 阅读 · 0 评论 -
DLL 注入 —— 反射式注入(内存手动映射)
介绍反射式注入 dll ,不会调用 LoadLibrary 这个 API,因此也无法使用 CreateToolhelp32Snapshot 遍历到这个模块。同时也不需要 DLL 留在磁盘上(可以通过网络下发,或加密后存放在磁盘),因此这种注入方式更加隐蔽。原理总的来说,就是我们要重新实现一遍 LoadLibrary 这个 API ????:假设现在我们已经使用 ReadFile 拿到了 DLL 的所有内容之后我们需要调用 VirtualAlloc 在目标进程中申请一块内存用来存放这个 DLL原创 2020-07-19 20:08:34 · 3311 阅读 · 0 评论 -
DLL注入—— 远程线程
Dll 代码:#include "stdafx.h"#include <iostream>#include <Windows.h>#include <tlhelp32.h>BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call,...原创 2019-09-04 16:40:08 · 1161 阅读 · 0 评论 -
Dll 注入 —— APC
背景APC,即异步过程调用(Asynchronous Procedure Call)是函数(过程)在特定线程中被异步执行。在Microsoft Windows操作系统中,APC是一种并发机制,用于异步IO或者定时器。每一个线程都有自己的APC队列,可以使用QueueUserAPC函数把一个APC函数压入APC队列中。当用户模式的APC压入线程APC队列后,该线程并不直接调用APC函数,除非该线程是处于可通知状态,调用的顺序为先入先出(FIFO)。函数介绍QueueUserAPC// 如果函数成功,转载 2020-06-28 11:53:26 · 734 阅读 · 0 评论