首页
论坛
课程
招聘
[原创][分享]X64下使用GetWindowLongPtr跨进程取其他进程的WNDPROC等
2019-10-1 01:45 4509

[原创][分享]X64下使用GetWindowLongPtr跨进程取其他进程的WNDPROC等

2019-10-1 01:45
4509

众所周知GetWindowLongPtr 是用于在指定的窗口中获取信息

那么问题来了,我要是想取其他进程窗口的WNDPROC这样的操作可不可行呢?

于是我开始查询相关资料 有关资料也几乎是一年前的代码 且都只是在 x86 上实现

但也不是没有收获   根据前人帖子中所说 x86 中 GetWindowLong  没有进内核只是读取了一个共享的 WND结构体 所有进程都能访问

既然这样的话 我们可以直接修改自己进程中的USER32.GetWindowLongPtrW函数代码实现跨进程取WNDPROC


如图所示 我们在USER32.GetWindowLongPtrW 函数头部下断点寻找判断目标窗口是否属于自身进程的汇编代码

通过单步调试发现就是这句,判断目标窗口是否属于自身进程


于是我把这个jne直接nop


果不其然的 成功取到了目标窗口的 WNDPROC


是的你没有看错 就是这么简单 感谢前人的帖子让我不走弯路

另外代码我就不放出来了

修改自己进程内的代码 这么简单是操作也不需要我 发代码出来了吧

来看雪有段时间了 发现没人发x64 GetWindowLongPtr 相关的帖子 我就寻思我是不是要发一波?


[公告]春风十里不如你,看雪团队诚邀你的加入!

收藏
点赞1
打赏
分享
最新回复 (10)
雪    币: 4936
活跃值: 活跃值 (834)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
白菜大哥 活跃值 2019-10-1 06:40
2
0
哈哈,想到好多奇怪的功能
雪    币: 687
活跃值: 活跃值 (405)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
はつゆき 活跃值 2019-10-1 17:47
3
0
有点用,花里胡哨的
雪    币: 2054
活跃值: 活跃值 (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
LuciferAda 活跃值 2019-10-1 17:54
4
0
白菜大哥 哈哈,想到好多奇怪的功能
嘿嘿嘿 能干啥就需要你们自己发挥想象力了喲
雪    币: 2054
活跃值: 活跃值 (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
LuciferAda 活跃值 2019-10-1 17:54
5
0
刘铠文 有点用,花里胡哨的
一个jne而已
雪    币: 5836
活跃值: 活跃值 (798)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
黑洛 活跃值 1 2019-10-1 19:37
6
0
有点意思。
雪    币: 31
活跃值: 活跃值 (228)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
靴子 活跃值 2019-10-1 19:49
7
0
有点意思
雪    币: 2054
活跃值: 活跃值 (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
LuciferAda 活跃值 2019-10-2 00:35
8
0
第一次发帖 自己顶一顶
雪    币: 15789
活跃值: 活跃值 (14050)
能力值: (RANK:75 )
在线值:
发帖
回帖
粉丝
Editor 活跃值 2019-10-2 10:40
9
0
哈哈,顶一下
雪    币: 86
活跃值: 活跃值 (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kongfubull 活跃值 2019-10-8 09:49
10
0
擦,我想到了很多。。。嗯。。。。ws的东西。。。自己之前也有想过这个问题,但是MSDN上就一句话带过,反正只能拿到WND这个共享的结构体。。。。。佩服楼主的深挖精神,值得我辈学习。
雪    币: 71
活跃值: 活跃值 (337)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
killpy 活跃值 2 2019-12-13 08:15
11
0
可以
游客
登录 | 注册 方可回帖
返回