아래의 3가지 Function은 Kernel To User Callback을 대표하는 함수 입니다. 그러면 이 녀석들의 Address는 Kernel의 어디에서 들고 있을까 ?
7c93ead0 ntdll!KiUserCallbackDispatcher = <no type information>
7c93eac0 ntdll!KiUserApcDispatcher = <no type information>
7c93eaec ntdll!KiUserExceptionDispatcher = <no type information>
간단히 nt Symbol에서 확인이 가능합니다.
lkd> X nt!KeUser*
80563474 nt!KeUserCallbackDispatcher = <no type information>
80563478 nt!KeUserApcDispatcher = <no type information>
805701cc nt!KeUserModeCallback = <no type information>
80563470 nt!KeUserExceptionDispatcher = <no type information>
커널쪽 심볼중 이름이 비슷한 세녀석이 있지요. 실제로 이 세녀석의 Memory를 열어 보면 User Mode Callback의 Address가 담겨 있는것을 확인 할 수가 있습니다.
lkd> dd 80563470
80563470 7c93eaec 7c93ead0 7c93eac0 00002626
80563480 00000000 00000000 00000000 00000000
80563490 00000000 00000000 00000000 00000000
805634a0 00000000 00000000 00000000 00000000
805634b0 00000000 00000000 00000000 00000000
805634c0 804e68b0 00000000 0000011c 80519fc4
805634d0 bf999980 00000000 0000029b bf99a690
805634e0 00000000 00000000 00000000 00000000
User Callback Function 세녀석의 주소가 나란히 저장되어 있는것을 확인할 수 가 있습니다.
최근 답글