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版优化相关推荐

  1. 从入门到深入:移动平台模型裁剪与优化的技术探索与工程实践

    可以看到,通过机器学习技术,软件或服务的功能和体验得到了质的提升.比如,我们甚至可以通过启发式引擎智能地预测并调节云计算分布式系统的节点压力,以此改善服务的弹性和稳定性,这是多么美妙. 而对移动平台来 ...

  2. 手机端html5 面试,今日头条 张祖俭 - H5动画在移动平台上的性能优化实践

    1.H5动画在移动平台上 的性能优化实践 今日头条 张祖俭 2.大纲 Part 1. H5动画 在移动平台上的性能问题 Part 2. 解决思路-从浏览器渲染入手 Part 3. 在H5Animato ...

  3. Java平台,标准版Oracle JDK 9中的新功能

    Java平台,标准版 Oracle JDK 9中的新增功能 版本9 E77563-05 2017年9月 JDK 9中的新功能概述 Java Platform,Standard Edition 9是一个 ...

  4. 白鹭引擎用java_白鹭引擎发布 5.1.6 版 优化打包 iOS Android App 的运行性能

    原标题:白鹭引擎发布 5.1.6 版 优化打包 iOS Android App 的运行性能 在3月12日,我们将为白鹭引擎推出5.1.6 版本.5.1.6版本是对去年12月份发布的5.1版本的一次功能 ...

  5. 底层节点到节点上层是端到端_nEqual发布全新一代CDP平台宙斯版,解构企业营销数字化的底层逻辑...

    企业数字化的浪潮已经向前奔涌了几年之久,随着包括消费者在内的外部环境和节奏已经全面数字化,企业数字化几乎是一个必行之举.到了今年,成熟的环境和疫情的到来使得行业中绝大多数从业者,都看见了实施数字化后的 ...

  6. 移动手机平台的HTML5前端优化指南

    对于访问量大的网站来说,前端的优化是必须的,即使是优化1KB的大小对其影响也很大,下面来看看来自ISUX的米随随讲讲移动手机平台的HTML5前端优化,或许对你有帮助和启发. 概述 1. PC优化手段在 ...

  7. python3.7魔塔游戏_基于Funcode平台的“火锅版魔塔”游戏开发与设计

    2019 年第 2 期 信息与电脑 China Computer & Communication 软件开发与应用 基于 Funcode 平台的"火锅版魔塔"游戏开发与设计 ...

  8. 如何为IE9平台预览版穿上外衣?

    上周的PDC专业开发者大会上,微软发布了IE9的第六个平台预览版,平台预览版主要是为了帮助开发人员来获得最新IE9版本中的增强功能,在最新的预览版中,IE9提供了更好的性能并且支持更多标准,比如CSS ...

  9. 网页微信公众平台登录电脑版

    网页微信公众平台登录电脑版,微信推广的基础是粉丝数量,没有粉丝,微信推广就只能沦为空谈一般,微信营销的真正作用是和大众接地气,可以和大家一起来互动,大家都是使用QQ软件,这个也和QQ软件有很多的相识的 ...

最新文章

  1. 正交频分复用(OFDM)初步(原理)
  2. Linux文件夹共享(NFS)
  3. asp.net传递参数
  4. TikTok玩家,路在何方?
  5. Android之NDK开发学习总结
  6. elasticsearch7常见查询(term、match、bool、filter)
  7. 云企业网CEN-TR打造企业级私有网络
  8. centos清楚缓存
  9. 为什么谐振时电抗为0_高压直流输电(LCC-HVDC 和 MMC-HVDC)中平波电抗器的作用和选择策略...
  10. 微型计算机原理与接口电子教案,《微型计算机原理与接口技术》电子教案研讨.ppt...
  11. POJ 2239 匈牙利算法
  12. CentOS 7下mysqld服务启动失败终极解决方案
  13. pycharm 2018.1 专业版激活 亲测可用!!!
  14. 程序员会不会英语的差别
  15. git和Github
  16. 数据组织与存储(一)
  17. 百度竞价常见问题:影响点击量的因素有哪些?
  18. python猴子偷桃问题_java猴子偷桃问题
  19. 微习惯养成,互联网产品成败的关键因素
  20. YUM库及NFS共享服务1

热门文章

  1. 武夷商城--项目简介
  2. CC00073.bigdatajava——|JavaMySQL索引/存储过程/触发器.V14|——|MySQL.v14|数据库备份_SQL_Yog方式|
  3. Relative Panel用法
  4. jPlayer插件使用踩过的坑
  5. 计算机会考程序与设计,高中信息技术算法与程序设计会考.doc
  6. “灵异类”灭火机器人
  7. 关于人口普查的那些事,我用地图可视化把数据说明白
  8. SVI(VLANIF)接口down的原因
  9. Linux系统下运行jar文件,提示:No main manifest attribute, in XXX.jar
  10. 将Roaring Bitmap序列化为JSON