找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
楼主: Tesla.Angela

[新年礼物]最简的HIPS模型(RING0主动向RING3交互)(兼容WIN32/WIN64)

 火... [复制链接]

6

主题

123

回帖

0

精华

初来乍到

积分
5392
发表于 2022-4-20 11:33:07 | 显示全部楼层
其实我一直好奇,从R0传字符串给R3 ,用指针还是数组
struct SEND{
int number;
PCHAR Processname
}


struct SEND{
int number;
CHAR Processname[270];
}

用数组的话,可能会浪费或者不够,
用指针的话,等下R3接受的结构体里面,Processname是个内核地址,无法读取存在里面的 字符串

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
 楼主| 发表于 2022-4-20 17:10:08 | 显示全部楼层
YOUBADBAD 发表于 2022-4-20 11:33
其实我一直好奇,从R0传字符串给R3 ,用指针还是数组
struct SEND{
int number;


如果真的是ProcessName或ProcessPath,那么用16/260字节的char数组即可。

如果要频繁传输海量不定长数据,那就用socket。

6

主题

123

回帖

0

精华

初来乍到

积分
5392
发表于 2022-4-20 18:51:58 | 显示全部楼层
Tesla.Angela 发表于 2022-4-20 17:10
如果真的是ProcessName或ProcessPath,那么用16/260字节的char数组即可。

如果要频繁传输海量不定长数据 ...

是的,我有这样的打算,如果ioctrl解决不了,就直接readfile和writefile   或者socket等等

0

主题

40

回帖

0

精华

金牌会员

积分
868
发表于 2022-8-30 19:56:42 | 显示全部楼层
谢谢分享 最近在写一个 刚好看看

0

主题

2

回帖

0

精华

初来乍到

积分
12
发表于 2022-9-11 01:02:24 | 显示全部楼层
谢谢楼主分享

0

主题

9

回帖

0

精华

初来乍到

积分
19
发表于 2022-11-24 14:59:31 | 显示全部楼层
查看如何主动

2

主题

61

回帖

0

精华

铜牌会员

积分
58
发表于 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;
                USHORT  LoadCount;
                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;
}

不然无法调试 加载失败等

0

主题

52

回帖

0

精华

钻石会员

积分
3863
发表于 2023-3-5 22:35:05 | 显示全部楼层
学习学习

0

主题

7

回帖

0

精华

初来乍到

积分
7
发表于 2023-3-19 20:00:45 | 显示全部楼层
感谢分享
学习下

0

主题

27

回帖

0

精华

铜牌会员

积分
37
发表于 2023-4-12 17:10:37 | 显示全部楼层
学习

0

主题

36

回帖

0

精华

铜牌会员

积分
36
发表于 2023-4-26 21:37:14 | 显示全部楼层
不行支持啊                  

0

主题

40

回帖

0

精华

铜牌会员

积分
64
发表于 2024-3-12 11:05:25 | 显示全部楼层
Thankyou 学习下主防

0

主题

31

回帖

0

精华

贵宾会员

积分
19
发表于 2024-3-14 14:15:43 | 显示全部楼层
谢谢分享,学习一下~
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表