用DETOURS库获取NT管理员权限

用DETOURS库获取NT管理员权限
陈志敏
---- Detours是微软开发的一个函数库(源代码可在http://research.microsoft.com/sn/detours 免费获得), 用于修改运行中的程序在内存中的影像,从而即使没有源代码也能改变程序的行为。具体用途是:

拦截WIN32 API调用,将其引导到自己的子程序,从而实现WIN32 API的定制。
为一个已在运行的进程创建一新线程,装入自己的代码并运行。
---- 本文将简介Detours的原理,Detours库函数的用法, 并利用Detours库函数在Windows NT上编写了一个程序,该程序能使有“调试程序”的用户权限的用户成为系统管理员,附录利用Detours库函数修改该程序使普通用户即可成为系统管理员(在NT4 SP3上)。

一. Detours的原理

---- 1. WIN32进程的内存管理

---- 总所周知,WINDOWS NT实现了虚拟存储器,每一WIN32进程拥有4GB的虚存空间, 关于WIN32进程的虚存结构及其操作的具体细节请参阅WIN32 API手册, 以下仅指出与Detours相关的几点:

---- (1) 进程要执行的指令也放在虚存空间中
---- (2) 可以使用QueryProtectEx函数把存放指令的页面的权限更改为可读可写可执行,再改写其内容,从而修改正在运行的程序
---- (3) 可以使用VirtualAllocEx从一个进程为另一正运行的进程分配虚存,再使用 QueryProtectEx函数把页面的权限更改为可读可写可执行,并把要执行的指令以二进制机器码的形式写入,从而为一个正在运行的进程注入任意的代码

---- 2. 拦截WIN32 API的原理

---- Detours定义了三个概念:

---- (1) Target函数:要拦截的函数,通常为Windows的API。
---- (2) Trampoline函数:Target函数的复制品。因为Detours将会改写Target函数,所以先把Target函数复制保存好,一方面仍然保存Target函数的过程调用语义,另一方面便于以后的恢复。
---- (3) Detour 函数:用来替代Target函数的函数。

---- Detours在Target函数的开头加入JMP Address_of_ Detour_ Function指令(共5个字节)把对Target函数的调用引导到自己的Detour函数, 把Target函数的开头的5个字节加上JMP Address_of_ Target _ Function+5作为Trampoline函数。例子如下:

拦截前:Target _ Function:
  ;Target函数入口,以下为假想的常见的子程序入口代码
  push  ebp
  mov  ebp,  esp
  push  eax
  push  ebx
  Trampoline:
  ;以下是Target函数的继续部分
  ……

拦截后: Target _ Function:
阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
detours 4.0.1 professional是一款功能强大的软件。它是一个编码工具,主要用于Windows操作系统的二进制重定向和代码操纵。通过使用detours 4.0.1 professional,用户可以在不改变原始二进制代码的情况下,对已经编译好的应用程序进行扩展和定制。 detours 4.0.1 professional具有多种功能和特点。首先,它提供了一个简单易用的API,使开发人员可以通过自定义设置,获取对应用程序中函数的控制权。这意味着开发人员可以在运行时修改任意函数的行为,实现一些特殊需求或功能扩展。 其次,detours 4.0.1 professional支持二进制代码注入技术。这种技术使得开发人员可以将自定义代码注入到其他应用程序中运行,以实现一些特定的功能需求。同时,detours 4.0.1 professional还提供了一套强大的调试工具,可以检测并解决注入过程中可能出现的问题,提高代码质量和稳定性。 此外,detours 4.0.1 professional还支持多种扩展功能,如对64位应用程序的支持、在运行时对代码进行动态修改、对系统函数进行篡改等。这些功能使得开发人员可以更加灵活地处理各类编码需求。 总的来说,detours 4.0.1 professional是一款强大的编码工具,适用于Windows操作系统。它提供了丰富的功能和特点,使得开发人员可以更加自由地定制和修改已编译的应用程序,满足不同的编码需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FBStudio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值