Windows 7 driver hooking -


my question regarding driver development windows 7.

i need intercept system calls driver. theoretically in such cases it's recommended create filter driver, in case driver doesn't expose filter-compatible interface. it's vista/7 display miniport driver exact.

display driver loaded standard wdm driver. in driverentry it's expected call dxgkinitialize system routine (exported win32k.sys guess). goal intercept call.

can suggest me useful source can find information how achieve this?

the key victory replacing dxgkinitialize within driver executable import section address of function. problem should done after executable loaded (mapped + relocated if necessary + import table entries prepared), before driver's entry point invoked.

i thought following options:

  • map executable system memory , "prepare" manually (i.e. work of loader). patch needed function(s) , run entry point.
  • with effort zwsetsysteminformation can used module loading (?)
  • maybe patch export section of module exports dxgkinitialize. loader automatically redirect every loaded module hands.

thanks in advance.

you don't provide business reason this, i'd hesitate harsh. should reconsider technological approach if involves hooking calls.

the steps i'd take include:

  1. who exports dxgkinitialize? don't guess win32k, up. (i won't give answer). maybe can hook callee , not caller.

  2. do have callbacks of when driver module loaded before it's inited? lookup pssetloadimagenotifyroutine. maybe provide appropiate timeslot patch drivers iat (if don't know import address table is, reconsider hooking).

i see comments you're interested on "spying on display activities". i'm not sure that's precisely allowed on computers don't control. lets assume sake of question legal.

depending on resolution want get, don't need driver. heck, barely need dll. window hooks partial solutions , accessibility callbacks.


Comments

Popular posts from this blog

php - What is the difference between $_SERVER['PATH_INFO'] and $_SERVER['ORIG_PATH_INFO']? -

fortran - Function return type mismatch -

queue - mq_receive: message too long -