DLL注入实例+教程

上传者: hmy211 | 上传时间: 2021-05-20 19:57:54 | 文件大小: 444KB | 文件类型: RAR
远程注入DLL方法有很多种,也是很多木马病毒所使用的隐藏进程的方法,因为通过程序加载的DLL在进程管理器是没有显示的.这里介绍一种用 CreateRemoteThread 远程建立线程的方式注入DLL. 首先,我们要提升自己的权限,因为远程注入必不可免的要访问到目标进程的内存空间,如果没有足够的系统权限,将无法作任何事.下面是这个函数是用来提升我们想要的权限用的. function EnableDebugPriv: Boolean; var hToken: THandle; tp: TTokenPrivileges; rl: Cardinal; begin Result := false; //打开进程令牌环 OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken); //获得进程本地唯一ID if LookupPrivilegeValue(nil, 'SeDebugPrivilege', tp.Privileges[0].Luid) then begin tp.PrivilegeCount := 1; tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; //调整权限 Result := AdjustTokenPrivileges(hToken, false, tp, SizeOf(tp), nil, rl); end; end; 关于 OpenProcessToken() 和 AdjustTokenPrivileges() 两个 API 的简单介绍: OpenProcessToken():获得进程访问令牌的句柄. function OpenProcessToken( ProcessHandle: THandle; //要修改访问权限的进程句柄 DesiredAccess: DWORD; //指定你要进行的操作类型 var TokenHandle: THandle//返回的访问令牌指针 ): BOOL; AdjustTokenPrivileges() :调整进程的权限. function AdjustTokenPrivileges( TokenHandle: THandle; // 访问令牌的句柄 DisableAllPrivileges: BOOL; // 决定是进行权限修改还是除能(Disable)所有权限 const NewState: TTokenPrivileges; { 指明要修改的权限,是一个指向TOKEN_PRIVILEGES结构的指针,该结构包含一个数组, 数据组的每个项指明了权限的类型和要进行的操作; } BufferLength: DWORD; //结构PreviousState的长度,如果PreviousState为空,该参数应为 0 var PreviousState: TTokenPrivileges; // 指向TOKEN_PRIVILEGES结构的指针,存放修改前的访问权限的信息 var ReturnLength: DWORD //实际PreviousState结构返回的大小 ) : BOOL; 远程注入DLL其实是通过 CreateRemoteThread 建立一个远程线程调用 LoadLibrary 函数来加载我们指定的DLL,可是如何能让远程线程知道我要加载DLL呢,要知道在Win32系统下,每个进程都拥有自己的4G虚拟地址空间,各个进程之间都是相互独立的。所我们需要在远程进程的内存空间里申请一块内存空间,写入我们的需要注入的 DLL 的路径. 需要用到的 API 函数有: OpenProcess():打开目标进程,得到目标进程的操作权限,详细参看MSDN function OpenProcess( dwDesiredAccess: DWORD; // 希望获得的访问权限 bInheritHandle: BOOL; // 指明是否希望所获得的句柄可以继承 dwProcessId: DWORD // 要访问的进程ID ): THandle; VirtualAllocEx():用于在目标进程内存空间中申请内存空间以写入DLL的文件名 function VirtualAllocEx( hProcess: THandle; //

文件下载

资源详情

[{"title":"( 18 个子文件 444KB ) DLL注入实例+教程","children":[{"title":"DLL.res <span style='color:#111;'> 3.29KB </span>","children":null,"spread":false},{"title":"EnumStuff.pas <span style='color:#111;'> 29.93KB </span>","children":null,"spread":false},{"title":"DLL.cfg <span style='color:#111;'> 430B </span>","children":null,"spread":false},{"title":"InjectDll.bdsproj.local <span style='color:#111;'> 841B </span>","children":null,"spread":false},{"title":"InjectDll.cfg <span style='color:#111;'> 430B </span>","children":null,"spread":false},{"title":"DLL.dpr <span style='color:#111;'> 792B </span>","children":null,"spread":false},{"title":"Unit1.dfm <span style='color:#111;'> 18.03KB </span>","children":null,"spread":false},{"title":"DLL.bdsproj.local <span style='color:#111;'> 873B </span>","children":null,"spread":false},{"title":"DLL.bdsproj <span style='color:#111;'> 9.49KB </span>","children":null,"spread":false},{"title":"InjectDll.exe <span style='color:#111;'> 424.00KB </span>","children":null,"spread":false},{"title":"hke_InjectDLL.rar <span style='color:#111;'> 13.66KB </span>","children":null,"spread":false},{"title":"Unit1.pas <span style='color:#111;'> 6.61KB </span>","children":null,"spread":false},{"title":"InjectDll.bdsproj <span style='color:#111;'> 9.50KB </span>","children":null,"spread":false},{"title":"InjectDll.dpr <span style='color:#111;'> 189B </span>","children":null,"spread":false},{"title":"DLL.dll <span style='color:#111;'> 416.00KB </span>","children":null,"spread":false},{"title":"说明.txt <span style='color:#111;'> 9.11KB </span>","children":null,"spread":false},{"title":"InjectDll.res <span style='color:#111;'> 3.29KB </span>","children":null,"spread":false},{"title":"bootini_InjectDLL_Demo_V1.0.gif <span style='color:#111;'> 51.23KB </span>","children":null,"spread":false}],"spread":true}]

评论信息

  • lin773 :
    下回来才发现不是C++的,哎
    2015-12-20
  • steveliu17 :
    虽然不是我期望的C++的程序,但是还是支持一下
    2013-12-01
  • zm2529 :
    可以运行,非常好,谢谢!
    2013-09-27
  • 无爱一条柴 :
    把DLL注入某软件能让软件启动就自动启动DLL吗?
    2013-09-24
  • freshboy111 :
    东西很好很全面,唯一遗憾的是没注释
    2013-01-06

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明