前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手刃逆向某款第三方辅助插件

手刃逆向某款第三方辅助插件

作者头像
小伍同学
发布2021-12-13 15:52:40
7450
发布2021-12-13 15:52:40
举报

0x00 事件起因

作为一个Youkia社区的老用户,它算得上是一个美好的回忆,而它的游戏:pvzol,也是非常的经典。当时有人用.NET Framework为框架做了一个助手,方便用户挂机。但是部分游戏服务器无法使用,需要手动Patch内存补丁,刚好有人就做了这玩意儿,售价38RMB一个月。本来想着买了就行了,毕竟作为一个游戏的VIP2级用户。但是卖家极其不负责任的态度以及特别想要圈钱的行为,让我恼火。

私信聊天记录

群聊天记录

问了下为啥我打不补丁,并且也没有显示注册界面,结果接下来直接将我踢出群聊,并且告诉我这一切都是加密锁导致的,好家伙,那咱就冻手吧!

加密说明

0x01 配置环境

拿到补丁源文件后,运行一下,发现会自动删除而且本地释放了 tem.vbs,这我可被吓得不轻,毕竟这玩意儿的行为太像小马了,而且软件的图标也是马,给我吓得不轻。

BBS论坛求助贴

360论坛的相关负责人也是很快的回复了我的帖子,如果这个exe文件有后门的话,那么后续也会有专门人员跟进。

我也是赶紧看了下本地有无额外的TCP连接,并且拉到微步沙箱去看了看。结果显示并没有额外的网络流量产生,那咱们就可以在虚拟机中放心地跑了。

以下是本次逆向分析时所使用的环境:

系统

Windows 7 Enterprise EN

调试器

XW-Ollydbg

监控

Huorong Sword

Unpacker

UPX Unpacker

文本编辑

Notepad

0x02 逆向分析

EP Section分析

首先使用EXEinfo PE看一下PE段名,是否被强制加密,如果是普通壳那就直接脱。

脱壳前 EXEINFO显示

EP段显示:UPX 3.91,这里我用吾爱提供的脱壳机直接脱掉,如果不想使用脱壳机,你也可以自己下硬件断点自己找一下OEP,不过系统不同也会导致脱壳后的问题,建议在win xp环境下对upx脱壳

脱掉UPX壳后,再次检查信息,显示该文件有 E language即易语言编写。

脱壳后 EXEINFO显示

动态分析

IDA不是很会,不过我对ollydbg比较熟悉,所以我直接将该插件在OD中运行,自动停在OEP上。

因为这个插件除了UPX加壳后就没有其他加密,所以直接单步下去就行,遇到崩溃的call自己注释一下加断点,然后重来接着跑。下面是我自己画的一个分析图,包含了这个插件的验证流程:

主要验证流程图

PS:逆向详细的过程已经录制了教程,想要观看的小伙伴可以到本站视频集锦观看:

本站视频集锦

获取信息CALL

获取信息CALLh

这个CALL进去后会从 https://rt22226478.icoc.vc/nd.jsp?id=6&id=6 获取已经注册了的用户QQ,并且通过文本正则的方式获取BANINTBANEND的中间文本,该CALL中有内存暗桩,必须jmp跳转后才能步过。

内存暗桩CALL

内存暗桩call

这里有个jnz跳转,跟CALL进去后,就会来到内存暗桩出,并且也有个jnz跳转,改为jmp即可跳过分配内存错误。

内存暗桩头部

过了这个内存暗桩CALL后,我们来到了插件的算法区域,由于我对这个反汇编和汇编的理解与认知还不够到位,所以我暂时也写出来注册机,只能定点爆破一下。

机器码获取CALL

下图就是该程序获取PC的机器码,并且推衍注册码的过程,实在技术不精,无法得知运算过程。

拼接机器码

接着有一个自动删除的暗桩,最初就是这里吓得我半死,不过自己单步跟踪过后,发现这个vbs的功能只是删除自身,并不会移动文件到哪里去。

释放vbs CALL

释放vbs的头部

vbs的大致内我提取出来,就是下面的内容:

代码语言:javascript
复制
Dim fso

既然这是一个关键call,那么我就有理由猜想会有调用该call的命令,所以我决定搜索call 00403E78这个命令,果不其然,在一个关键地方搜索到了这个call

主暗桩 CALL

跟着释放vbs的命令,我来到了检测OD的子程序中

并且,这个地方调用了两次暗桩CALL,明显地表达了这个插件作者想要反OD的急切心情,这里我们可以直接头部retn或者将jnz命令改为jmp即可。

检测OD

由于在获取信息时也会调用内存暗桩CALL,所以建议在内存call那里retn或者改jmp

注册验证 CALL

在解决所有的暗桩后,我成功运行了这个插件程序,并且找到了登录验证的call

登录验证call

我们将je直接nop掉后,插件就会直接显示注册成功。如果你不想要这个注册成功的窗口,可以把下方的callnop掉。

0x03 插件速度优化,实现脱机

我成功找到了获取信息的call,那么我们可以直接将获取信息CALL nop掉,这时会出现未知错误的提示框

未知错误

我们将jnz指令改为jmp后就可以直接跳过未知错误,来到功能界面,并且不会产生额外网络连接,下方是我录制打开插件的实际效果,没有多余的验证。

GIF

最后只剩下了两个本地写ini配置文件的功能,如果觉得不好,你可以将我打包的文件自己反汇编一遍,删除不必要的功能即可。

0x04 分析拓展

在反汇编的文本中,发现了以下内容:异编工作室,百度后没有相关的内容,猜测可能是相应的易语言模块作者或者软件作者工作室的名称。

文本内容

并且该作者所使用的的网络前端属于:凡科建站,后端没有实质上的校验功能。

凡科建站

KELEPAN.COM这个域名也出现在了反汇编文本中,当前这个域名正在出售中,经过百度查询,这个网站曾经可能是用于发布辅助软件等一系列工具,包含众多Flash页游。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hacker之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00 事件起因
  • 0x01 配置环境
  • 0x02 逆向分析
    • EP Section分析
      • 动态分析
        • 获取信息CALL
        • 内存暗桩CALL
        • 机器码获取CALL
        • 释放vbs CALL
        • 主暗桩 CALL
        • 注册验证 CALL
    • 0x03 插件速度优化,实现脱机
    • 0x04 分析拓展
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档