飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 1754|回复: 2

申请加入[PYG]破文1

[复制链接]

该用户从未签到

发表于 2005-9-3 17:27:44 | 显示全部楼层 |阅读模式
【破文标题】 《七星彩分析系统》算法分析+注册机

【使用工具】 PEiD,Ollydbg1.10,WinXP

【破文作者】 N-klen[BCG]

【软件名称】 七星彩分析系统v3.0

【软件大小】 5.0M

【下载地址】 http://nj.onlinedown.net/soft/34651.htm

破解声明】 我的第三篇文章~只有菜鸟级的水平~有错的地方请多多指点!

【软件简介】 界面综合了市场上各种彩票工具的优点,Borland Delphi 7.0编译

【注册方法】 计算后的注册码和软件码比较

【破解过程】
Ollydbg1.10载入----Ultra String Reference/Find ASCII
Text String=注册号码错误,请联系heavensoldier@sohu.com获得注册号码,申请号码是
Follow!
是从一个跳转跳来的!

  1. 00585C23     E8 84420200   call 七星彩分.005A9EAC               ; 取机器码
  2. 00585C28     8BD0          mov edx,eax
  3. 00585C2A     8D45 FC       lea eax,dword ptr ss:[ebp-4]
  4. 00585C2D     E8 1AEEE7FF   call 七星彩分.00404A4C               ; 取时间
  5. 00585C32     8D55 F4       lea edx,dword ptr ss:[ebp-C]
  6. 00585C35     8B45 FC       mov eax,dword ptr ss:[ebp-4]
  7. 00585C38     E8 BF37E8FF   call 七星彩分.004093FC
  8. 00585C3D     8B55 F4       mov edx,dword ptr ss:[ebp-C]
  9. 00585C40     8D45 FC       lea eax,dword ptr ss:[ebp-4]
  10. 00585C43     E8 ACECE7FF   call 七星彩分.004048F4
  11. 00585C48     8D55 F0       lea edx,dword ptr ss:[ebp-10]
  12. 00585C4B     8B86 F8020000 mov eax,dword ptr ds:[esi+2F8]
  13. 00585C51     E8 C6BFECFF   call 七星彩分.00451C1C               ; 取输入的注册码
  14. 00585C56     8B45 F0       mov eax,dword ptr ss:[ebp-10]
  15. 00585C59     E8 B6EEE7FF   call 七星彩分.00404B14               ; 取假码长度
  16. 00585C5E     8BF8          mov edi,eax
  17. 00585C60     85FF          test edi,edi                     ; 检查是否有效
  18. 00585C62     7E 38         jle short 七星彩分.00585C9C
  19. 00585C64     BB 01000000   mov ebx,1
  20. 00585C69     8D55 E8       lea edx,dword ptr ss:[ebp-18]    ; 循环开始
  21. 00585C6C     8B86 F8020000 mov eax,dword ptr ds:[esi+2F8]
  22. 00585C72     E8 A5BFECFF   call 七星彩分.00451C1C               ; 取输入的注册码
  23. 00585C77     8B45 E8       mov eax,dword ptr ss:[ebp-18]
  24. 00585C7A     33D2          xor edx,edx
  25. 00585C7C     8A5418 FF     mov dl,byte ptr ds:[eax+ebx-1]   ; 按顺序取
  26. 00585C80     2BD3          sub edx,ebx                      ; 假码ASCII-当前是第几次
  27. 00585C82     83EA 02       sub edx,2                        ; 假码ASCII-2
  28. 00585C85     8D45 EC       lea eax,dword ptr ss:[ebp-14]
  29. 00585C88     E8 AFEDE7FF   call 七星彩分.00404A3C               ; 计算后的ASCII码放到edx
  30. 00585C8D     8B55 EC       mov edx,dword ptr ss:[ebp-14]
  31. 00585C90     8D45 F8       lea eax,dword ptr ss:[ebp-8]
  32. 00585C93     E8 84EEE7FF   call 七星彩分.00404B1C               ; 保存到堆栈
  33. 00585C98     43            inc ebx                          ; 累加
  34. 00585C99     4F            dec edi                          ; 长度累减
  35. 00585C9A   ^ 75 CD         jnz short 七星彩分.00585C69          ; 循环
  36. 00585C9C     8B45 FC       mov eax,dword ptr ss:[ebp-4]     ; eax装机器码
  37. 00585C9F     8B55 F8       mov edx,dword ptr ss:[ebp-8]     ; edx装计算后的机器码
  38. 00585CA2     E8 B1EFE7FF   call 七星彩分.00404C58               ; 关键比较CALL
  39. 00585CA7     0F85 24010000 jnz 七星彩分.00585DD1                ; 关键跳一跳就挂!
  40. 00585CAD     8D55 E4       lea edx,dword ptr ss:[ebp-1C]
  41. 00585CB0     8B86 00030000 mov eax,dword ptr ds:[esi+300]
  42. 00585CB6     E8 61BFECFF   call 七星彩分.00451C1C               ; 成功画面


  43. 跟入
  44. 00585CA2     E8 B1EFE7FF   call 七星彩分.00404C58                              ; 关键比较CALL
  45. ...
  46. 00404C58     53            push ebx
  47. 00404C59     56            push esi
  48. 00404C5A     57            push edi
  49. 00404C5B     89C6          mov esi,eax                      ; 机器码放入esi
  50. 00404C5D     89D7          mov edi,edx                      ; 计算后的注册码放到edi
  51. 00404C5F     39D0          cmp eax,edx                      ; 比较
  52. 00404C61     0F84 8F000000 je 七星彩分.00404CF6                 ; 相等则跳
  53. 00404C67     85F6          test esi,esi
  54. 00404C69     74 68         je short 七星彩分.00404CD3
  55. 00404C6B     85FF          test edi,edi
  56. 00404C6D     74 6B         je short 七星彩分.00404CDA
  57. 00404C6F     8B46 FC       mov eax,dword ptr ds:[esi-4]     ; eax放机器码长度
  58. 00404C72     8B57 FC       mov edx,dword ptr ds:[edi-4]     ; edx放计算后注册码长度
  59. 00404C75     29D0          sub eax,edx                      ; 比较一下长度
  60. 00404C77     77 02         ja short 七星彩分.00404C7B
  61. 00404C79     01C2          add edx,eax                      ; 使两码等长
  62. 00404C7B     52            push edx
  63. 00404C7C     C1EA 02       shr edx,2                        ; 长度/4
  64. 00404C7F     74 26         je short 七星彩分.00404CA7
  65. 00404C81     8B0E          mov ecx,dword ptr ds:[esi]       ; 机器码前4位倒放入ecx
  66. 00404C83     8B1F          mov ebx,dword ptr ds:[edi]       ; 计算后的注册码前4位倒放入ebx
  67. 00404C85     39D9          cmp ecx,ebx                      ; 比较一下
  68. 00404C87     75 58         jnz short 七星彩分.00404CE1          ; 不等则跳走!
  69. 00404C89     4A            dec edx
  70. 00404C8A     74 15         je short 七星彩分.00404CA1           ; 比完则跳
  71. 00404C8C     8B4E 04       mov ecx,dword ptr ds:[esi+4]     ; 机器码中间4位倒放到ecx
  72. 00404C8F     8B5F 04       mov ebx,dword ptr ds:[edi+4]     ; 计算后的注册码中间4位放到ebx
  73. 00404C92     39D9          cmp ecx,ebx                      ; 比较
  74. 00404C94     75 4B         jnz short 七星彩分.00404CE1          ; 不等则跳走!
  75. 00404C96     83C6 08       add esi,8                        ; 取机器码后4位
  76. 00404C99     83C7 08       add edi,8                        ; 取算后注册码的后4位
  77. 00404C9C     4A            dec edx
  78. 00404C9D   ^ 75 E2         jnz short 七星彩分.00404C81          ; 跳回比较,就是循环取4位ascii码
  79. 00404C9F     EB 06         jmp short 七星彩分.00404CA7
  80. 00404CA1     83C6 04       add esi,4
  81. ...
复制代码

【破解总结】 算法不复杂,但做注册机要逆运算.也很简单.
注册码第一位ASCII=ASCII机器码+1+2
注册码第二位ASCII=ASCII机器码+2+2
注册码第三位ASCII=ASCII机器码+3+2
注册码第四位ASCII=ASCII机器码+4+2
...
..
..
【写注册机】 用VB实现,如下
放两个text,一个command
Private Sub Command1_Click()
Dim a, b, c, d, e
a = Text1.Text
b = Len(a)
c = 1
Do
d = Mid(a, c, 1)
d = Asc(d) + 2 + c
d = String(1, d)
e = e & d
c = c + 1
Loop While c <= b
Text2.Text = e
End Sub
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2005-9-3 17:29:36 | 显示全部楼层

顺便说一下

贵组织的CrackMe我的OD无法调试!
出现错误:
运行时错误 '91':

未设置对象变量或 With block 变量
还搞的我死机好几次!
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2005-9-3 17:33:16 | 显示全部楼层
既然是考验初学者!
写CrackMe就不要用P-Code比较好!
因为p-code本来就有难度!
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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