8

[原创]Windows按键精灵分析

 3 years ago
source link: https://bbs.pediy.com/thread-268022.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

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

图片描述

二、技术细节详细分析

图片描述
  释放的压缩包存在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

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

[看雪官方培训] Unicorn Trace还原Ollvm算法!《安卓高级研修班》2021年秋季班火热招生!!

上传的附件:


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK