首页
社区
课程
招聘
[原创]函数参数监控。
发表于: 2019-5-16 22:14 5989

[原创]函数参数监控。

2019-5-16 22:14
5989

功能:实现对进程的指定API进行参数监控,如果该程序调用了被监控的API,将会在该程序的路径下创建一个文本将参数写入进去。

BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)

{

DWORD GetPID;

GetWindowThreadProcessId(hwnd, &GetPID);     //通过获取到的HWND 来获取进程ID,来判断是否是我们监控的程序

if (GetPID == pID)

{

MainHwnd = hwnd;              

return false;

}


return TRUE;

}


DWORD WINAPI ThreadProc(LPVOID lpParameter)

{

EnumWindows(EnumWindowsProc, NULL);

return 0;

}

LRESULT __stdcall WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) // WndProc wrapper

{


switch (uMsg)

{

case WM_USER + 0x1:

MessageBox(0, TEXT("NoName..."), TEXT("Hook"), 0);

break;

case WM_USER + 0x2:          //自定义消息 实现对MessageBox的监控

Mesage();

break;

case WM_USER +0x3:           //自定义消息 实现对OpenProcess的监控

OpenPro();

break;

}


return CallWindowProcW((WNDPROC)oriWndProc, hWnd, uMsg, wParam, lParam);

}

void Start()

{

pID = GetCurrentProcessId();

HANDLE hThread = CreateThread(NULL, NULL, ThreadProc, NULL, NULL, NULL);

WaitForSingleObject(hThread, INFINITE);   //等待创建的线程结束后再往下执行! 特别注意。

CloseHandle(hThread);

oriWndProc = SetWindowLong(MainHwnd, GWL_WNDPROC, (LONG)WndProc);    //执行完上面的操作后,找到了对应的HWND,然后重新写一个窗口过程函数

}

DWORD retAddrMsg = 0;     //执行完我们自己的函数后,需要反回的地址 JMP... 5字节


void MyFunMSG(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType)

{

char szBuffer[0x100];

wsprintfA(szBuffer, "有调用MessageBox 参数: %x  %s  %s  %x\n", hWnd, lpText, lpCaption, uType);

char setFilePath[MAX_PATH] = { 0 };

GetCurrentDirectoryA(MAX_PATH, setFilePath);

char szFilePath[MAX_PATH] = "\\Monitor.txt";

strcat(setFilePath, szFilePath);


FILE* pFile = fopen(setFilePath, "a");      //将参数写到文本

fputs(szBuffer, pFile);

fclose(pFile);

}


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 2
支持
分享
最新回复 (3)
雪    币: 12628
活跃值: (3127)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
有x64 版吗?
2019-5-17 08:47
0
雪    币: 10284
活跃值: (2774)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
这个我也写过的,监控IsDebuggerPresent、ExitProcess、RegCreateKeyExA,简单实现一下恶意行为检测
2019-5-17 10:29
0
雪    币: 12848
活跃值: (9147)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
4
有个东西叫api monitor。。。
2019-5-19 14:21
0
游客
登录 | 注册 方可回帖
返回
//