📄 mydef.c
字号:
#include "MyDef.h"
//extern LONG KeReadStateEvent(IN PRKEVENT Event);
extern PVOID gpEventObject; // 与应用通信的事件对象
extern PVOID SystemVirtualAddress; // 共享内存地址
// 检查数据包函数,这里只检查ARP。
UINT Check_Packet(char *pPacket)
/*--
return value:
1 -> 匹配
0 -> 不匹配
--*/
{
PARPPACKET p_arp;
__try
{
__try
{
p_arp = (PARPPACKET)pPacket;
// 检测是否为 ARP 数据包
if(p_arp->dlcHeader.H_frame_type == 8 && p_arp->dlcHeader.L_frame_type == 6)
{
if(!KeReadStateEvent(gpEventObject))
{
// 复制数据到共享内存
memset(SystemVirtualAddress, 0, 100);
memcpy(SystemVirtualAddress, (char *)p_arp, sizeof(ARPPACKET));
KeSetEvent(gpEventObject, 0, FALSE);
}
else{}
return 1;
}
}
except (EXCEPTION_EXECUTE_HANDLER){DbgPrint("发生异常! --In Check_Packet\n"); }
}
finally{}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -