其实我一直好奇,从R0传字符串给R3 ,用指针还是数组
struct SEND{
int number;
PCHAR Processname
}
struct SEND{
int number;
CHAR Processname;
}
用数组的话,可能会浪费或者不够,
用指针的话,等下R3接受的结构体里面,Processname是个内核地址,无法读取存在里面的 字符串
YOUBADBAD 发表于 2022-4-20 11:33
其实我一直好奇,从R0传字符串给R3 ,用指针还是数组
struct SEND{
int number;
如果真的是ProcessName或ProcessPath,那么用16/260字节的char数组即可。
如果要频繁传输海量不定长数据,那就用socket。
Tesla.Angela 发表于 2022-4-20 17:10
如果真的是ProcessName或ProcessPath,那么用16/260字节的char数组即可。
如果要频繁传输海量不定长数据 ...
是的,我有这样的打算,如果ioctrl解决不了,就直接readfile和writefile 或者socket等等
谢谢分享 最近在写一个 刚好看看
谢谢楼主分享
查看如何主动
BOOLEAN BypassCheckSign(PDRIVER_OBJECT pDriverObject)
{
# ifdef _WIN64
typedef struct _KLDR_DATA_TABLE_ENTRY
{
LIST_ENTRY listEntry;
ULONG64 __Undefined1;
ULONG64 __Undefined2;
ULONG64 __Undefined3;
ULONG64 NonPagedDebugInfo;
ULONG64 DllBase;
ULONG64 EntryPoint;
ULONG SizeOfImage;
UNICODE_STRING path;
UNICODE_STRING name;
ULONG Flags;
USHORTLoadCount;
USHORT__Undefined5;
ULONG64 __Undefined6;
ULONG CheckSum;
ULONG __padding1;
ULONG TimeDateStamp;
ULONG __padding2;
} KLDR_DATA_TABLE_ENTRY, * PKLDR_DATA_TABLE_ENTRY;
# else
typedef struct _KLDR_DATA_TABLE_ENTRY
{
LIST_ENTRY listEntry;
ULONG unknown1;
ULONG unknown2;
ULONG unknown3;
ULONG unknown4;
ULONG unknown5;
ULONG unknown6;
ULONG unknown7;
UNICODE_STRING path;
UNICODE_STRING name;
ULONG Flags;
} KLDR_DATA_TABLE_ENTRY, * PKLDR_DATA_TABLE_ENTRY;
# endif
PKLDR_DATA_TABLE_ENTRY pLdrData = (PKLDR_DATA_TABLE_ENTRY)pDriverObject->DriverSection;
pLdrData->Flags = pLdrData->Flags | 0x20;
return TRUE;
}
不然无法调试 加载失败等
学习学习
感谢分享
学习下
学习
不行支持啊
Thankyou 学习下主防
谢谢分享,学习一下~