- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
闲着没事整理了一下DLL的N种注入方法,对学习外挂的朋友,应该有用!第一种方法:利用 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;??// 申请内存所在的进程句柄? ? lpAddress: Pointer
您可能关注的文档
最近下载
- 中招英语质量分析.pptx VIP
- 北师大版六年级上册数学知识点汇总(精华版).docx
- 课程思政在小学英语教学中的实施效果教学研究课题报告.docx
- 《语言障碍的康复》课件.ppt VIP
- 2025年中国小家电未来发展趋势分析及投资规划建议研究报告.docx VIP
- 语言与言语训练的方法课件.ppt VIP
- 统编版2024道德与法治七年级上册 教材单元思考与行动解答示例.pptx
- DB52T 780—2012贵州省白酒工业旅游示范点评定规范.pdf VIP
- 2025年医院招聘考试公共基础知识历年试题及答案解析(4).docx VIP
- (2025秋新版)北师大版三年级数学上册《铅笔有多长》PPT课件.pptx VIP
文档评论(0)