lqzsxxmeme
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2002-11-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2132回复:12

关于得到api的调用者的问题---15分

楼主#
更多 发布于:2002-07-19 23:44
我现在做一Api hook,在我的hook函数里,我想得知此时此api正被哪些进程或用户调用,也即得到调用该api 的源---进程或用户,请问各位怎么实现,不甚感激!!!
xdjm
驱动中牛
驱动中牛
  • 注册日期2001-04-02
  • 最后登录2024-01-25
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望25点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-07-20 12:19
分析API函数的堆栈,找到调用者的返回地址。
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-20 21:54
我现在做一Api hook,在我的hook函数里,我想得知此时此api正被哪些进程或用户调用,也即得到调用该api 的源---进程或用户,请问各位怎么实现,不甚感激!!!


你用什么hook?驱动吗?
当你的驱动因某进程的调用而激活时,该环境就是那个进程的环境,直接就可从当前EPROCESS得出是什么进程;至于用户可从进程令牌环得到其部分信息,以前讨论过,search。
lqzsxxmeme
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2002-11-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-22 10:46
  请问pjf:从进程的令牌环能得到该进程的所有访问者,但这些访问者并非都在同时调用该api,这并不能得到调用该api的确切用户,这个问题一直在困惑了我,怎么才能得到调用该api的确切用户?
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-22 18:47
 请问pjf:从进程的令牌环能得到该进程的所有访问者,但这些访问者并非都在同时调用该api,这并不能得到调用该api的确切用户,这个问题一直在困惑了我,怎么才能得到调用该api的确切用户?


仔细看前面。
调用的进程得到了吗?
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-22 22:40
pjf好象做过这方面的,问他算是问对了
zhangyl
驱动牛犊
驱动牛犊
  • 注册日期2001-07-18
  • 最后登录2009-03-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-07-23 11:51
GetCurrentProcessId, GetCurrentThread,GetCurrentProcess等
签名是什么?
wangxdong
驱动小牛
驱动小牛
  • 注册日期2002-07-08
  • 最后登录2003-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-07-23 18:16
请问hook是什么东东?
请多多指教!
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-07-23 19:19
pjf好象做过这方面的,问他算是问对了


这方面真正的项目倒没做过,但我没事搞搞操作系统与处理器体系结构,内核的组成---驱动的诸方面自然是要玩玩的。皮毛得很
roger_ding
驱动牛犊
驱动牛犊
  • 注册日期2002-06-03
  • 最后登录2008-10-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-07-24 10:47
由于你的hook函数激活时就是处于调用方的进程内,所以可以得到调用进程的ID, 然后由hook函数的参数大小从堆栈中得到调用方的返回地址,再由上面得到的进程ID枚举出进程内所有的MODULE HANDLE 和MODULE SIZE,由于该HANDLE就是MODULE的映射起始地址,所以比较返回地址在哪个MODULE的范围内即可知道调用方的详细信息
lqzsxxmeme
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2002-11-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-07-24 14:13
 我知道调用进程ID是能得到,但是还有一问题,比如当我在一装有IIS 的Win2000 Server上hook时,若有一远程用户访问我的IIS ,他以某一授权用户发出访问网页的请求,此时该请求到达我的2000 Server,进入我的hook函数,我怎么才能在此hook函数里得到此时调用的用户名?我知道根据进程的访问令牌能得到此进程的所有用户,但此进程有可能有不止一个令牌用户,我们怎样才能在hook里确切的将该hook函数和某一确定用户关联起来呢?
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-07-24 14:34
这个问题,我前不久刚刚实现,也是感谢pjf兄弟的帮忙,现在无偿奉献。只是你还需要一个应用端的服务或仅在应用程序端调用一个文档中提到的Win32API得到用户名即可。
Tom_lyd
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-07-24 14:38
 我知道调用进程ID是能得到,但是还有一问题,比如当我在一装有IIS 的Win2000 Server上hook时,若有一远程用户访问我的IIS ,他以某一授权用户发出访问网页的请求,此时该请求到达我的2000 Server,进入我的hook函数,我怎么才能在此hook函数里得到此时调用的用户名?我知道根据进程的访问令牌能得到此进程的所有用户,但此进程有可能有不止一个令牌用户,我们怎样才能在hook里确切的将该hook函数和某一确定用户关联起来呢?

对于远程的访问,本地只能得到它登录本机的用户名,例如,他以guest登录你的机器,则你的HOOK只能得guest,仅此而已。
各位高手,如果能确切得到LAN内任何一台访问本机的用户名(而不是授权用户名),还请不要保留。
Tom_lyd
游客

返回顶部