飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6831|回复: 16

[原创] 水晶排课 3.80 简单分析

[复制链接]

该用户从未签到

发表于 2007-8-12 02:05:30 | 显示全部楼层 |阅读模式
水晶排课 3.80
软件大小:7704KB
软件类别:国产软件/教育管理  
下载次数:8853
软件授权:免费版 (这里的免费指的是免费下载)
软件语言:简体中文
运行环境:Win9x/Me/NT/2000/XP/2003
更新时间:2007-7-2 9:56:42
华军下载:http://www.onlinedown.net/soft/48706.htm

破解工具: LoadPE IR DiE 野猪
破解声明: 只是感兴趣,无他.


  1. ———————————————————————————————
  2. ———————————————————————————————
  3. 0059B082 >  60              PUSHAD
  4. 0059B083    E8 00000000     CALL 水晶排课.0059B088                       ; 这里ESP定律
  5. ———————————————————————————————
  6. ———————————————————————————————
  7. 0059B36B    61              POPAD
  8. 0059B36C  - FFE0            JMP EAX                                      ; 来到这里 我们F8单步一次
  9. ———————————————————————————————
  10. ———————————————————————————————
  11. 005926E0    60              PUSHAD                                       ; 又看到PUSHAD
  12. 005926E1    BE 00504F00     MOV ESI,水晶排课.004F5000                    ; 这里继续ESP定律
  13. 005926E6    8DBE 00C0F0FF   LEA EDI,DWORD PTR DS:[ESI+FFF0C000]
  14. 005926EC    57              PUSH EDI
  15. 005926ED    83CD FF         OR EBP,FFFFFFFF
  16. 005926F0    EB 10           JMP SHORT 水晶排课.00592702
  17. ———————————————————————————————
  18. ———————————————————————————————
  19. 00592850    61              POPAD
  20. 00592851  - E9 9AE9E6FF     JMP 水晶排课.004011F0                        ; 第二次ESP定律后来到这里  F8单步一次
  21. ———————————————————————————————
  22. ———————————————————————————————
  23. 004011F0    68 BC724000     PUSH 水晶排课.004072BC                       ; 来到OEP 原来是VB程序
  24. 004011F5    E8 F0FFFFFF     CALL 水晶排课.004011EA                       ; JMP 到 MSVBVM60.ThunRTMain
  25. ———————————————————————————————
  26. ———————————————————————————————
复制代码


LoadPE Dump, IR修复。 修复后,DiE查看一下,P-CODE编译的,对P-CODE不了解,先注册看看,实在不行在Vbdebug搞它。

01.gif


运行修复文件,可以运行,那就省去修复了。软件重启动验证,我们随意输入KEY重启看看。VB呢,有个比较函数,如果软件使用了这个函数来比较真假注册码,即便是P-CODE,也是徒劳。因为VB对比数据的时候大多在堆栈中进行,导致了明码比较存在的这个致命伤。

一般OD还不行,那我们就野猪对付。下_vbsStrComp (我初下断点的时候还下了个_vbsStrCmp,但是这个没什么用)。


  1. 通过调试,我们发现软件是如何检测被调试的:

  2. 0012E8B4   6601B0C3  返回到 msvbvm60.6601B0C3 来自 msvbvm60.__vbaStrComp
  3. 0012E8B8   00000000
  4. 0012E8BC   0042AA10  UNICODE "explorer.exe"
  5. 0012E8C0   00151964  UNICODE "avp.exe"
  6. 0012E8C4   660FD4B0  返回到 msvbvm60.660FD4B0 来自 msvbvm60.6601B0A9
  7. 0012E8C8   00000000
  8. 0012E8CC   0042AA10  UNICODE "explorer.exe"
  9. 0012E8D0   00151964  UNICODE "avp.exe"

  10. 他会对比我们系统中运行的每一个进程,来判断是否被调试。

  11. 我们一路F9,直到在堆栈中看到我们的机器码:

  12. 0012E8B4   6601B0C3  返回到 msvbvm60.6601B0C3 来自 msvbvm60.__vbaStrComp
  13. 0012E8B8   00000000
  14. 0012E8BC   0042093C  unpack_.0042093C
  15. 0012E8C0   00150EB4  UNICODE "L420VACG"
  16. 0012E8C4   660FD4B0  返回到 msvbvm60.660FD4B0 来自 msvbvm60.6601B0A9
  17. 0012E8C8   00000000
  18. 0012E8CC   0042093C  unpack_.0042093C
  19. 0012E8D0   00150EB4  UNICODE "L420VACG"

  20. 这个时候F9的速度就要放慢了,大概四五次之后,我们在堆栈中看到连续的两处存放机器码:

  21. 0012E8B4   6601B0C3  返回到 msvbvm60.6601B0C3 来自 msvbvm60.__vbaStrComp
  22. 0012E8B8   00000000
  23. 0012E8BC   00151AC4  UNICODE "L420VACG"
  24. 0012E8C0   00151B5C  UNICODE "L420VACG"
  25. 0012E8C4   660FD4B0  返回到 msvbvm60.660FD4B0 来自 msvbvm60.6601B0A9
  26. 0012E8C8   00000000
  27. 0012E8CC   00151AC4  UNICODE "L420VACG"
  28. 0012E8D0   00151B5C  UNICODE "L420VACG"

  29. 这个时候我们F9一次,就可以在堆栈中找到真码了:

  30. 0012E8B4   6601B0C3  返回到 msvbvm60.6601B0C3 来自 msvbvm60.__vbaStrComp
  31. 0012E8B8   00000000
  32. 0012E8BC   00151F04  UNICODE "F195F0C76DF012EEB1F828D209CC2CE6"
  33. 0012E8C0   00151E84  UNICODE "F195F0C76DF012EEB1F828D209CC2CE6"
  34. 0012E8C4   660FD4B0  返回到 msvbvm60.660FD4B0 来自 msvbvm60.6601B0A9
  35. 0012E8C8   00000000
  36. 0012E8CC   00151F04  UNICODE "F195F0C76DF012EEB1F828D209CC2CE6"
  37. 0012E8D0   00151E84  UNICODE "F195F0C76DF012EEB1F828D209CC2CE6"
  38. 0012E8D4   00000000
  39. 0012E8D8   004F0000  unpack_.004F0000
  40. 0012E8DC   0014E750
  41. 0012E8E0   00151AC4  UNICODE "519DC0E27C"
  42. 0012E8E4   0012FAEC
  43. 0012E8E8   00000000
  44. 0012E8EC   00000000
  45. 0012E8F0   00151B04  UNICODE "519DC0E27C"
  46. 0012E8F4   00000000
  47. 0012E8F8   00530008  unpack_.00530008
  48. 0012E8FC   00000008
  49. 0012E900   00151964  UNICODE "0E27C"
  50. 0012E904   00151A84  UNICODE "519DC"
  51. 0012E908   00000008
  52. 0012E90C   00000000
  53. 0012E910   00151E1C  UNICODE "519DCEBFACA3B79E937C67D72CD0E27C"
  54. 0012E914   00000000
  55. 0012E918   00000000
  56. 0012E91C   00000000
  57. 0012E920   00000000
  58. 0012E924   00000000
  59. 0012E928   00000000
  60. 0012E92C   00000000
  61. 0012E930   00000000
  62. 0012E934   00151F04  UNICODE "F195F0C76DF012EEB1F828D209CC2CE6"
  63. 0012E938   00140000
  64. 0012E93C   004FD140  unpack_.004FD140
  65. 0012E940   00151A5C  UNICODE "L420VACG"
  66. 0012E944   00000000
  67. 0012E948   00151E84  UNICODE "F195F0C76DF012EEB1F828D209CC2CE6"
  68. 0012E94C   00151AC4  UNICODE "519DC0E27C"
  69. 0012E950   00151B04  UNICODE "519DC0E27C"
  70. 0012E954   00151A5C  UNICODE "L420VACG"

  71. 我们看这里:“519DC0E27C”就是真码:

  72. 而真码是如何进行计算呢?我们看一下这里就可以明白:

  73. 0012E900   00151964  UNICODE "0E27C"
  74. 0012E904   00151A84  UNICODE "519DC"
  75. 0012E908   00000008
  76. 0012E90C   00000000
  77. 0012E910   00151E1C  UNICODE "519DCEBFACA3B79E937C67D72CD0E27C"

  78. 计算某个数值的MD5,取该数值MD5的前5位和后5位,连接后即是真码,也是就说真码是10位。

  79. 我们来检测一下机器码的MD5:
  80. JQM:L420VACG
  81. MD5: A4077FF2497477C6CDCF01F769B97BFC

  82. 看来这里用的不是常规的MD5,从32位这个数值来看,可以大致来推出是MD的运算,我们用KANAL查看一下,确实是MD5。

  83. 那就有两种可能,一是把四个常数替换了,还有一个就是先对机器码做了一个运算,然后MD5。第二种可能性更大些。明码比较,由于本人P-CODE不熟悉,所以分析就到此为止了,有兴趣的朋友自己跟一下吧。
复制代码


总结下:

软件作者有了一定的加密意识,双壳+反调试+P-CODE编译。但总体来看,作者对解密了解不多。想要提高加密, 还要从了解解密入手。
02.gif

unpack_.rar

594.53 KB, 下载次数: 40, 下载积分: 飘云币 -2 枚

主程序脱壳文件

评分

参与人数 1威望 +20 飘云币 +20 收起 理由
tigerisme + 20 + 20 精彩

查看全部评分

PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-11-6 10:18
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-8-12 09:25:53 | 显示全部楼层
    不错,分析的头头是道.是MD5的加密运用.
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-8-12 11:02:56 | 显示全部楼层
    解说得很透彻啊,呵呵
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-4-27 20:49
  • 签到天数: 1204 天

    [LV.10]以坛为家III

    发表于 2007-8-13 09:06:28 | 显示全部楼层
    破解工具: LoadPE IR DiE 野猪
    哪位知道,以上这个是几个破解软件呀 .
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-8-13 13:43:30 | 显示全部楼层
    解说得透彻,分析的头头是道.辛苦了.
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-8-13 21:06:41 | 显示全部楼层
    貌似分析的很透彻,菜鸟我羡慕死了~~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-12-11 15:15
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-9-3 17:18:24 | 显示全部楼层
    水晶排课 3.80 在网上绝种了。。。不知道那位朋友有的话可以共享一下子三。/:014
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-12-11 15:15
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-9-3 20:00:58 | 显示全部楼层
    郁闷了。头一次调试看到上边的东西了。。。。第二次开始后,一调试程序就结束了。。。不知道怎么回事。。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-10-23 20:59
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2007-9-4 22:34:33 | 显示全部楼层
    开始学习算法了,希望从此走向新生
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-9-5 06:30:29 | 显示全部楼层
    讲解的很明白,学习一下:)
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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