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

[原创]Windows按键精灵分析

2021-6-9 16:02
24281

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

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

图片描述

图片描述
  释放的压缩包存在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 这种方式去执行脚本内容。

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

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
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

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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