DLL的11种注入方法.doc

DLL的11种注入方法.doc

ID:50178525

大小:151.50 KB

页数:55页

时间:2020-03-06

DLL的11种注入方法.doc_第1页
DLL的11种注入方法.doc_第2页
DLL的11种注入方法.doc_第3页
DLL的11种注入方法.doc_第4页
DLL的11种注入方法.doc_第5页
资源描述:

《DLL的11种注入方法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、闲着没事整理了一下DLL的N种注入方法,对学习外挂的朋友,应该有用!第一种方法:利用CreateRemoteThread远程建立线程的方式注入DLL.首先,我们要提升自己的权限,因为远程注入必不可免的要访问到目标进程的内存空间,如果没有足够的系统权限,将无法作任何事.下面是这个函数是用来提升我们想要的权限用的.functionEnableDebugPriv:Boolean;var  hToken:THANDLE;  tp:TTokenPrivileges;  rl:Cardinal;begin  result:=false;  //打开进程令牌环  OpenProcessToken

2、(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGESorTOKEN_QUERY,hToken);  //获得进程本地唯一ID  ifLookupPrivilegeValue(nil,'SeDebugPrivilege',tp.Privileges[0].Luid)then  begin  tp.PrivilegeCount:=1;  tp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;  //调整权限  result:=AdjustTokenPrivileges(hToken,False,tp,si

3、zeof(tp),nil,rl);  end;end;关于OpenProcessToken()和AdjustTokenPrivileges()两个API的简单介绍:OpenProcessToken():获得进程访问令牌的句柄.  functionOpenProcessToken(  ProcessHandle:THandle;//要修改访问权限的进程句柄  DesiredAccess:DWORD;//指定你要进行的操作类型  varTokenHandle:THandle  ):BOOL;//返回的访问令牌指针AdjustTokenPrivileges():调整进程的权限.  fun

4、ctionAdjustTokenPrivileges(  TokenHandle:THandle;  //访问令牌的句柄  DisableAllPrivileges:BOOL;//决定是进行权限修改还是除能(Disable)所有权限  constNewState:TTokenPrivileges;  //指明要修改的权限,是一个指向TOKEN_PRIVILEGES结构的指针,该结构包含一个数组,数据组的每个项指明了权限的类型和要进行的操作;  BufferLength:DWORD;  //结构PreviousState的长度,如果PreviousState为空,该参数应为0  va

5、rPreviousState:TTokenPrivileges;//指向TOKEN_PRIVILEGES结构的指针,存放修改前的访问权限的信息  varReturnLength:DWORD//实际PreviousState结构返回的大小  ):BOOL;远程注入DLL其实是通过CreateRemoteThread建立一个远程线程调用LoadLibrary函数来加载我们指定的DLL,可是如何能让远程线程知道我要加载DLL呢,要知道在Win32系统下,每个进程都拥有自己的4G虚拟地址空间,各个进程之间都是相互独立的。所我们需要在远程进程的内存空间里申请一块内存空间,写入我们的需要注入的

6、DLL的路径.需要用到的API函数有:OpenProcess():打开目标进程,得到目标进程的操作权限,详细参看MSDN  functionOpenProcess(  dwDesiredAccess:DWORD;  //希望获得的访问权限  bInheritHandle:BOOL;  //指明是否希望所获得的句柄可以继承  dwProcessId:DWORD//要访问的进程ID  ):THandle;VirtualAllocEx():用于在目标进程内存空间中申请内存空间以写入DLL的文件名  functionVirtualAllocEx(  hProcess:THandle;  /

7、/申请内存所在的进程句柄  lpAddress:Pointer;  //保留页面的内存地址;一般用nil自动分配  dwSize,  //欲分配的内存大小,字节单位;注意实际分配的内存大小是页内存大小的整数倍  flAllocationType:DWORD;  flProtect:DWORD  ):Pointer;WriteProcessMemory():往申请到的空间中写入DLL的文件名  functionWriteProcessMemory(  hProcess:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。