首页
社区
课程
招聘
[原创]Windows按键精灵分析
2021-6-9 16:02 23089

[原创]Windows按键精灵分析

2021-6-9 16:02
23089

一、概述

基本信息

图片描述
  样本无壳。
图片描述
  数字签名是吊销签名。
图片描述

外挂简介

  引用徐胜的一段话"外挂是一种特定的辅助软件。外挂与木马程序的区别在于,外挂是用户主动使用的,而木马则是在用户的终端上偷偷运行的。根据外挂是否有模块进行游戏客户端,把外挂大致分成两大类,即内存挂和非内存挂。“很显然这个样本非内存挂。

流程图

图片描述

二、技术细节详细分析

动态分析

文件行为

图片描述
  释放的压缩包存在C:\Users\<username>\AppData\Roaming\MyMacro启用。

网络行为

图片描述
图片描述
  通过端口8888和51019向117.27.139.134传输信息。

注册表行为

图片描述
  创建回调键值去启用注册的CLSID。
图片描述
  增添键值,追踪原文件。

调试分析

  初始化获取系统时间,跳入函数起始函数,检查文件和所在路径。
图片描述
  进入到main函数后,对异常,以及线程对临界区数据的读取做了进一步限制。
图片描述
  屏蔽系统错误窗口。
图片描述
  生成相应的配置信息。
图片描述
  根据参数的信息,可以直到这是监视对话框、消息框、菜单或滚动条中的输入事件而生成的消息。
图片描述
  如上图,这个函数是profuncaddreess,调试他。
图片描述
  如果没有hook成功,将会直接跳转。设置成功,返回原函数。
图片描述
  经过多跳,跳入设置设置注册表的函数。
图片描述
  设置消息过滤,并向OLE注册IMessageFilter接口,根据每个线程只能注册一个消息过滤器。多线程单元中的线程不能有消息过滤器。
图片描述
图片描述
  初始化com组件,初始化控件,初始化gdip函数库。
图片描述
  创建guid,重启管理器。
图片描述
  比对特殊字符。
图片描述
  通过下面的网址返回相应的信息。
图片描述
图片描述
  设置事件跟踪。
图片描述
  监控鼠标的移动,点击,和时间间隔。
图片描述
  函数最后取消注册,取消互锁,取消钩子。
  用 dbgview 看一下谁与客户端进行交互。
图片描述
  QQbox 客户端进行进程间管道通信。
  runner.exe 对 Visible、Enabled、Left、Top、Width、Height、ZOrder、Text、TextColor、BackColor、Hwnd、NormalColor、OverColor、FocusColor、Appearance、ColorScheme、Password 这些参数进行判断。
图片描述
  3908 为原外挂程序访问网址。
图片描述
图片描述
图片描述
  外挂可执行程序释放的 runner.exe 执行脚本。
图片描述
  runner加了所谓的强壳。
图片描述
  建议用1.4脚本去调试,也可以硬调。使用1.4脚本脱壳,可以参照我的od配置。
图片描述
  由于限制附件的大小,这是我OD的所有配置,运行起来没有异常。
图片描述
  经过调试两种方法都可行。
图片描述
  通过 loadMenu 和 GetSubMenu 这种方式去执行脚本内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
db '0x14',0Ah ; DATA XREF: sub_4059E0+260↑o
___:007F8FF8 db 'CapsLock',0Ah
___:007F8FF8 db '0x10',0Ah
___:007F8FF8 db 'Shift',0Ah
___:007F8FF8 db '0x11',0Ah
___:007F8FF8 db 'Ctrl',0Ah
___:007F8FF8 db '0x12',0Ah
___:007F8FF8 db 'Alt',0Ah
___:007F8FF8 db '0x5b',0Ah
___:007F8FF8 db 'Win',0Ah
___:007F8FF8 db '0x5c',0Ah
___:007F8FF8 db 'Win',0Ah
___:007F8FF8 db '0x26',0Ah
___:007F8FF8 db 'Up',0Ah
___:007F8FF8 db '0x28',0Ah
___:007F8FF8 db 'Down',0Ah
___:007F8FF8 db '0x25',0Ah
___:007F8FF8 db 'Left',0Ah
___:007F8FF8 db '0x27',0Ah
___:007F8FF8 db 'Right',0Ah
___:007F8FF8 db '0x2d',0Ah
___:007F8FF8 db 'Insert',0Ah
___:007F8FF8 db '0x24',0Ah
___:007F8FF8 db 'Home',0Ah
___:007F8FF8 db '0x21',0Ah
___:007F8FF8 db 'PageUp',0Ah
___:007F8FF8 db '0x2e',0Ah
___:007F8FF8 db 'Delete',0Ah
___:007F8FF8 db '0x23',0Ah
___:007F8FF8 db 'End',0Ah
___:007F8FF8 db '0x22',0Ah
___:007F8FF8 db 'PageDown',0Ah
___:007F8FF8 db '0x8',0Ah
___:007F8FF8 db 'BackSpace',0Ah
___:007F8FF8 db '0xd',0Ah
___:007F8FF8 db 'Enter',0Ah
___:007F8FF8 db '0x5d',0Ah
___:007F8FF8 db 'Right Mouse',0Ah
___:007F8FF8 db '0x20',0Ah
___:007F8FF8 db 'Space',0Ah
___:007F8FF8 db '0x9',0Ah
___:007F8FF8 db 'Tab',0Ah
___:007F8FF8 db '0x1b',0Ah
___:007F8FF8 db 'Esc',0Ah
___:007F8FF8 db '0x70',0Ah
___:007F8FF8 db 'F1',0Ah
___:007F8FF8 db '0x71',0Ah
___:007F8FF8 db 'F2',0Ah
___:007F8FF8 db '0x72',0Ah
___:007F8FF8 db 'F3',0Ah
___:007F8FF8 db '0x73',0Ah
___:007F8FF8 db 'F4',0Ah
___:007F8FF8 db '0x74',0Ah
___:007F8FF8 db 'F5',0Ah
___:007F8FF8 db '0x75',0Ah
___:007F8FF8 db 'F6',0Ah
___:007F8FF8 db '0x76',0Ah
___:007F8FF8 db 'F7',0Ah
___:007F8FF8 db '0x77',0Ah
___:007F8FF8 db 'F8',0Ah
___:007F8FF8 db '0x78',0Ah
___:007F8FF8 db 'F9',0Ah
___:007F8FF8 db '0x79',0Ah
___:007F8FF8 db 'F10',0Ah
___:007F8FF8 db '0x7a',0Ah
___:007F8FF8 db 'F11',0Ah
___:007F8FF8 db '0x7b',0Ah
___:007F8FF8 db 'F12',0Ah
___:007F8FF8 db '0x91',0Ah
___:007F8FF8 db 'Scroll Lock',0Ah
___:007F8FF8 db '0x13',0Ah
___:007F8FF8 db 'Pause/Break',0Ah
___:007F8FF8 db '0x90',0Ah
___:007F8FF8 db 'Num Lock',0Ah
___:007F8FF8 db '0x6f',0Ah
___:007F8FF8 db 'Num /',0Ah
___:007F8FF8 db '0x6a',0Ah
___:007F8FF8 db 'Num *',0Ah
___:007F8FF8 db '0x6d',0Ah
___:007F8FF8 db 'Num -',0Ah
___:007F8FF8 db '0x6b',0Ah
___:007F8FF8 db 'Num +',0Ah
___:007F8FF8 db '0xbd',0Ah
___:007F8FF8 db '-',0Ah
___:007F8FF8 db '0xbb',0Ah
___:007F8FF8 db '=',0Ah
___:007F8FF8 db '0xdc',0Ah
___:007F8FF8 db '\',0Ah
___:007F8FF8 db '0xdb',0Ah
___:007F8FF8 db '[',0Ah
___:007F8FF8 db '0xdd',0Ah
___:007F8FF8 db ']',0Ah
___:007F8FF8 db '0xba',0Ah
___:007F8FF8 db ';',0Ah
___:007F8FF8 db '0xde',0Ah
___:007F8FF8 db 27h,0Ah
___:007F8FF8 db '0xbc',0Ah
___:007F8FF8 db ',',0Ah
___:007F8FF8 db '0xbe',0Ah
___:007F8FF8 db '.',0Ah
___:007F8FF8 db '0xbf',0Ah
___:007F8FF8 db '/',0Ah
___:007F8FF8 db '0xc0',0Ah
___:007F8FF8 db '`',0Ah
___:007F8FF8 db '0x67',0Ah
___:007F8FF8 db 'Num 7',0Ah
___:007F8FF8 db '0x68',0Ah
___:007F8FF8 db 'Num 8',0Ah
___:007F8FF8 db '0x69',0Ah
___:007F8FF8 db 'Num 9',0Ah
___:007F8FF8 db '0x64',0Ah
___:007F8FF8 db 'Num 4',0Ah
___:007F8FF8 db '0x65',0Ah
___:007F8FF8 db 'Num 5',0Ah
___:007F8FF8 db '0x66',0Ah
___:007F8FF8 db 'Num 6',0Ah
___:007F8FF8 db '0x61',0Ah
___:007F8FF8 db 'Num 1',0Ah
___:007F8FF8 db '0x62',0Ah
___:007F8FF8 db 'Num 2',0Ah
___:007F8FF8 db '0x63',0Ah
___:007F8FF8 db 'Num 3',0Ah
___:007F8FF8 db '0x60',0Ah
___:007F8FF8 db 'Num 0',0Ah
___:007F8FF8 db '0x6e',0Ah
___:007F8FF8 db 'Num .',0Ah
___:007F8FF8 db '0x2c',0Ah
___:007F8FF8 db 'Print Screen',0Ah
___:007F8FF8 db '0xa0',0Ah
___:007F8FF8 db 'LeftShift',0Ah
___:007F8FF8 db '0xa1',0Ah
___:007F8FF8 db 'RightShift',0Ah
___:007F8FF8 db '0xa2',0Ah
___:007F8FF8 db 'LeftCtrl',0Ah
___:007F8FF8 db '0xa3',0Ah
___:007F8FF8 db 'RightCtrl',0Ah
___:007F8FF8 db '0xa4',0Ah
___:007F8FF8 db 'LeftAlt',0Ah
___:007F8FF8 db '0xa5',0Ah
___:007F8FF8 db 'RightAlt',0Ah,0
___:007F92D6 align 4
___:007F92D8 a0xX db '0x%x',0Ah,0 ; DATA XREF: sub_4059E0+274↑o
___:007F92DE align 10h
___:007F92E0 aCtrl db 'Ctrl+',0 ; DATA XREF: sub_4059E0+3A6↑o
___:007F92E6 align 4
___:007F92E8 aAlt db 'Alt+',0 ; DATA XREF: sub_4059E0+3BA↑o
___:007F92ED align 10h
___:007F92F0 aShift db 'Shift+',0 ; DATA XREF: sub_4059E0+3CE↑o
___:007F92F7 align 4

图片描述
  到此为止找到脚本。


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

上传的附件:
收藏
点赞7
打赏
分享
最新回复 (16)
雪    币: 958
活跃值: (2073)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
watswyqtwq 2021-6-9 16:23
2
0
我的od使用的英文原版。在原文件里加入插件(dll文件)
雪    币: 219
活跃值: (594)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dzahz 2021-6-9 22:14
3
0
这些伪代码 是用什么软件显示的
雪    币: 958
活跃值: (2073)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
watswyqtwq 2021-6-10 09:35
4
0
这些伪代码,ida上能查到哦
雪    币: 958
活跃值: (2073)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
watswyqtwq 2021-6-10 09:36
5
0
参照下面截图处push offset 0x14.....
雪    币: 951
活跃值: (6723)
能力值: (RANK:462 )
在线值:
发帖
回帖
粉丝
jux1a 8 2021-6-10 10:14
6
0
感谢分享
雪    币: 630
活跃值: (570)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xdlakx 2021-6-10 11:19
7
0
感谢分享
雪    币: 958
活跃值: (2073)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
watswyqtwq 2021-6-11 10:18
8
0
希望大家多多指出问题
雪    币: 958
活跃值: (2073)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
watswyqtwq 2021-6-15 18:07
9
0
想继续深化的话,可以把https://bbs.pediy.com/thread-268094.htm看明白
雪    币: 958
活跃值: (2073)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
watswyqtwq 2021-6-15 18:08
10
0
从常用方法看到自动化前就行
雪    币: 5
活跃值: (637)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
九月心情 2021-11-15 13:48
11
0
能留个脱壳后的runner程序学习下吗?
雪    币: 21
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
jackyflyer 2021-11-15 14:05
12
0
看不懂,但是不明觉厉
雪    币: 4024
活跃值: (5843)
能力值: ( LV7,RANK:102 )
在线值:
发帖
回帖
粉丝
fjqisba 2022-2-9 19:20
13
0
这个所谓的提取出来的脚本是每个按键精灵都有的公共字符串吧,关于源码提取这一部分好像还不是很详细。
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kakasasa 2022-2-10 13:39
14
0
感谢分享 mark
雪    币: 958
活跃值: (2073)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
watswyqtwq 2022-3-7 21:54
15
0
fjqisba 这个所谓的提取出来的脚本是每个按键精灵都有的公共字符串吧,关于源码提取这一部分好像还不是很详细。
同一个位置,你尝试用ida7.0和7.5分析该处
雪    币: 958
活跃值: (2073)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
watswyqtwq 2022-3-7 22:05
16
0
九月心情 能留个脱壳后的runner程序学习下吗?
自己练一下呗
雪    币: 4269
活跃值: (8446)
能力值: ( LV9,RANK:181 )
在线值:
发帖
回帖
粉丝
nevinhappy 2 2022-10-29 12:13
17
0
watswyqtwq 自己练一下呗
按键精灵是有编译过程的,应该没有明文的脚本吧!!!
游客
登录 | 注册 方可回帖
返回