R0传出字符串
struct DriverName
{
char
*
name;
};
DriverName
data
=
(DriverName
)req
-
>data;
temp;
ANSI_STRING AnsiString;
RtlUnicodeStringToAnsiString(&AnsiString, &((PKLDR_DATA_TABLE_ENTRY)DynamicData
>DriverObject
>DriverSection)
>BaseDllName, TRUE);
temp
AnsiString.
Buffer
;
RtlFreeAnsiString(&AnsiString);
>name
DbgPrint(
"name %s\n"
, data
>name);
break
R3接收的时候出问题了
auto name
drv.GetDriverBaseName();
printf(
"pName: %p\n"
, name);
"name: %s\n"
所以问题来了,我在R0创建的字符串的地址是内核地址,R3无法读出这个字符串,有办法可以解决吗?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)