吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 13446|回复: 30
收起左侧

[原创] 【wonderzdh】-逆向学习笔记第五篇 -飘零商业3.5-分析并爆破飘零

  [复制链接]
wonderzdh 发表于 2013-7-14 00:07
本帖最后由 wonderzdh 于 2013-7-16 10:33 编辑

【文章标题】: 飘零商业3.5破解笔记
【文章作者】: wonderzdh
【作者主页】: http://hi.baidu.com/chicken
【下载地址】: 自己搜索下载
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
本套教程至少得更新到10课,由于没有事先安排,内容可能会比较乱,但是每字每句都是心得。

为什么我要把这些心得发出来,而不自己藏着。因为我发的东西本身就是我对学习逆向的一个梳理和总结。

赠人玫瑰,手有余香。至于你们回不回复,评不评分,我一点所谓也没有。

后续课程不会继续在【逆缘论坛】首发,【吾爱破解】转帖的形式存在,而是两个站同时更新。

也希望我的帖子在吾爱不是归类转帖,而是属于原创,本人可是吾爱未来的“原创精英”+“论坛大牛”呀。

如果想求破,可直接来逆缘免费求破,网址什么的就不发了,自己百度一下。  

  【前言】

  大家好!我是【wonderzdh】,一个正在努力学习电脑技术的男人。

  此系列文章一到四篇在吾爱首发,以后我会将我的学习笔记在【逆缘论坛】与大家分享。

  还请各位大牛赐教,当然也希望那些初入门的同学能和我一同进步,有问必答!

  【正文】

  由于是自己搭建服务器研究一下,所以先打开“WEB服务器.exe”配置服务器。

  然后OD载入“客户端.exe”,F9直接运行。

  【处理飘零按钮事件断点】

  飘零有循环调用子程序,以便干扰我们在按钮事件出下断,处理方法有二。

  一、

  OD载入F9运行后,打开“XueTr.exe”,选择客户端进程-右键-查看...-查看进程定时器。

  会出现两个,我们选中-右键-移除即可。

  如果你一个都没出现,请检查你的客户端是否已经运行,没运行时钟是不会被创建,自然也就没有定时器。


  二、

  OD载入后-Ctrl+N-输入SetTimer-在上边的跳转直接修改为JMP,然后再F9运行。

  此处不能下断然后修改,因为飘零有检测时间,断下时间过长就会退出。

  ---------------------------------------------------------

  0042FB5F     /75 19             jnz short 客户端.0042FB7A

  修改为:

  0042FB5F     /EB 19             jmp short 客户端.0042FB7A

  ---------------------------------------------------------

  0042F9AA     /7E 1F             jle short 客户端.0042F9CB

  修改为:

  0042F9AA     /EB 1F             jmp short 客户端.0042F9CB

  ---------------------------------------------------------

  当然,我们还可以直接处理这个退出事件,因为到后边暂停时间过程一样要退出。

  当程序退出后,我们查看堆寨窗口,找到第一个返回到程序领空的代码-右键-反汇编窗口跟随-段首改retn。

  对于这个程序,这样修改非常不好,估计是一些事件已经被触发,程序会变卡,还会蓝屏,应该再到上边几层的CALL里去修改。

  ---------------------------------------------------------

  00442F50      55            push ebp

  修改为:

  00442F50      C3            retn

  ---------------------------------------------------------

  【分析登录按钮事件】

  现在我们在CPU窗口按下Ctrl+G-输入“00401000”(来到程序领空代码段最上方)-然后按Ctrl+B搜索二进制-“FF55FC5F5E”(易语言事件特征码)

  00442B6D  |> \FF55 FC           call [local.1]

  此处下断,然后回到窗口点击登录。

  OD成功断下,F7跟进。

  004177A1  /.  55                push ebp

  来到此代码段,即登录按钮的按钮事件代码段。

  我们一直向下翻,会找到一个易语言窗口创建的代码:

  00417AFD  |.  68 02000080       push 0x80000002
  00417B02  |.  6A 00             push 0x0
  00417B04  |.  68 00000000       push 0x0
  00417B09  |.  6A 00             push 0x0
  00417B0B  |.  6A 00             push 0x0
  00417B0D  |.  6A 00             push 0x0
  00417B0F  |.  68 01000100       push 0x10001
  00417B14  |.  68 00020106       push 0x6010200
  00417B19  |.  68 01020152       push 0x52010201                ;窗体ID,可疑理解为在此程序中各个窗体的标记。
  00417B1E  |.  68 03000000       push 0x3
  00417B23  |.  BB A0034200       mov ebx,客户端.004203A0
  00417B28  |.  E8 25850000       call 客户端.00420052
  00417B2D  |.  83C4 28           add esp,0x28

  --------------------------------------------------------------------

  004177B8  |. /EB 10             jmp short 客户端.004177CA
  004177BA  |. |56 4D 50 72 6F 74>ascii "VMProtect begin",0

  此处有一个VMP的加壳标记,在这两段代码之间的代码会被VM掉,也就是虚化变异,代码会非常长且不易懂。

  所以VMP保护非常强大,他能把十行汇编变成一百行,这个效果大家应该就懂了。

  00417C36  |. /EB 0E             jmp short 客户端.00417C46
  00417C38  |. |56 4D 50 72 6F 74>ascii "VMProtect end",0

  此时我们在

  004177B8  |. /EB 10             jmp short 客户端.004177CA

  修改为:

  004177B8     /E9 40030000       jmp 客户端.00417AFD

  作用:直接无视这些验证,按钮一按下,我们就来到创建窗口的代码。

  那么接下去就是要搞定目标窗口创建完毕的事件咯,我们F8一直走。

  00417B28  |.  E8 25850000       call 客户端.00420052

  这里必须得跟进,因为这个CALL包含了我们需要的目标窗口创建完毕的事件代码,步过的话一些暗装都已经执行了。

  00442ADF   .  FFD3              call ebx                                 ;  客户端.004203A0

  我跟进遇到这个CALL时点一下F8就停下,程序会再次来到易语言事件代码的断点处,我们F7跟进。

  【分析目标窗口创建完毕事件】

  0041FD6C  /.  55                push ebp

  这个代码段就是目标窗口创建完毕的事件代码段,我们分析一下。

  --------------------------------------------------------------------
  汇编:

  0041FD87  |> \FF35 EC085000     push dword ptr ds:[0x5008EC]
  0041FD8D  |.  E8 96EAFEFF       call 客户端.0040E828

  源码:

  飘零关闭驱动句柄 (防OD线程驱动句柄)

  修改方法:

  这两句直接nop,或者在上边的跳转直接跳到下边,也可以跟进这个CALL,段首retn。

  --------------------------------------------------------------------

  汇编:

  0041FD92  |.  FF35 14095000     push dword ptr ds:[0x500914]
  0041FD98  |.  68 AA1E4C00       push 客户端.004C1EAA
  0041FD9D  |.  B9 02000000       mov ecx,0x2
  0041FDA2  |.  E8 0914FEFF       call 客户端.004011B0
  0041FDA7  |.  83C4 08           add esp,0x8

  源码:

  标签_到期时间.标题 = “到期时间为:” + 到期时间

  无需修改。

  --------------------------------------------------------------------

  汇编:

  0041FDD5  |.  83C4 04           add esp,0x4
  0041FDD8  |>  6A 00             push 0x0
  0041FDDA  |.  68 C0D40100       push 0x1D4C0                ;(1D4C0)16=(1000 × 60 × 2)10
  0041FDDF  |.  6A FF             push -0x1
  0041FDE1  |.  6A 08             push 0x8
  0041FDE3  |.  68 837A0116       push 0x16017A83
  0041FDE8  |.  68 01020152       push 0x52010201
  0041FDED  |.  E8 5A020000       call 客户端.0042004C
  0041FDF2  |.  83C4 18           add esp,0x18
  0041FDF5  |.  6A 00             push 0x0
  0041FDF7  |.  68 E0930400       push 0x493E0                ;(493E0)16=(1000 × 60 × 5)10
  0041FDFC  |.  6A FF             push -0x1
  0041FDFE  |.  6A 08             push 0x8
  0041FE00  |.  68 25B80116       push 0x1601B825
  0041FE05  |.  68 01020152       push 0x52010201
  0041FE0A  |.  E8 3D020000       call 客户端.0042004C
  0041FE0F  |.  83C4 18           add esp,0x18

  源码:

  登陆检测时钟.时钟周期 = 1000 × 60 × 2
  时钟_验证动态.时钟周期 = 1000 × 60 × 5

  修改方法:

  0041FDDA  |.  68 C0D40100       push 0x1D4C0

  修改为:

  0041FDDA      6A 00             push 0x0

  --------------------------------------------------------------------

  0041FDF7  |.  68 E0930400       push 0x493E0

  修改为:

  0041FDF7      6A 00             push 0x0

  或者可以直接跳过这段代码。

  --------------------------------------------------------------------

  汇编:

  0041FE12  |.  833D F0085000 04  cmp dword ptr ds:[0x5008F0],0x4
  0041FE19  |.  0F84 05000000     je 客户端.0041FE24
  0041FE1F  |.  E8 C92BFFFF       call 客户端.004129ED

  源码:

  .如果真 (非法了吗 ≠ 4)
      飘零蓝屏 ()

  错误的修改方法:

  0041FE19  |. /0F84 05000000     je 客户端.0041FE24

  修改为:

  0041FE19     /EB 09             jmp short 客户端.0041FE24

  这种方法不保险,因为蓝屏事件多次调用,所以我们要跟进这个CALL,段首retn。

  正确的修改方法:

  004129ED  /$  55                push ebp

  修改为:

  004129ED      C3                retn

  局部调用来自 0041299F, 00415B02, 0041AC41, 0041FE1F

  这样就不怕啦!及时其他地方调用了,也不蓝屏了。

  --------------------------------------------------------------------

  【补充】

  我们在登录按钮事件代码段还未处理完毕,需做如下处理:

  00417B30      8945 F0       mov dword ptr ss:[ebp-0x10],eax

  修改为:

  00417B30     /E9 11010000   jmp 客户端.00417C46

  汇编:

  00417B28  |.  E8 25850000       call 客户端.00420052
  00417B2D  |.  83C4 28           add esp,0x28
  00417B30  |.  8945 F0           mov [local.4],eax
  00417B33  |.  837D F0 01        cmp [local.4],0x1
  00417B37      0F85 36000000     jnz 客户端.00417B73

  源码:


              .判断开始 (载入 (窗口1, , 假) = 真)
                  否载入 = 假
                  销毁 ()


  【总结】

  1.要善用堆寨,查看第一个返回到程序的代码,这里是程序最后执行的地方,然后进行猜测分析,有必要可以在出一层CALL。

  2.不要滥用JMP,某些可恶的代码,比如蓝屏、格盘,这些会多出调用,要么每一处都跳过,要么直接段首retn。

第一篇-【某培训】学前测试-程序多开

第二篇-吾爱扣扣的一个CM

第三篇 - CM大赛作品 - BambooQJ

第四篇 - CC网络验证 - 分析并爆破CC

cracked.zip (535.9 KB, 下载次数: 82)

客户端.zip (535.81 KB, 下载次数: 137)

飘零商业 3.5.zip (1.98 MB, 下载次数: 404)

--------------------------------------------------------------------------------
【版权声明】: 本文原创于【wonderzdh】,转载请注明作者并保持文章的完整,谢谢!

                                                       2013年07月14日 0:01:32

免费评分

参与人数 2热心值 +2 收起 理由
Shark恒 + 1 鼓励转贴优秀软件安全工具和文档!
小雨细无声 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

1354669803 发表于 2013-7-14 00:17
本帖最后由 1354669803 于 2013-7-14 00:18 编辑

希望出可可的 话说你这样跳过的假如说VM都是白搭 VM了就山寨
小雨细无声 发表于 2013-7-14 00:11
小雨细无声 发表于 2013-7-14 00:24
感谢,多手点一下。看到SOUND牛的2.19简单脱。
以指代步 发表于 2013-7-14 00:53
嗯、支持一下哈、加油、
vip_zhizun 发表于 2013-7-14 03:58 来自手机
菜鸟不懂啊
herry8000 发表于 2013-7-14 06:44
学习学习
 楼主| wonderzdh 发表于 2013-7-14 10:08
1354669803 发表于 2013-7-14 00:17
希望出可可的 话说你这样跳过的假如说VM都是白搭 VM了就山寨

这样修改VM了确实白搭。
1354669803 发表于 2013-7-14 10:10
wonderzdh 发表于 2013-7-14 10:08
这样修改VM了确实白搭。

其实VM了 也是可以搞的 感谢大大的思路 让我搞定了VM的3.5
yAYa 发表于 2013-7-14 10:16
膜拜了.~  学习!  
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 23:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表