-
-
[求助]驱动中使用全局变量! 出错了!
-
发表于:
2009-9-13 20:56
5891
-
第一次 DbgPrint("%s",jinchengming);打印正确的传入进程名 “a.exe”
运行一个程序 激活回调, DbgPrint("%s",jinchengming);打印出一片乱码,
请问这是为何?
char * jinchengming=0;
NTSTATUS
DispatchIoctl(
PDEVICE_OBJECT pDevObj,
PIRP pIrp
)
{
NTSTATUS status = STATUS_INVALID_DEVICE_REQUEST;
PIO_STACK_LOCATION pIrpStack;
ULONG uIoControlCode;
PVOID pIoBuffer;
ULONG uInSize;
ULONG uOutSize;
int i = 0;
char * pucBuffs=0;
pIrpStack = IoGetCurrentIrpStackLocation(pIrp);
uIoControlCode = pIrpStack->Parameters.DeviceIoControl.IoControlCode;
pIoBuffer = pIrp->AssociatedIrp.SystemBuffer;
uInSize = pIrpStack->Parameters.DeviceIoControl.InputBufferLength;
uOutSize = pIrpStack->Parameters.DeviceIoControl.OutputBufferLength;
switch(uIoControlCode) {
case IOCTL_HELLO1:
{
pucBuffs = pIoBuffer;
jinchengming = pucBuffs;
dprintf("[madaxian] Hello\n");
PsSetCreateProcessNotifyRoutine(ProcessCallback, FALSE);
DbgPrint("%s",jinchengming);
status = STATUS_SUCCESS;
}
break;
//
// 添加执行代码
//
}
if(status == STATUS_SUCCESS)
pIrp->IoStatus.Information = uOutSize;
else
pIrp->IoStatus.Information = 0;
/////////////////////////////////////
pIrp->IoStatus.Status = status;
IoCompleteRequest(pIrp, IO_NO_INCREMENT);
return status;
}
VOID
ProcessCallback(
IN HANDLE ParentId,
IN HANDLE ProcessId,
IN BOOLEAN Create
)
{
DbgPrint("%s",jinchengming);
}
[课程]Android-CTF解题方法汇总!