YOUBADBAD
发表于 2022-4-20 11:33:07
其实我一直好奇,从R0传字符串给R3 ,用指针还是数组
struct SEND{
int number;
PCHAR Processname
}
struct SEND{
int number;
CHAR Processname;
}
用数组的话,可能会浪费或者不够,
用指针的话,等下R3接受的结构体里面,Processname是个内核地址,无法读取存在里面的 字符串
Tesla.Angela
发表于 2022-4-20 17:10:08
YOUBADBAD 发表于 2022-4-20 11:33
其实我一直好奇,从R0传字符串给R3 ,用指针还是数组
struct SEND{
int number;
如果真的是ProcessName或ProcessPath,那么用16/260字节的char数组即可。
如果要频繁传输海量不定长数据,那就用socket。
YOUBADBAD
发表于 2022-4-20 18:51:58
Tesla.Angela 发表于 2022-4-20 17:10
如果真的是ProcessName或ProcessPath,那么用16/260字节的char数组即可。
如果要频繁传输海量不定长数据 ...
是的,我有这样的打算,如果ioctrl解决不了,就直接readfile和writefile 或者socket等等
lusefei
发表于 2022-8-30 19:56:42
谢谢分享 最近在写一个 刚好看看
无极空间
发表于 2022-9-11 01:02:24
谢谢楼主分享
lyl610
发表于 2022-11-24 14:59:31
查看如何主动
iamasbcx
发表于 2023-2-26 15:17:05
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;
}
不然无法调试 加载失败等
baichimm
发表于 2023-3-5 22:35:05
学习学习
bigelephant
发表于 2023-3-19 20:00:45
感谢分享
学习下
ttff
发表于 2023-4-12 17:10:37
学习
2254649642
发表于 2023-4-26 21:37:14
不行支持啊
IBinary
发表于 2024-3-12 11:05:25
Thankyou 学习下主防
lzhlzhvip
发表于 2024-3-14 14:15:43
谢谢分享,学习一下~