VS竞技平台2.1版优化
1.脱壳加修复,主要在修复上
2.检测文件的完整性。。。暴力修改
3.去除关闭vs时弹出的对话框
- 004A80F3 6A 00 push 0
- 004A80F5 6A 04 push 4
- 004A80F7 68 F45E4E00 push 004E5EF4
- 004A80FC E8 9F170100 call 004B98A0 ; jmp 到 MFC42.#1200_AfxMessageBox
- 004A8101 83F8 06 cmp eax, 6
- 004A8104 75 13 jnz short 004A8119
- 004A8106 E8 A8AEF5FF call 00402FB3
- 004A810B 8BCE mov ecx, esi
- 004A810D E8 1996F5FF call 0040172B
- 004A8112 8BCE mov ecx, esi
- 004A8114 E8 9F170100 call 004B98B8 ; jmp 到 MFC42.#4376_CDialog::OnCancel
- 004A8119 5E pop esi
- 004A811A C3 retn
- 修改为:
- 004A80F3 6A 00 push 0
- 004A80F5 6A 04 push 4
- 004A80F7 68 F45E4E00 push 004E5EF4
- 004A80FC E8 9F170100 call 004B98A0 ; jmp 到 MFC42.#1200_AfxMessageBox
- 004A8101 83F8 06 cmp eax, 6
- 004A8104 75 13 jnz short 004A8119
- 004A8106 EB 0C jmp short 004A8114
- 004A8113 90 nop
- 004A8114 E8 9F170100 call 004B98B8 ; jmp 到 MFC42.#4376_CDialog::OnCancel
- 004A8119 5E pop esi
- 004A811A C3 retn
4.去除一开始登陆vs时弹出的Shell_NotifyIcon
bp Shell_NotifyIconA断下,当参数为NNIM_MODIFY=0x1时出现一个信息框
- 0042D936 50 push eax
- 0042D937 57 push edi
- 0042D938 FF15 6C855400 call dword ptr [<&shell32.Shell_Notif>; shell32.Shell_NotifyIconA
- 0042D93E 83FF 02 cmp edi, 2
- 0042D941 74 04 je short 0042D947
- 0042D943 3BC3 cmp eax, ebx
- 0042D945 75 03 jnz short 0042D94A
- 0042D947 895E 34 mov dword ptr [esi+34], ebx
- 0042D94A 5F pop edi
- 0042D94B 5E pop esi
- 0042D94C 5B pop ebx
- 0042D94D C2 0800 retn 8
- 0042D950 CC int3
- 0042D951 CC int3
- 0042D952 CC int3
- 0042D953 CC int3
- 0042D954 CC int3
- 0042D955 CC int3
- 0042D956 CC int3
- 0042D957 CC int3
- 0042D958 CC int3
- 0042D959 CC int3
- 0042D95A CC int3
- 0042D95B CC int3
- 修改为:
- 0042D936 50 push eax
- 0042D937 57 push edi
- 0042D938 EB 16 jmp short 0042D950
- 0042D93A 90 nop
- 0042D93B 90 nop
- 0042D93C 90 nop
- 0042D93D 90 nop
- 0042D93E 83FF 02 cmp edi, 2
- 0042D941 74 04 je short 0042D947
- 0042D943 3BC3 cmp eax, ebx
- 0042D945 75 03 jnz short 0042D94A
- 0042D947 895E 34 mov dword ptr [esi+34], ebx
- 0042D94A 5F pop edi
- 0042D94B 5E pop esi
- 0042D94C 5B pop ebx
- 0042D94D C2 0800 retn 8
- 0042D950 50 push eax ;此处原来为空数据
- 0042D951 8B4424 04 mov eax, dword ptr [esp+4]
- 0042D955 83F8 01 cmp eax, 1
- 0042D958 58 pop eax
- 0042D959 74 0A je short 0042D965
- 0042D95B 68 3ED94200 push 0042D93E
- 0042D960 - E9 3C331C7D jmp shell32.Shell_NotifyIconA
- 0042D965 83C4 08 add esp, 8
- 0042D968 ^ EB E0 jmp short 0042D94A
5.MessageBox的去除
查找字符串 ASCII "请稍后再试"
- 004B0C8E E8 440EF5FF call 00401AD7 ; 这里是检测时间的函数
- 004B0C93 85C0 test eax, eax
- 004B0C95 75 11 jnz short 004B0CA8
- 004B0C97 57 push edi
- 004B0C98 57 push edi
- 004B0C99 68 78674E00 push 004E6778 ; ASCII "请稍后再试"
- 004B0C9E E8 FD8B0000 call 004B98A0 ; jmp 到 MFC42.#1200_AfxMessageBox
找到这个函数的开头:
- 004B0B2A B8 F4584C00 mov eax, 004C58F4
- 004B0B2F E8 7C920000 call 004B9DB0
- 004B0B34 81EC 88050000 sub esp, 588
- 004B0B3A 53 push ebx
- 004B0B3B 56 push esi
- 004B0B3C 8B35 A89E4E00 mov esi, dword ptr [4E9EA8]
- 004B0B42 57 push edi
- 004B0B43 33FF xor edi, edi
- 004B0B45 894D F0 mov dword ptr [ebp-10], ecx
- 004B0B48 39BE 5C050000 cmp dword ptr [esi+55C], edi
- 004B0B4E 74 5A je short 004B0BAA
怀疑这个函数就是处理鼠标左键单击进出的,在此处下断,看看返回的函数是什么
但通过多次返回发现发起鼠标左键消息的代码可能是在[返回到 MFC42.73D31FF8]这里面。
这里是处理鼠标左键消息的代码。。。(不知道是否完全正确^_^)
- 004AFD22 A1 A89E4E00 mov eax, dword ptr [4E9EA8]
- 004AFD27 56 push esi
- 004AFD28 6A 00 push 0
- 004AFD2A 8BF1 mov esi, ecx
- 004AFD2C FFB0 C4040000 push dword ptr [eax+4C4]
- 004AFD32 B9 E0A04E00 mov ecx, 004EA0E0
- 004AFD37 E8 E924F5FF call 00402225
- 004AFD3C 6A 02 push 2
- 004AFD3E 6A FF push -1
- 004AFD40 68 0C100000 push 100C
- 004AFD45 FF76 20 push dword ptr [esi+20]
- 004AFD48 FF15 5C865400 call dword ptr [<&user32.SendMessageA>] ; USER32.SendMessageA
- 004AFD4E 85C0 test eax, eax
- 004AFD50 7C 12 jl short 004AFD64
- 004AFD52 50 push eax
- 004AFD53 8BCE mov ecx, esi
- 004AFD55 E8 44A00000 call 004B9D9E ; jmp 到 MFC42.#3286_CListCtrl::GetItemData
- 004AFD5A FF70 0C push dword ptr [eax+C]
- 004AFD5D 8BCE mov ecx, esi
- 004AFD5F E8 1828F5FF call 0040257C
- 004AFD64 5E pop esi
- 004AFD65 C2 0C00 retn 0C
我们没有必要完全弄明白上面的代码到底是什么功能,但是可以知道的是下面的为关键代码:
- 004B0C8D 53 push ebx
- 004B0C8E E8 440EF5FF call 00401AD7 ; 这里是检测时间的函数
- 004B0C93 85C0 test eax, eax
- 004B0C95 75 11 jnz short 004B0CA8
- 004B0C97 57 push edi
- 004B0C98 57 push edi
- 004B0C99 68 78674E00 push 004E6778 ; 请稍后再试
- 004B0C9E E8 FD8B0000 call 004B98A0 ; jmp 到 MFC42.#1200_AfxMessageBox
- 004B0CA3 E9 97020000 jmp 004B0F3F
- 004B0CA8 8D9E DC040000 lea ebx, dword ptr [esi+4DC]
- 004B0CAE 8BCB mov ecx, ebx
- 004B0CB0 E8 171EF5FF call 00402ACC
- 004B0CB5 8D8E C0610000 lea ecx, dword ptr [esi+61C0]
- 004B0CBB 6A 01 push 1
- 004B0CBD E8 2F2BF5FF call 004037F1
- 004B0CC2 57 push edi
- 004B0CC3 8D8D 6CFAFFFF lea ecx, dword ptr [ebp-594]
- 004B0CC9 E8 220EF5FF call 00401AF0
- 004B0CCE 8D8D 6CFAFFFF lea ecx, dword ptr [ebp-594]
- 004B0CD4 C645 FC 06 mov byte ptr [ebp-4], 6 ; 数秒的对话框
- 004B0CD8 E8 C98B0000 call 004B98A6 ; jmp 到 MFC42.#2514_CDialog::DoModal
- 004B0CDD 8B8D D0FAFFFF mov ecx, dword ptr [ebp-530] ; [ebp-530]=0时,则进入房间?
- 004B0CE3 B8 F8030000 mov eax, 3F8 ; 3F8可能为一个标志
- 004B0CE8 3BC8 cmp ecx, eax
- 004B0CEA 0F8F B3010000 jg 004B0EA3
- 004B0CF0 0F84 A4010000 je 004B0E9A
- 004B0CF6 83F9 F6 cmp ecx, -0A
- 004B0CF9 0F84 1D020000 je 004B0F1C
- 004B0CFF 3BCF cmp ecx, edi
- 004B0D01 0F84 46010000 je 004B0E4D
- 004B0D07 81F9 F2030000 cmp ecx, 3F2
- 004B0D0D 0F84 2E010000 je 004B0E41
- 004B0D13 81F9 F3030000 cmp ecx, 3F3
- 004B0D19 0F84 AF000000 je 004B0DCE
- 004B0D1F 81F9 F4030000 cmp ecx, 3F4
- 004B0D25 74 2C je short 004B0D53
- 004B0D27 81F9 F6030000 cmp ecx, 3F6
- 004B0D2D 74 18 je short 004B0D47
- 004B0D2F 81F9 F7030000 cmp ecx, 3F7
- 004B0D35 0F85 81010000 jnz 004B0EBC
- 修改为:
- 004B0CD8 E8 C98B0000 call 004B98A6 ; jmp 到 MFC42.#2514_CDialog::DoModal
- 004B0CDD 8B8D D0FAFFFF mov ecx, dword ptr [ebp-530]
- 004B0CE3 ^ E9 18FEFFFF jmp 004B0B00
- 004B0CE8 3BC8 cmp ecx, eax
- 004B0B00 83F9 F6 cmp ecx, -0A ; 是否点击取消
- 004B0B03 74 09 je short 004B0B0E
- 004B0B05 83F9 00 cmp ecx, 0 ; 是否进入
- 004B0B08 0F85 9A010000 jnz 004B0CA8
- 004B0B0E B8 F8030000 mov eax, 3F8
- 004B0B13 E9 D0010000 jmp 004B0CE8
好了,一个完整的优化版就这样出来了,嘿嘿
补充:发现这个版本比不完美。。。自己的VS账号被封了,看来还有一些检测我并没有发现。在VS.txt我发现一些有用的信息:
W C D A VSClient.exe check failed 这是一开始VSClient.exe检测失败后的写的信息
V C i t 7月22日 13:49:30 发现了作弊软件0000正在运行 这是开启OD后发现的一些信息
分析这两个地方,第一个很明显作了程序的完整性检查,所以我们可以从一开始的那个开始
- 004370A7 68 542C4E00 push 004E2C54 ; ASCII "APPBCB"
- 004370AC 6A 04 push 4
- 004370AE 53 push ebx
- 004370AF 6A 04 push 4
- 004370B1 53 push ebx
- 004370B2 6A FF push -1
- 004370B4 FF15 48815400 call dword ptr [<&kernel32.CreateFileMappingA>] ; kernel32.CreateFileMappingA
- 004370BA 3BC3 cmp eax, ebx
- 004370BC A3 18A54E00 mov dword ptr [<hFileMap>], eax
- 004370C1 74 1B je short 004370DE
- 004370C3 FF15 30815400 call dword ptr [<&kernel32.GetLastError>] ; ntdll.RtlGetLastWin32Error
- 004370C9 3BC6 cmp eax, esi
- 004370CB 75 11 jnz short 004370DE
- 004370CD 53 push ebx
- 004370CE 53 push ebx
- 004370CF 68 442C4E00 push 004E2C44
- 004370D4 E8 C7270800 call 004B98A0 ; jmp 到 MFC42.#1200_AfxMessageBox
- 004370D9 E9 8B070000 jmp 00437869 ; 居然用CreateFileMap来检测是否内存中是否有程序运行
- 0038CF03 FF15 5C313900 call dword ptr [<&MSVCRT.fprintf>] ; MSVCRT.fprintf
- 0038CF09 83C4 10 add esp, 10
- 0038CF0C 8B4D F0 mov ecx, dword ptr [ebp-10]
- 0038CF0F 51 push ecx
- 0038CF10 FF15 60313900 call dword ptr [<&MSVCRT.fclose>] ; MSVCRT.fclose
- 0038CF16 83C4 04 add esp, 4
这里为W C D A VSClient.exe check failed的返回处,即这里有可能是检测文件是否有效的地方,在段首下断
- 0038CE60 55 push ebp
- 0038CE61 8BEC mov ebp, esp
- 0038CE63 6A FF push -1
- 0038CE65 68 F2263900 push 003926F2 ; 溉a9
- 0038CE6A 64:A1 00000000 mov eax, dword ptr fs:[0]
- 0038CE70 50 push eax
- 0038CE71 64:8925 0000000>mov dword ptr fs:[0], esp
- 0038CE78 83EC 1C sub esp, 1C
- 0038CE7B 68 F86B3900 push 00396BF8 ; a+
这里是在WYClient模块中
- 0046ADFB 50 push eax
- 0046ADFC 57 push edi
- 0046ADFD 8945 E4 mov dword ptr [ebp-1C], eax
- 0046AE00 FF15 04885400 call dword ptr [<&wyclientdataapi.CP>] ; WYClient.CP
- 0046AE06 59 pop ecx
- 0046AE07 FEC0 inc al
- 0046AE09 59 pop ecx
- 0046AE0A 75 36 jnz short 0046AE42 ; 修改这里可以登陆
这里就是调用检测模块的
这里发现有关于development模式的监测,这里我们暴力修改(如果不暴力的话,需要先解密一个文件,然后从那里面读出所有文件的MD5值,然后再自己手工计算出文件的MD5值,最后利用加密函数修改这个文件,太麻烦了。。。)
- 00383016 68 10533900 push 00395310 ; developmentfilename
- 0038301B 8D8D A8F7FFFF lea ecx, dword ptr [ebp-858]
- 00383021 E8 BA9D0000 call <_strcmp??> ; 是否为developmenfilename
- 00383026 85C0 test eax, eax
- 00383028 75 45 jnz short 0038306F
- 改为:
- 00383016 68 10533900 push 00395310 ; developmentfilename
- 0038301B 8D8D A8F7FFFF lea ecx, dword ptr [ebp-858]
- 00383021 E8 BA9D0000 call <_strcmp??> ; 是否为developmenfilename
- 00383026 85C0 test eax, eax
- 00383028 74 45 je short 0038306F
- 这里还有一处:
- 0045AA50 68 DC3A4E00 push 004E3ADC ; development
- 0045AA55 FF75 E0 push dword ptr [ebp-20]
- 0045AA58 FF15 94845400 call dword ptr [<&msvcrt._mbscmp>] ; (initial cpu selection)
- 0045AA5E 59 pop ecx
- 0045AA5F 85C0 test eax, eax
- 0045AA61 59 pop ecx
- 0045AA62 75 0E jnz short 0045AA72 ; 难道改这里可以变成developmode?不是吧,嘿嘿
- 改为:
- 0045AA50 68 DC3A4E00 push 004E3ADC ; development
- 0045AA55 FF75 E0 push dword ptr [ebp-20]
- 0045AA58 FF15 94845400 call dword ptr [<&msvcrt._mbscmp>] ; (initial cpu selection)
- 0045AA5E 59 pop ecx
- 0045AA5F 85C0 test eax, eax
- 0045AA61 59 pop ecx
- 0045AA62 74 0E je short 0045AA72 ; 难道改这里可以变成developmode?不是吧,嘿嘿
在vs.txt中会显示如下内容,只是一次登陆的内容
V C i t 7月23日 16:17:21 version release-2.1 mini 13 load in WinXP Professional Service Pack 2 (Build 2600)
V C i t 7月23日 16:17:24 mudnom 20
V C i t 7月23日 16:17:25 bare DoNull@im15.vsa.com.cn
V C i t 7月23日 16:17:25 connect to 121.14.223.19 1117
V C i t 7月23日 16:17:28 development mod
一开始的破解版本显示:
V C i t 7月23日 16:19:15 version release-2.1 mini 13 load in WinXP Professional Service Pack 2 (Build 2600)
V C i t 7月22日 17:12:17 mudnom 20
V C i t 7月22日 17:12:19 bare 123fuckvs@im9.vsa.com.cn
W C D A VSClient.exe check failed
V C i t 7月22日 17:15:56 version release-2.1 mini 13 load in WinXP Professional Service Pack 2 (Build 2600)
VS竞技平台2.1版优化相关推荐
- 从入门到深入:移动平台模型裁剪与优化的技术探索与工程实践
可以看到,通过机器学习技术,软件或服务的功能和体验得到了质的提升.比如,我们甚至可以通过启发式引擎智能地预测并调节云计算分布式系统的节点压力,以此改善服务的弹性和稳定性,这是多么美妙. 而对移动平台来 ...
- 手机端html5 面试,今日头条 张祖俭 - H5动画在移动平台上的性能优化实践
1.H5动画在移动平台上 的性能优化实践 今日头条 张祖俭 2.大纲 Part 1. H5动画 在移动平台上的性能问题 Part 2. 解决思路-从浏览器渲染入手 Part 3. 在H5Animato ...
- Java平台,标准版Oracle JDK 9中的新功能
Java平台,标准版 Oracle JDK 9中的新增功能 版本9 E77563-05 2017年9月 JDK 9中的新功能概述 Java Platform,Standard Edition 9是一个 ...
- 白鹭引擎用java_白鹭引擎发布 5.1.6 版 优化打包 iOS Android App 的运行性能
原标题:白鹭引擎发布 5.1.6 版 优化打包 iOS Android App 的运行性能 在3月12日,我们将为白鹭引擎推出5.1.6 版本.5.1.6版本是对去年12月份发布的5.1版本的一次功能 ...
- 底层节点到节点上层是端到端_nEqual发布全新一代CDP平台宙斯版,解构企业营销数字化的底层逻辑...
企业数字化的浪潮已经向前奔涌了几年之久,随着包括消费者在内的外部环境和节奏已经全面数字化,企业数字化几乎是一个必行之举.到了今年,成熟的环境和疫情的到来使得行业中绝大多数从业者,都看见了实施数字化后的 ...
- 移动手机平台的HTML5前端优化指南
对于访问量大的网站来说,前端的优化是必须的,即使是优化1KB的大小对其影响也很大,下面来看看来自ISUX的米随随讲讲移动手机平台的HTML5前端优化,或许对你有帮助和启发. 概述 1. PC优化手段在 ...
- python3.7魔塔游戏_基于Funcode平台的“火锅版魔塔”游戏开发与设计
2019 年第 2 期 信息与电脑 China Computer & Communication 软件开发与应用 基于 Funcode 平台的"火锅版魔塔"游戏开发与设计 ...
- 如何为IE9平台预览版穿上外衣?
上周的PDC专业开发者大会上,微软发布了IE9的第六个平台预览版,平台预览版主要是为了帮助开发人员来获得最新IE9版本中的增强功能,在最新的预览版中,IE9提供了更好的性能并且支持更多标准,比如CSS ...
- 网页微信公众平台登录电脑版
网页微信公众平台登录电脑版,微信推广的基础是粉丝数量,没有粉丝,微信推广就只能沦为空谈一般,微信营销的真正作用是和大众接地气,可以和大家一起来互动,大家都是使用QQ软件,这个也和QQ软件有很多的相识的 ...
最新文章
- 正交频分复用(OFDM)初步(原理)
- Linux文件夹共享(NFS)
- asp.net传递参数
- TikTok玩家,路在何方?
- Android之NDK开发学习总结
- elasticsearch7常见查询(term、match、bool、filter)
- 云企业网CEN-TR打造企业级私有网络
- centos清楚缓存
- 为什么谐振时电抗为0_高压直流输电(LCC-HVDC 和 MMC-HVDC)中平波电抗器的作用和选择策略...
- 微型计算机原理与接口电子教案,《微型计算机原理与接口技术》电子教案研讨.ppt...
- POJ 2239 匈牙利算法
- CentOS 7下mysqld服务启动失败终极解决方案
- pycharm 2018.1 专业版激活 亲测可用!!!
- 程序员会不会英语的差别
- git和Github
- 数据组织与存储(一)
- 百度竞价常见问题:影响点击量的因素有哪些?
- python猴子偷桃问题_java猴子偷桃问题
- 微习惯养成,互联网产品成败的关键因素
- YUM库及NFS共享服务1
热门文章
- 武夷商城--项目简介
- CC00073.bigdatajava——|JavaMySQL索引/存储过程/触发器.V14|——|MySQL.v14|数据库备份_SQL_Yog方式|
- Relative Panel用法
- jPlayer插件使用踩过的坑
- 计算机会考程序与设计,高中信息技术算法与程序设计会考.doc
- “灵异类”灭火机器人
- 关于人口普查的那些事,我用地图可视化把数据说明白
- SVI(VLANIF)接口down的原因
- Linux系统下运行jar文件,提示:No main manifest attribute, in XXX.jar
- 将Roaring Bitmap序列化为JSON