飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

楼主: 135HACK

[PYG原创] 修改机器码让软件成为注册机(破解英豪双色球中奖大师)

[复制链接]

该用户从未签到

发表于 2008-3-10 17:30:28 | 显示全部楼层
远支楼坛瘫冉氐
PYG19周年生日快乐!

该用户从未签到

发表于 2008-4-19 18:16:07 | 显示全部楼层
谢谢。下载学学。
PYG19周年生日快乐!

该用户从未签到

发表于 2008-4-22 13:44:13 | 显示全部楼层
修改机器码? 下载学习下~
PYG19周年生日快乐!
  • TA的每日心情

    2024-3-19 19:03
  • 签到天数: 574 天

    [LV.9]以坛为家II

    发表于 2010-2-9 09:21:35 | 显示全部楼层
    58之后来个59,不错不错
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-5-22 11:19:08 | 显示全部楼层
    看看不错啊,
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-7-17 01:50:19 | 显示全部楼层
    呵呵·顶了
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2012-1-2 13:53:20 | 显示全部楼层
    好东东!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    昨天 14:05
  • 签到天数: 2144 天

    [LV.Master]伴坛终老

    发表于 2014-2-16 08:16:54 | 显示全部楼层
    这个下载不了,请楼主解决。
    【破解过程】  一朋友花8000买的一软件因为重装系统导致改软件机器码变了,再去找软件开发商,算次号竟然还要2000元。汗,这世道.听朋友说这个软件在双色球缩水方面还是不错的,虽然是2005版.但目前售价还是几千.且无试用版本人技术比较菜,花了2天还只破解他的一些限制.但改软件有自校验之类的东东吧.被修改后所得出的缩水结果为随机的最后才在北极狐狸的帮助下结合这几天的分析终于有点头绪.现记下此文和大家分享.
    废话不说下查壳,Borland Delphi 4.0 - 5.0 无壳。看了下 重启验证+注册表验证
    输入错误验证码后提示:重新打开程序后既可生效
    CMD运行REGEDIT 注册码保存注册表HKEY_LOCAL_MACHINE\SOFTWARE\华彩网\英豪双色球中奖大师下
    试了几种重启验证破解的方法,但是都无结果 可能是我太菜
    软件默认只能输入注册码  机器码栏是灰色的 可以通过ResScope修改 但没什么用
    废话不多说
    OD载入
    bp GetVolumeInformationA  下断  F9运行
    断在7C821BA5 >  6A 44           PUSH 44  /////看堆栈
    0012FCEC   0048A683  /CALL 到 GetVolumeInformationA 来自 YingSsq.0048A67E  //反汇编窗口跟随
    0012FCF0   0048A830  |RootPathName = "c:\"
    0012FCF4   0012FE58  |VolumeNameBuffer = 0012FE58
    0012FCF8   00000100  |MaxVolumeNameSize = 100 (256.)
    0012FCFC   0012FF60  |pVolumeSerialNumber = 0012FF60
    0012FD00   0012FF5C  |pMaxFilenameLength = 0012FF5C
    0012FD04   0012FF58  |pFileSystemFlags = 0012FF58



    来到了
    0048A678   .  50            PUSH EAX                                 ; |VolumeNameBuffer
    0048A679   .  68 30A84800   PUSH YingSsq.0048A830                    ; |c:\
    0048A67E   .  E8 05C6F7FF   CALL <JMP.&kernel32.GetVolumeInformation>; \GetVolumeInformationA
    0048A683   .  85C0          TEST EAX,EAX                           //F2下断 F9运行
    0048A685   .  74 39         JE SHORT YingSsq.0048A6C0
    0048A687   .  8D95 E4FEFFFF LEA EDX,DWORD PTR SS:[EBP-11C]
    0048A68D   .  0FB745 F2     MOVZX EAX,WORD PTR SS:[EBP-E]
    0048A691   .  E8 46E5F7FF   CALL YingSsq.00408BDC
    0048A696   .  8B85 E4FEFFFF MOV EAX,DWORD PTR SS:[EBP-11C]
    0048A69C   .  50            PUSH EAX                            ASCII "33943
    0048A69D   .  8D95 E0FEFFFF LEA EDX,DWORD PTR SS:[EBP-120]
    0048A6A3   .  0FB745 F0     MOVZX EAX,WORD PTR SS:[EBP-10]
    0048A6A7   .  E8 30E5F7FF   CALL YingSsq.00408BDC
    0048A6AC   .  8B95 E0FEFFFF MOV EDX,DWORD PTR SS:[EBP-120]     ASCII "41808"

    走到
    0048A6D5   .  8378 2C 00    CMP DWORD PTR DS:[EAX+2C],0     ASCII "4180833943"
    0048A6D9   .  74 27         JE SHORT YingSsq.0048A702
    0048A6DB   .  8D8D CCFEFFFF LEA ECX,DWORD PTR SS:[EBP-134]
    0048A6E1   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0048A6E4   .  8B50 2C       MOV EDX,DWORD PTR DS:[EAX+2C]
    0048A6E7   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0048A6EA   .  E8 BD040000   CALL YingSsq.0048ABAC
    0048A6EF   .  8D95 CCFEFFFF LEA EDX,DWORD PTR SS:[EBP-134]
    0048A6F5   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]

    0048A6D9   . /74 27         JE SHORT YingSsq.0048A702
    0048A6DB   . |8D8D CCFEFFFF LEA ECX,DWORD PTR SS:[EBP-134]
    0048A6E1   . |8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0048A6E4   . |8B50 2C       MOV EDX,DWORD PTR DS:[EAX+2C]
    0048A6E7   . |8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0048A6EA   . |E8 BD040000   CALL YingSsq.0048ABAC
    0048A6EF   . |8D95 CCFEFFFF LEA EDX,DWORD PTR SS:[EBP-134]  注意这里 看注释窗口
    堆栈地址=0012FE3C, (ASCII 10,"7538632721381535")     计算后的机器码,在这里右健 在数据窗口中跟随地址
    EDX=00EE1B54, (ASCII "4180833943")   
    此时再到数据窗口 右健 选择 文本→ASCII64 或者32 显示 这时出现了
    0012FE3C  7538632721381535?@?,?........(|M....旫.4囇w?2...
    选中7538632721381535按回车就可以修改机器码  这里随便输入个的机器码    1111111111111111
    修改机器,到这就结束了
    还没完下面直接
    Ctrl+G 在 00402895
    00402895  |> /01D6          ADD ESI,EDX             //断点  F9运行两次
    00402897  |. |880F          MOV BYTE PTR DS:[EDI],CL
    00402899  |. |47            INC EDI
    0040289A  |. |F3:A4         REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>


    查看 ESI  为注册码
    EDX=00000001
    ESI=0012FEFC, (ASCII 10,"7813891865996037")
    Jumps from 004028A7, 004028AB

    OK 程序就是这样自己成为注册机的
    算法的主要内容!
      0048AF2D  |> /8B4D EC       /mov     ecx, dword ptr [ebp-14]             ;计数器 0~15 (注册号是16位的)
      0048AF30  |. |BA 09000000   |mov     edx, 9                              ;这个数字是用来计算的(在下面我称它为a).. 下面雷同
      0048AF35  |. |8B45 F4       |mov     eax, dword ptr [ebp-C]              ;这是个也是用于计算的(在下面我称它为b)...{二进制16}
      0048AF38  |. |E8 73F6FFFF   |call    0048A5B0                            ;这里应该跟进的....
      0048AF3D  |. |8A4405 D2     |mov     al, byte ptr [ebp+eax-2E] ;这里用到机器码,安计算出的数字选泽相对应得数
                                                                        ;比如:
                                                                        ;call 中计算出是2 选择机器码中第2个为计算结果
                                                                       ;以下前三个call计算雷同!
      0048AF41  |. |8845 E7       |mov     byte ptr [ebp-19], al
      0048AF44  |. |8B4D EC       |mov     ecx, dword ptr [ebp-14]
      0048AF47  |. |BA 05000000   |mov     edx, 5
      0048AF4C  |. |8B45 F4       |mov     eax, dword ptr [ebp-C]
      0048AF4F  |. |E8 5CF6FFFF   |call    0048A5B0
      0048AF54  |. |8A4405 D2     |mov     al, byte ptr [ebp+eax-2E]
      0048AF58  |. |8845 E6       |mov     byte ptr [ebp-1A], al
      0048AF5B  |. |8B4D EC       |mov     ecx, dword ptr [ebp-14]
      0048AF5E  |. |BA 02000000   |mov     edx, 2
      0048AF63  |. |8B45 F4       |mov     eax, dword ptr [ebp-C]
      0048AF66  |. |E8 45F6FFFF   |call    0048A5B0
      0048AF6B  |. |8A4405 D2     |mov     al, byte ptr [ebp+eax-2E]
      0048AF6F  |. |8845 E5       |mov     byte ptr [ebp-1B], al
      0048AF72  |. |8B4D EC       |mov     ecx, dword ptr [ebp-14]
      0048AF75  |. |BA 08000000   |mov     edx, 8
      0048AF7A  |. |8B45 F0       |mov     eax, dword ptr [ebp-10]      ;此值为19(二进制)
      0048AF7D  |. |E8 2EF6FFFF   |call    0048A5B0                    ;以下两call的计算结果是在密码表中选对应的结果
      0048AF82  |. |BA 50B04800   |mov     edx, 0048B050                密码表地址 0048B050~0048B063
      0048AF87  |. |8A4402 FF     |mov     al, byte ptr [edx+eax-1]
      0048AF8B  |. |8845 E4       |mov     byte ptr [ebp-1C], al
      0048AF8E  |. |8B4D EC       |mov     ecx, dword ptr [ebp-14]
      0048AF91  |. |BA 01000000   |mov     edx, 1
      0048AF96  |. |8B45 F0       |mov     eax, dword ptr [ebp-10]
      0048AF99  |. |E8 12F6FFFF   |call    0048A5B0
      0048AF9E  |. |BA 50B04800   |mov     edx, 0048B050
      0048AFA3  |. |8A4402 FF     |mov     al, byte ptr [edx+eax-1]
      0048AFA7  |. |8845 E3       |mov     byte ptr [ebp-1D], al       --------------
      0048AFAA  |. |33C0          |xor     eax, eax                                 |
      0048AFAC  |. |8A45 E4       |mov     al, byte ptr [ebp-1C]                    |
      0048AFAF  |. |33D2          |xor     edx, edx                                 |
      0048AFB1  |. |8A55 E7       |mov     dl, byte ptr [ebp-19]
      0048AFB4  |. |F7EA          |imul    edx
      0048AFB6  |. |33D2          |xor     edx, edx
      0048AFB8  |. |8A55 E6       |mov     dl, byte ptr [ebp-1A]
      0048AFBB  |. |33C9          |xor     ecx, ecx                       ; 这之间的计算是{[ebp-1C]*[ebp-19]+[ebp-1A]*[ebp-1D]+[ebp-1B]}/10的余数
      0048AFBD  |. |8A4D E3       |mov     cl, byte ptr [ebp-1D]
      0048AFC0  |. |0FAFD1        |imul    edx, ecx                         ; 这边的计算时把机器码的字符换成ASCII码!
      0048AFC3  |. |03C2          |add     eax, edx
      0048AFC5  |. |33D2          |xor     edx, edx
      0048AFC7  |. |8A55 E5       |mov     dl, byte ptr [ebp-1B]                    
      0048AFCA  |. |03C2          |add     eax, edx                                 
      0048AFCC  |. |B9 0A000000   |mov     ecx, 0A                                   
      0048AFD1  |. |33D2          |xor     edx, edx                                 
      0048AFD3  |. |F7F1          |div     ecx                     
      0048AFD5  |. |8955 E8       |mov     dword ptr [ebp-18], edx
      0048AFD8  |. |8B45 E8       |mov     eax, dword ptr [ebp-18]
      0048AFDB  |. |E8 00F6FFFF   |call    0048A5E0
      0048AFE0  |. |8B55 F8       |mov     edx, dword ptr [ebp-8]
      0048AFE3  |. |8B4D EC       |mov     ecx, dword ptr [ebp-14]
      0048AFE6  |. |88440A 01     |mov     byte ptr [edx+ecx+1], al
      0048AFEA  |. |FF45 EC       |inc     dword ptr [ebp-14]
      0048AFED  |. |837D EC 10    |cmp     dword ptr [ebp-14], 10
      0048AFF1  |.^\0F85 36FFFFFF \jnz     0048AF2D
      
      
      -----------------------------------------------------------------------
      下面是跟进的内容
      0048A5B0  /$  55            push    ebp
      0048A5B1  |.  8BEC          mov     ebp, esp
      0048A5B3  |.  83C4 F0       add     esp, -10
      0048A5B6  |.  894D F4       mov     dword ptr [ebp-C], ecx
      0048A5B9  |.  8955 F8       mov     dword ptr [ebp-8], edx
      0048A5BC  |.  8945 FC       mov     dword ptr [ebp-4], eax
      0048A5BF  |.  8B45 F8       mov     eax, dword ptr [ebp-8]
      0048A5C2  |.  0345 F4       add     eax, dword ptr [ebp-C]
      0048A5C5  |.  99            cdq
      0048A5C6  |.  F77D FC       idiv    dword ptr [ebp-4]
      0048A5C9  |.  8955 F0       mov     dword ptr [ebp-10], edx
      0048A5CC  |.  837D F0 00    cmp     dword ptr [ebp-10], 0
      0048A5D0  |.  75 06         jnz     short 0048A5D8
      0048A5D2  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
      0048A5D5  |.  8945 F0       mov     dword ptr [ebp-10], eax
      0048A5D8  |>  8B45 F0       mov     eax, dword ptr [ebp-10]
      0048A5DB  |.  8BE5          mov     esp, ebp
      0048A5DD  |.  5D            pop     ebp
      0048A5DE  \.  C3            retn
      
      
      这个计算没有什么大用处!
      主要是把 (a+计数器值)/b的余数作为结果返回
    附上狐狸的VBS注册机

    db=array(211,162,186,192,203,171,201,171,199,242,214,208,189,177,180,243,202,166,32,0)
    dim strar(16)
      dim temp(16)
      str1=inputbox("输入机器码"," 中奖 ------计算器")
      for i = 0 to 15
      strar(i)=left(str1,1)
      str1=right(str1,len(str1)-1)
      next
      for i = 0 to 15
      
      a=(9+i) mod 16
      if a=0 then
      a=16
      end if
      
      b=(5+i) mod 16
      if b=0 then
      b=16
      end if
      
      c=(2+i) mod 16
      if c=0 then
      c=16
      end if
      
      d=(8+i) mod 19
      if d=0 then
      d=19
      end if
      
      e=(1+i) mod 19
      if e=0 then
      e=19
      end if
      an= p(strar(a-1))
      bn= p(strar(b-1))
      cn= p(strar(c-1))
      dn=db(d-1)
      en=db(e-1)
      temp(i)=(dn*an+bn*en+cn) mod 10
      temps=temps & temp(i)
      next

      i=inputbox("注册码"," 中奖 ------计算器", temps)
      
      Public function p(s)
      select case s
       case 0
       p=asc("0")
       case 1
       p=asc("1")
       case 2
       p=asc("2")
       case 3
       p=asc("3")
       case 4
       p=asc("4")
       case 5
       p=asc("5")
       case 6
       p=asc("6")
       case 7
       p=asc("7")
       case 8
       p=asc("8")
       case 9
       p=asc("9")
      end select
      end function

    保存为VBS就可以

                
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2014-2-16 09:27:39 | 显示全部楼层
    太菜,实在看不懂!!
    PYG19周年生日快乐!
  • TA的每日心情
    郁闷
    2020-5-2 12:04
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    发表于 2014-8-9 09:06:14 | 显示全部楼层
    看看也不错,新办的网站有特色
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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