求助:C++实现DLL注入后获取主窗口句柄
本帖最后由 朱朱你堕落了 于 2023-7-27 17:36 编辑如图:
https://s1.ax1x.com/2023/07/27/pCvXAts.png
如图所示:这是OD的窗口句柄。
需求:
DLL注入到吾爱OD里,打印出来窗口句柄。以吾爱OD为例就行,https://down.52pojie.cn/Tools/Debuggers/
最好是,写个winmm.dll或msimg32.dll或winspool.drv什么的都可以,OD启动后,能获取到正确值。
如果懒得写劫持DLL,直接写个普通DLL也行,毕竟要实现的是如何获取到,获取到的值一定要对。
请使用第三方spy++获取对比结果是否正确,提供一下源码,谢谢各位大佬。 本帖最后由 xiaoy 于 2023-7-27 17:50 编辑
EnumWindows(EnumWindowsProc, 0);
BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam) {
DWORD dwPID;
char c;
// 设置Result初始值为TRUE
BOOL result = TRUE;
GetWindowThreadProcessId(hWnd, &dwPID);
if (dwPID == GetCurrentProcessId()) {
GetClassName(hWnd, c, sizeof(c));
if (strcmp(c, "123123123") == 0) {
mHwnd = hWnd;
result = FALSE; } }
// 返回结果 return result;}
其实现在,这玩意你直接问gpt还来得快一点,哈哈 简单整个hook消息回调函数,挂到主线程,第一个参数就是窗口句柄
相关函数:SetWindowsHookEx GPT这么牛B, 为什么论坛还要禁止用GPT回复?
因为质量有好有差,如果不筛选回答或基于答案进行改造,得到的不一定是你问的东西的答案。
跨进程获取OD的模块窗体句柄比较麻烦,常规方法是获取不到的,你可以试一试从进程pid入手。
页:
[1]