学习驱动,本想读取每个系统模块的PE头看看.sys和.DLL有什么不一样。结果读到一个叫TSDDD.DLL的系统模块时,本想从基址直接读入DOS头的0x40个字节看看,结果蓝屏,没找到原因。我是Win7系统。读入地址一般是:0x96XXXXXX,为TSDDD.DLL的模块基址。
前面已经正确读出107个了。这个是第108个,却蓝屏。我菜,Ring0调试基本不懂,大侠帮忙指导一下,能不能帮着找找原因?谢谢。
下面是Ring0经Ring3的DeviceIoControl读指定核心地址的代码。
ULONG code = stack->Parameters.DeviceIoControl.IoControlCode;
//得到系统缓冲区指针
Buffer = (PULONG)pIrp->AssociatedIrp.SystemBuffer;
ULONG info = 0;
switch (code)
{
case MEM_R: //读内核内存
if (cbin == 4)
{
ntStatus = STATUS_SUCCESS;
info = cbout;
RtlMoveMemory((PUCHAR)Buffer,(PUCHAR)*Buffer,info);
}
break;
网上搜了下,这个TSDDD.dll大约是什么显卡的驱动。
会的帮帮,一起想知道原因的,帮着顶顶。
[注意]APP应用上架合规检测服务,协助应用顺利上架!