最近在调试ntNtCreateKey函数,每次触发断点后,查看究竟哪个键值被创建应用一下几个步骤
1. dd esp指令得到nt!NtCreateKey第三个参数 aaa,类型为OBJECT_ATTRIBUTES
2. dd aaa得到OBJECT_ATTRIBUTES结构体内存
3. dd [aaa] + 8得到Unicode_String结构体内存
4. du Unicode_String结构体内存+4 得到键值名称
每次触发nt!NtCreateKey都要调用以上几个步骤我的心也是碎了,想到windbg支持脚本,那我也学着用用。于是查资料得知poi指令可以得到其参数所指向的内存的值,于是以上一个步骤可以合并成一个步骤 du poi(poi(poi(esp+c)+8)+4), 谢谢!