首页
社区
课程
招聘
[求助]奇怪的键盘记录-向高手请教
发表于: 2012-4-27 10:48 9679

[求助]奇怪的键盘记录-向高手请教

2012-4-27 10:48
9679
今天试着调试一个键盘记录工具,想着应该是用SetWindowsHookEx钓的消息钩子,用ollydbg找到了函数的参考下断点,运行时发现断点不停,试着用消息中断断Start按钮,也不管用,不知道怎么回事,新手一位,向高手请教,附件中是程序

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 2815
活跃值: (2608)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2
按钮事件地址
00402538            .  53            PUSH EBX

然后跳到这里

00E8CE0E             B8 EB110000     MOV EAX,11EB
00E8CE13             BA 0003FE7F     MOV EDX,7FFE0300
00E8CE18             FF12            CALL DWORD PTR DS:[EDX]
00E8CE1A             C2 0C00         RETN 0C

进入内核,11EB不知道是什么,lx继续
2012-4-27 14:28
0
雪    币: 145
活跃值: (105)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
3
SetWindowsHookEx不是唯一方法
2012-4-27 15:03
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
能不能指点一下,你是怎么找到这个处理函数的,我只找到了消息处理函数,不知道怎么找到这个按钮的处理函数的
2012-4-27 22:44
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个程序是以什么方式获取的键盘输入,能否指点下
2012-4-27 22:52
0
雪    币: 388
活跃值: (147)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
通过RegisterRawInputDevices进行注册,注册后可以在消息过程中处理WM_INPUT消息,调用GetRawInputData可以得到按键记录。
但这种方法比较上层的,得不到QQ的密码输入。。。
2012-4-28 09:01
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我追到代码上看到调用了一个ntDll.KiFastSystemCall后记录就生效了,KiFastSystemCall和RegisterRawInputDevices有什么吗,我下的RegisterRawInputDevices函数断点没断下来是怎么回事?
2012-4-28 09:52
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
跟踪程序发现下图中所示的疑惑,请高手指点下
上传的附件:
2012-4-28 10:24
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我发现为什么下RegisterRawInputDevices断点,断不下来了,发现实现RegisterRawInputDevices函数的地方有两个,产生了疑惑,请指点下,疑惑在下图
2012-4-28 10:27
0
雪    币: 297
活跃值: (265)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
10
原始输入方式截获键盘输入信息,在r3下算是比较底层的了,我这有demo需要不
2012-4-28 10:44
0
雪    币: 388
活跃值: (147)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
0x0040225D->mov RegisterRawInputDevices, eax

eax为RegisterRawInputDevices地址,在eax所指向的地址下断点就可以断下来。
2012-4-28 12:36
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
如果方便你可以发我邮箱吗?我主要想看看怎么能使这个程序失效。
2012-4-28 16:03
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
402255  call keyboard.00401c64是不是把RegisterRawInputDevices函数读取到F4C9AA了,这样也就解释了为什么我在上边问的有两个RegisterRawInputDevices这个函数的地址的问题了?还望指教



另外F4C9AA在什么地方,我怎么在汇编窗口和数据窗口都找不到,我跟到F4C9AA这段代码时,程序领空好像进入“主线程”,是怎么回事,如下图
当进入F4C9AA时od  标题从原来的

变为
上传的附件:
2012-4-28 16:27
0
雪    币: 2815
活跃值: (2608)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
14
有两个有什么奇怪了,主程序模拟了那段指令而已,你下断只能断到USER里的那个函数。
记得某大牛分析QQ的时候,就是模拟了一个SetWindowsHookEx函数。
2012-4-29 00:07
0
雪    币: 2815
活跃值: (2608)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
15
数字就能拦截到,应该是在内核拦截的。
2012-4-29 00:09
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
如果是模拟就不奇怪了,我看了两个地方指令完全相同,我看这个地方(如图)应该是把RegisterRawInputDevides读取到了F4C9AA。不知道高人分析这段程序没
2012-5-7 21:48
0
游客
登录 | 注册 方可回帖
返回
//