首页
社区
课程
招聘
《神经网络算彩票2.0破解》(使用金山词典)
发表于: 2005-7-10 18:36 10980

《神经网络算彩票2.0破解》(使用金山词典)

2005-7-10 18:36
10980

《神经网络算彩票2.0破解》

下载地址:http://www.downreg.com/Software/View-Software-5338.html
神经网络算彩票2.0软件是用人工神经网络(A.N.N.)技术来分析彩票数据的软件,他的简介说他很好,
就是注册费要600块。
安装后运行,发现没注册只能运行一个任务,而且建模次数不能大于1.
现在来破它。

先加载我整理的几个词典,它可以使你更方便的了解VB:API和汇编指令。



输入注册码后,它要求重起,用filemon可知他写文件regcpa12.dll,打开一看,里面原来是我输入
的注册码。
下断点在__vbaFileOpen可得到:
004DCDBD    call    ds:__vbaFileOpen ; 读regcpa12.dll文件。
现在可慢慢分析它了。
分析结果大概如下:
1).注册码格式是:xxxxxxxx-yyyyyyy(必需有“-”).
2).它使用两个标志位,两个标志位同时通过才能成功。
3).[(机器码/3.313773+45891) - yyyyyyyy]<=1,第一个标志位通过。
4).(xxxxxxxx通过运算得到一个数)与(机器码通过运算得到一个数)相差不大于1,第二个标志位通过。

详细分析如下:假设我输入的注册码为:12345678R-99999999
1).通过下面代码可知输入注册码的长度。
.text:004DCE01                 push    edx             ; *edx->"xxxxxxxx-yyyyyyyy"
.text:004DCE02                 call    ds:__vbaLenBstr;len("12345678R-99999999")
.text:004DCE08                 mov     ecx, eax
.text:004DCE0A                 call    ds:__vbaI2I4
.text:004DCE10                 mov     [ebp-3Ch], ax
.text:004DCE14                 mov     dword ptr [ebp-4], 67h
.text:004DCE1B                 mov     ax, [ebp-3Ch]
.text:004DCE1F                 mov     [ebp-168h], ax
.text:004DCE26                 mov     word ptr [ebp-164h], 1
.text:004DCE2F                 mov     word ptr [ebp-28h], 1
.text:004DCE35                 jmp     short loc_4DCE4C ;

.text:004DCE37 again_1:                                ; CODE XREF: .text:004DCFEFj
.text:004DCE37                 mov     cx, [ebp-28h]
.text:004DCE3B                 add     cx, [ebp-164h]
.text:004DCE42                 jo      loc_4DD225
.text:004DCE48                 mov     [ebp-28h], cx
.text:004DCE4C
.text:004DCE4C loc_4DCE4C:                             ; CODE XREF: .text:004DCE35j
.text:004DCE4C                 mov     dx, [ebp-28h]   ; [ebp-28h]=1
.text:004DCE50                 cmp     dx, [ebp-168h]  ; [ebp-168h]=len("12345678R-99999999")
.text:004DCE57                 jg      next_first      ; 须大于1位
2).通过下面代码可知输入注册码的格式。
.text:004DCE96                 call    ds:rtcMidCharVar ; *eax->(1,2,3,4,5,6,7,8,R,-,9,9,9,9,9,9,9,9)
.text:004DCE9C                 lea     edx, [ebp-74h]
.text:004DCE9F                 push    edx
.text:004DCEA0                 call    ds:__vbaStrVarMove
.text:004DCEA6                 mov     edx, eax
.text:004DCEA8                 lea     ecx, [ebp-34h]
.text:004DCEAB                 call    ds:__vbaStrMove
.text:004DCEB1                 lea     eax, [ebp-74h]
.text:004DCEB4                 push    eax
.text:004DCEB5                 lea     ecx, [ebp-64h]
.text:004DCEB8                 push    ecx
.text:004DCEB9                 push    2
.text:004DCEBB                 call    ds:__vbaFreeVarList
.text:004DCEC1                 add     esp, 0Ch
.text:004DCEC4                 mov     dword ptr [ebp-4], 69h
.text:004DCECB                 mov     edx, [ebp-34h]
.text:004DCECE                 push    edx
.text:004DCECF                 push    40C530h         ; "-" 格式
.text:004DCED4                 call    ds:__vbaStrCmp
.text:004DCEDA                 test    eax, eax
.text:004DCEDC                 jnz     loc_4DCFE8      ;
.text:004DCEDC                                       
3).分离出yyyyyyy
.text:004DCF33                 call    ds:rtcMidCharVar ; *eax->"99999999"
.text:004DCF39                 lea     ecx, [ebp-74h]
.text:004DCF3C                 push    ecx
.text:004DCF3D                 lea     edx, [ebp-50h]
.text:004DCF40                 push    edx
.text:004DCF41                 call    ds:__vbaStrVarVal
.text:004DCF47                 push    eax
.text:004DCF48                 call    ds:rtcR8ValFromBstr
.text:004DCF4E                 call    ds:__vbaFpI4    ; st(0)=99999999
.text:004DCF54                 mov     dword_532310, eax ; eax=99999999,dword_532310=99999999
4).通过机器码计算出另外一个数并减去yyyyyyy并设为标志位1
.text:004DD100                 mov     eax, dword_532304 ; 应该是关于注册码
.text:004DD105                 sub     ecx, [eax+edx*4]
.text:004DD108                 jo      loc_4DD225
.text:004DD10E                 mov     [ebp-23Ch], ecx ; ecx=机器码
.text:004DD114                 fild    dword ptr [ebp-23Ch]
.text:004DD11A                 cmp     dword_532000, 0
.text:004DD121                 jnz     short loc_4DD12B ; XX
.text:004DD123                 fdiv    ds:dbl_4016B8;机器码/3.313773(ds:dbl_4016B8=3.313773)
.text:004DD129                 jmp     short loc_4DD13C
.text:004DD12B loc_4DD12B:                           
.text:004DD12B                 push    dword ptr ds:dbl_4016B8+4 ; XX
.text:004DD131                 push    dword ptr ds:dbl_4016B8 ; XX
.text:004DD137                 call    _adj_fdiv_m64   ; XX
.text:004DD13C
.text:004DD13C loc_4DD13C:                           
.text:004DD13C                 fadd    ds:dbl_4016B0;机器码/3.313773+45891(ds:dbl_4016B0=45891)
.text:004DD142                 call    ds:__vbaFpI4
.text:004DD148                 mov     dword_532314, eax
.text:004DD14D                 mov     dword ptr [ebp-4], 73h
.text:004DD154                 mov     ecx, dword_532314 ;dword_532314=通过机器码计算出来的
.text:004DD15A                 sub     ecx, dword_532310 ; dword_532310=99999999
.text:004DD160                 jo      loc_4DD225
.text:004DD166                 call    ds:__vbaI4Abs
.text:004DD16C                 mov     dword_532318, eax ;dword_532318就是标志位1
5).使用标志位1的位置是:
.text:004E924A                 cmp     dword_532318, 1;使用标志位1
.text:004E9251                 jle     loc_4E931C  ;跳则成功(dword_532318=1或=0成功)
6).假设我们输入的注册码前半部份为:"12345678R"
把它分开写成:a9=9,a8=3,a7=3,a6=4,a5=5,a4=6,a3=7,a2=8,a1="R"
将这些字符转为数字,如遇字母则为0,存入备用地址。

.text:0050383D                 mov     ecx, [ebp-1F8h]
.text:00503843                 mov     edx, [ebp-40h]
.text:00503846                 mov     eax, [edx+ecx*4]
.text:00503849                 push    eax             ;
.text:0050384A                 call    ds:rtcR8ValFromBstr;把注册码前半部份字符转为数字
.text:00503850                 call    ds:__vbaFpI2    ; eax=(0,8,7,6,5,4,3,2,1)
.text:00503856                 mov     ecx, [ebp+8]
.text:00503859                 mov     edx, [ecx+68h]  ;
.text:0050385C                 mov     ecx, [ebp-1F4h] ;
.text:00503862                 mov     [edx+ecx*2], ax ; 数字存入备用地址
.text:00503866                 mov     dword ptr [ebp-4], 29h
.text:0050386D                 jmp     AGAIN_2         ;

备用地址的内容为:b1=0,b2=8,b3=7,b4=6,b5=5,b6=4,b7=3,b8=2,b9=1
7).用第1位a1="R"来搜索的字符串"HKRTW5MYFAZP";存入备用地址第1位(存)
.text:0050397E                 mov     dword ptr [ebp-1F4h], 1 ; a1="R"第1位(读)
.text:00503988                 cmp     dword ptr [ebp-1F4h], 33h
.text:0050398F                 jnb     short loc_50399D
.text:00503991                 mov     dword ptr [ebp-26Ch], 0
.text:0050399B                 jmp     short NEXT_1_1  ; START
.text:0050399D loc_50399D:                             ; CODE XREF: .text:0050398Fj
.text:0050399D                 call    ds:__vbaGenerateBoundsError
.text:005039A3                 mov     [ebp-26Ch], eax ;
.text:005039A3                                         ;
.text:005039A9
.text:005039A9 NEXT_1_1:                               ; CODE XREF: .text:0050399Bj
.text:005039A9                 push    1               ; START
.text:005039AB                 mov     eax, [ebp-58h]
.text:005039AE                 push    eax             ; *eax->接受搜索的字符串"HKRTW5MYFAZP"
.text:005039AF                 mov     ecx, [ebp-1F4h]
.text:005039B5                 mov     edx, [ebp-40h]
.text:005039B8                 mov     eax, [edx+ecx*4]
.text:005039BB                 push    eax             ; *eax->被搜索的字符串"R"
.text:005039BC                 push    0
.text:005039BE                 call    ds:__vbaInStr   ;
.text:005039C4                 mov     ecx, eax                ;eax=3
.text:005039C6                 call    ds:__vbaI2I4
.text:005039CC                 mov     [ebp-54h], ax   ; [ebp-54h]=3
.text:005039D0                 mov     dword ptr [ebp-4], 2Ch
.text:005039D7                 mov     cx, [ebp-54h]
.text:005039DB                 sub     cx, 1                ;3-1
.text:005039DF                 jo      loc_503E79
.text:005039E5                 mov     [ebp-54h], cx
.text:005039E9                 mov     dword ptr [ebp-4], 2Dh
.text:005039F0                 mov     dword ptr [ebp-1F4h], 1 ; 备用地址第1位(存)
.text:005039FA                 cmp     dword ptr [ebp-1F4h], 33h
.text:00503A01                 jnb     short loc_503A0F
.text:00503A03                 mov     dword ptr [ebp-270h], 0
.text:00503A0D                 jmp     short loc_503A1B
.text:00503A0F loc_503A0F:                             ; CODE XREF: .text:00503A01j
.text:00503A0F                 call    ds:__vbaGenerateBoundsError
.text:00503A15                 mov     [ebp-270h], eax
.text:00503A1B
.text:00503A1B loc_503A1B:                             ; CODE XREF: .text:00503A0Dj
.text:00503A1B                 mov     edx, [ebp+8]
.text:00503A1E                 mov     eax, [edx+68h]
.text:00503A21                 mov     ecx, [ebp-1F4h]
.text:00503A27                 mov     dx, [ebp-54h]
.text:00503A2B                 mov     [eax+ecx*2], dx ; [eax+ecx*2]=[ebp-54h]=2  存入备用地址第1位

备用地址的内容为:b1=2,b2=8,b3=7,b4=6,b5=5,b6=4,b7=3,b8=2,b9=1

8).用第1位a2="8"来搜索的字符串"HKRTW5MYFAZP";存入备用地址第4位
.text:00503A36                 mov     dword ptr [ebp-1F4h], 2 ; a2="8"第2位(读)
.text:00503A40                 cmp     dword ptr [ebp-1F4h], 33h
.text:00503A47                 jnb     short loc_503A55
.text:00503A49                 mov     dword ptr [ebp-274h], 0
.text:00503A53                 jmp     short loc_503A61
.text:00503A55 loc_503A55:                           
.text:00503A55                 call    ds:__vbaGenerateBoundsError
.text:00503A5B                 mov     [ebp-274h], eax ;
.text:00503A61
.text:00503A61 loc_503A61:                           
.text:00503A61                 push    1
.text:00503A63                 mov     eax, [ebp-58h]
.text:00503A66                 push    eax                ; *eax->接受搜索的字符串"HKRTW5MYFAZP"
.text:00503A67                 mov     ecx, [ebp-1F4h]
.text:00503A6D                 mov     edx, [ebp-40h]
.text:00503A70                 mov     eax, [edx+ecx*4]
.text:00503A73                 push    eax             ; a2="8"
.text:00503A74                 push    0
.text:00503A76                 call    ds:__vbaInStr
.text:00503A7C                 mov     ecx, eax                ;搜不到,则 eax=0
.text:00503A7E                 call    ds:__vbaI2I4
.text:00503A84                 mov     [ebp-5Ch], ax   ; [ebp-5Ch]=0
.text:00503A88                 mov     dword ptr [ebp-4], 2Fh
.text:00503A8F                 mov     cx, [ebp-5Ch]
.text:00503A93                 sub     cx, 1                ;cx=0-1=ffffh
.text:00503A97                 jo      loc_503E79
.text:00503A9D                 mov     [ebp-5Ch], cx
.text:00503AA1                 mov     dword ptr [ebp-4], 30h
.text:00503AA8                 mov     dword ptr [ebp-1F4h], 4 ; 备用地址第4位(存)
.text:00503AB2                 cmp     dword ptr [ebp-1F4h], 33h
.text:00503AB9                 jnb     short loc_503AC7
.text:00503ABB                 mov     dword ptr [ebp-278h], 0
.text:00503AC5                 jmp     short loc_503AD3
.text:00503AC7 loc_503AC7:                             ; CODE XREF: .text:00503AB9j
.text:00503AC7                 call    ds:__vbaGenerateBoundsError
.text:00503ACD                 mov     [ebp-278h], eax
.text:00503AD3
.text:00503AD3 loc_503AD3:                             ; CODE XREF: .text:00503AC5j
.text:00503AD3                 mov     edx, [ebp+8]
.text:00503AD6                 mov     eax, [edx+68h]
.text:00503AD9                 mov     ecx, [ebp-1F4h]
.text:00503ADF                 mov     dx, [ebp-5Ch]
.text:00503AE3                 mov     [eax+ecx*2], dx ; [eax+ecx*2]=[ebp-5Ch]=ffff 存入备用地址第4位
.text:00503AE7                 mov     dword ptr [ebp-4], 31h
备用地址的内容为:b1=2,b2=8,b3=7,b4=ffff,b5=5,b6=4,b7=3,b8=2,b9=1

9).用第1位a4="6"来搜索的字符串"HKRTW5MYFAZP";存入备用地址第6位
.text:00503AEE                 mov     dword ptr [ebp-1F4h], 4 ;a4="6"第4位(读)
.text:00503AF8                 cmp     dword ptr [ebp-1F4h], 33h
.text:00503AFF                 jnb     short loc_503B0D
.text:00503B01                 mov     dword ptr [ebp-27Ch], 0
.text:00503B0B                 jmp     short loc_503B19
.text:00503B0D loc_503B0D:                           
.text:00503B0D                 call    ds:__vbaGenerateBoundsError
.text:00503B13                 mov     [ebp-27Ch], eax ;
.text:00503B19
.text:00503B19 loc_503B19:                           
.text:00503B19                 push    1
.text:00503B1B                 mov     eax, [ebp-58h]
.text:00503B1E                 push    eax                ;*eax->接受搜索的字符串"HKRTW5MYFAZP"
.text:00503B1F                 mov     ecx, [ebp-1F4h]
.text:00503B25                 mov     edx, [ebp-40h]
.text:00503B28                 mov     eax, [edx+ecx*4]
.text:00503B2B                 push    eax             ; a4="6"
.text:00503B2C                 push    0
.text:00503B2E                 call    ds:__vbaInStr
.text:00503B34                 mov     ecx, eax                ;搜不到,则 eax=0
.text:00503B36                 call    ds:__vbaI2I4
.text:00503B3C                 mov     ecx, [ebp+8]
.text:00503B3F                 mov     [ecx+74h], ax   ; [ecx+74h]=0
.text:00503B43                 mov     dword ptr [ebp-4], 32h
.text:00503B4A                 mov     edx, [ebp+8]
.text:00503B4D                 mov     ax, [edx+74h]
.text:00503B51                 sub     ax, 2                ;ax=0-2=fffe
.text:00503B55                 jo      loc_503E79
.text:00503B5B                 mov     ecx, [ebp+8]
.text:00503B5E                 mov     [ecx+74h], ax
.text:00503B62                 mov     dword ptr [ebp-4], 33h
.text:00503B69                 mov     dword ptr [ebp-1F4h], 6 ; 备用地址第6位
.text:00503B73                 cmp     dword ptr [ebp-1F4h], 33h
.text:00503B7A                 jnb     short loc_503B88
.text:00503B7C                 mov     dword ptr [ebp-280h], 0
.text:00503B86                 jmp     short loc_503B94
.text:00503B88 loc_503B88:                             
.text:00503B88                 call    ds:__vbaGenerateBoundsError
.text:00503B8E                 mov     [ebp-280h], eax
.text:00503B94
.text:00503B94 loc_503B94:                             
.text:00503B94                 mov     edx, [ebp+8]
.text:00503B97                 mov     eax, [edx+68h]
.text:00503B9A                 mov     ecx, [ebp-1F4h]
.text:00503BA0                 mov     edx, [ebp+8]
.text:00503BA3                 mov     dx, [edx+74h]
.text:00503BA7                 mov     [eax+ecx*2], dx ;  [eax+ecx*2]=[edx+74h]=fffe 存入备用地址第6位
.text:00503BAB                 mov     dword ptr [ebp-4], 34h

备用地址的内容为:b1=2,b2=8,b3=7,b4=ffff,b5=5,b6=fffe,b7=3,b8=2,b9=1

10).用第6位a6="4"来搜索的字符串"HKRTW5MYFAZP";存入备用地址第2位.

.text:00503BAB                 mov     dword ptr [ebp-4], 34h
.text:00503BB2                 mov     dword ptr [ebp-1F4h], 6 ; ;a6="4"第6位(读)
.text:00503BBC                 cmp     dword ptr [ebp-1F4h], 33h
.text:00503BC3                 jnb     short loc_503BD1
.text:00503BC5                 mov     dword ptr [ebp-284h], 0
.text:00503BCF                 jmp     short loc_503BDD
.text:00503BD1 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:00503BD1
.text:00503BD1 loc_503BD1:                             ; CODE XREF: .text:00503BC3j
.text:00503BD1                 call    ds:__vbaGenerateBoundsError
.text:00503BD7                 mov     [ebp-284h], eax ;
.text:00503BD7                                         ;
.text:00503BD7                                         ;
.text:00503BDD
.text:00503BDD loc_503BDD:                             ; CODE XREF: .text:00503BCFj
.text:00503BDD                 push    1
.text:00503BDF                 mov     eax, [ebp-58h]
.text:00503BE2                 push    eax                ;*eax->接受搜索的字符串"HKRTW5MYFAZP"
.text:00503BE3                 mov     ecx, [ebp-1F4h]
.text:00503BE9                 mov     edx, [ebp-40h]
.text:00503BEC                 mov     eax, [edx+ecx*4]
.text:00503BEF                 push    eax             ; a6="4"
.text:00503BF0                 push    0
.text:00503BF2                 call    ds:__vbaInStr
.text:00503BF8                 mov     ecx, eax                ;搜不到,则 eax=0
.text:00503BFA                 call    ds:__vbaI2I4
.text:00503C00                 mov     [ebp-7Ch], ax   ; [ebp-7Ch]=0
.text:00503C04                 mov     dword ptr [ebp-4], 35h
.text:00503C0B                 mov     cx, [ebp-7Ch]
.text:00503C0F                 sub     cx, 1                ;cx=0-1=ffff
.text:00503C13                 jo      loc_503E79
.text:00503C19                 mov     [ebp-7Ch], cx
.text:00503C1D                 mov     dword ptr [ebp-4], 36h
.text:00503C24                 mov     dword ptr [ebp-1F4h], 2; 备用地址第2位
.text:00503C2E                 cmp     dword ptr [ebp-1F4h], 33h
.text:00503C35                 jnb     short loc_503C43
.text:00503C37                 mov     dword ptr [ebp-288h], 0
.text:00503C41                 jmp     short loc_503C4F

.text:00503C43 loc_503C43:                           
.text:00503C43                 call    ds:__vbaGenerateBoundsError
.text:00503C49                 mov     [ebp-288h], eax
.text:00503C4F
.text:00503C4F loc_503C4F:                             
.text:00503C4F                 mov     edx, [ebp+8]
.text:00503C52                 mov     eax, [edx+68h]
.text:00503C55                 mov     ecx, [ebp-1F4h]
.text:00503C5B                 mov     dx, [ebp-7Ch]
.text:00503C5F                 mov     [eax+ecx*2], dx ; [eax+ecx*2]=[ebp-7Ch]=ffff 存入备用地址第2位

备用地址的内容为:b1=2,b2=ffff,b3=7,b4=ffff,b5=5,b6=fffe,b7=3,b8=2,b9=1

11),把备用地址的内容平方后相加,设为标志位2,地址为[ecx+74h]

.text:00503C96 AGAIN_33:                               ; CODE XREF: .text:00503D5Ej
.text:00503C96                 mov     dx, [ebp-24h]   ; [ebp-24h]=1(初始化)
.text:00503C9A                 add     dx, [ebp-220h]  ; [ebp-220h]=1
.text:00503CA1                 jo      loc_503E79
.text:00503CA7                 mov     [ebp-24h], dx   ; dx=dx+1
.text:00503CAB
.text:00503CAB loc_503CAB:                             ; CODE XREF: .text:00503C94j
.text:00503CAB                 mov     ax, [ebp-24h]
.text:00503CAF                 cmp     ax, [ebp-224h]  ; [ebp-224h]=9
.text:00503CB6                 jg      exit
.text:00503CBC                 mov     dword ptr [ebp-4], 39h
.text:00503CC3                 movsx   ecx, word ptr [ebp-24h]
.text:00503CC7                 mov     [ebp-1F4h], ecx
.text:00503CCD                 cmp     dword ptr [ebp-1F4h], 33h
.text:00503CD4                 jnb     short loc_503CE2
.text:00503CD6                 mov     dword ptr [ebp-28Ch], 0
.text:00503CE0                 jmp     short JMP_OK
.text:00503CE2 loc_503CE2:                             ; CODE XREF: .text:00503CD4j
.text:00503CE2                 call    ds:__vbaGenerateBoundsError
.text:00503CE8                 mov     [ebp-28Ch], eax
.text:00503CEE
.text:00503CEE JMP_OK:                                 ; CODE XREF: .text:00503CE0j
.text:00503CEE                 movsx   edx, word ptr [ebp-24h]
.text:00503CF2                 mov     [ebp-1F8h], edx
.text:00503CF8                 cmp     dword ptr [ebp-1F8h], 33h
.text:00503CFF                 jnb     short loc_503D0D
.text:00503D01                 mov     dword ptr [ebp-290h], 0
.text:00503D0B                 jmp     short JMP_OK2   ; ##
.text:00503D0D loc_503D0D:                             ; CODE XREF: .text:00503CFFj
.text:00503D0D                 call    ds:__vbaGenerateBoundsError
.text:00503D13                 mov     [ebp-290h], eax
.text:00503D19
.text:00503D19 JMP_OK2:                                ; CODE XREF: .text:00503D0Bj
.text:00503D19                 mov     eax, [ebp+8]    ; ##
.text:00503D1C                 mov     ecx, [eax+68h]  ; ##
.text:00503D1F                 mov     edx, [ebp+8]    ; ##
.text:00503D22                 mov     eax, [edx+68h]  ; ##
.text:00503D25                 mov     edx, [ebp-1F4h] ; ##
.text:00503D2B                 mov     esi, [ebp-1F8h] ; ##
.text:00503D31                 mov     cx, [ecx+edx*2] ; ##
.text:00503D35                 imul    cx, [eax+esi*2] ; 备用地址内容平方相加
.text:00503D3A                 jo      loc_503E79
.text:00503D40                 mov     edx, [ebp+8]
.text:00503D43                 mov     ax, [edx+74h]
.text:00503D47                 add     ax, cx
.text:00503D4A                 jo      loc_503E79
.text:00503D50                 mov     ecx, [ebp+8]
.text:00503D53                 mov     [ecx+74h], ax   ;[ecx+74h]为标志位2.
.text:00503D57                 mov     dword ptr [ebp-4], 3Ah
.text:00503D5E                 jmp     AGAIN_33        ;
.text:00503D5E  

12).标志位2的使用
.text:004EB92D                 mov     dx, [ebp-140h]
.text:004EB934                 sub     dx, [ecx+74h]   ; [ecx+74h]为标志位2.标志位2与dx相差不大于1则成功。
.text:004EB938                 jo      loc_4FFAC2
.text:004EB93E                 mov     ecx, edx
.text:004EB940                 call    ds:__vbaI2Abs ;绝对值
.text:004EB946                 cmp     ax, 1
.text:004EB94A                 jle     loc_4EBA20      ;跳则成功

但dx从哪来的呢?它是从机器码算出来的。
13).把机器码分离开并转为ASCII并乘以1.37 存入备用地址.

.text:004E9DD4                 mov     edx, [ebp-24h]
.text:004E9DD7                 push    edx
.text:004E9DD8                 lea     eax, [ebp-1DCh]
.text:004E9DDE                 push    eax                ;eax->每一位机器码
.text:004E9DDF                 lea     ecx, [ebp-17Ch]
.text:004E9DE5                 push    ecx
.text:004E9DE6                 call    ds:rtcMidCharVar
.text:004E9DEC                 mov     edx, [ebp-24h]
.text:004E9DEF                 mov     [ebp-264h], edx
.text:004E9DF5                 cmp     dword ptr [ebp-264h], 33h
.text:004E9DFC                 jnb     short loc_4E9E0A
.text:004E9DFE                 mov     dword ptr [ebp-648h], 0
.text:004E9E08                 jmp     short loc_4E9E16
.text:004E9E0A loc_4E9E0A:                             ; CODE XREF: .text:004E9DFCj
.text:004E9E0A                 call    ds:__vbaGenerateBoundsError
.text:004E9E10                 mov     [ebp-648h], eax
.text:004E9E16
.text:004E9E16 loc_4E9E16:                             ; CODE XREF: .text:004E9E08j
.text:004E9E16                 lea     eax, [ebp-17Ch]
.text:004E9E1C                 push    eax
.text:004E9E1D                 lea     ecx, [ebp-154h]
.text:004E9E23                 push    ecx
.text:004E9E24                 call    ds:__vbaStrVarVal
.text:004E9E2A                 push    eax
.text:004E9E2B                 call    ds:rtcAnsiValueBstr ; 每一位机器码转为ASCII
.text:004E9E31                 movsx   edx, ax
.text:004E9E34                 mov     [ebp-64Ch], edx
.text:004E9E3A                 fild    dword ptr [ebp-64Ch]
.text:004E9E40                 fmul    ds:dbl_402630;乘以1.37  ds:dbl_402630=1.37
.text:004E9E46                 call    ds:__vbaFpI2
.text:004E9E4C                 mov     ecx, [ebp-264h]
.text:004E9E52                 mov     edx, [ebp-0ECh]
.text:004E9E58                 mov     [edx+ecx*2], ax ;  存入备用地址
.text:004E9E5C                 lea     ecx, [ebp-154h]
.text:004E9E62                 call    ds:__vbaFreeStr
.text:004E9E68                 lea     eax, [ebp-17Ch]
.text:004E9E6E                 push    eax
.text:004E9E6F                 lea     ecx, [ebp-16Ch]
.text:004E9E75                 push    ecx
.text:004E9E76                 push    2
.text:004E9E78                 call    ds:__vbaFreeVarList
.text:004E9E7E                 add     esp, 0Ch
.text:004E9E81                 mov     dword ptr [ebp-4], 42h
.text:004E9E88                 jmp     loc_4E9D7B
存入备用地址内容为:47h,42h,49h,4dh,4eh,49h,45h,42h,42h
14)它还故意对第3位加1
.text:004E9E8D                 mov     dword ptr [ebp-4], 43h
.text:004E9E94                 mov     dword ptr [ebp-268h], 3;第3位
.text:004E9E9E                 cmp     dword ptr [ebp-268h], 33h
.text:004E9EA5                 jnb     short loc_4E9EB3
.text:004E9EA7                 mov     dword ptr [ebp-650h], 0
.text:004E9EB1                 jmp     short loc_4E9EBF
.text:004E9EB3 loc_4E9EB3:                             
.text:004E9EB3                 call    ds:__vbaGenerateBoundsError
.text:004E9EB9                 mov     [ebp-650h], eax
.text:004E9EBF
.text:004E9EBF loc_4E9EBF:                             
.text:004E9EBF                 mov     dword ptr [ebp-264h], 3;第3位
.text:004E9EC9                 cmp     dword ptr [ebp-264h], 33h
.text:004E9ED0                 jnb     short loc_4E9EDE
.text:004E9ED2                 mov     dword ptr [ebp-654h], 0
.text:004E9EDC                 jmp     short loc_4E9EEA
.text:004E9EDE loc_4E9EDE:                             
.text:004E9EDE                 call    ds:__vbaGenerateBoundsError
.text:004E9EE4                 mov     [ebp-654h], eax
.text:004E9EEA
.text:004E9EEA loc_4E9EEA:                             
.text:004E9EEA                 mov     edx, [ebp-268h]
.text:004E9EF0                 mov     eax, [ebp-0ECh]
.text:004E9EF6                 mov     cx, [eax+edx*2] ; 读第3位
.text:004E9EFA                 add     cx, 1                ;第3位加1
.text:004E9EFE                 jo      loc_4FFAC2
.text:004E9F04                 mov     edx, [ebp-264h]
.text:004E9F0A                 mov     eax, [ebp-0ECh]
.text:004E9F10                 mov     [eax+edx*2], cx;存第3位
.text:004E9F14                 mov     dword ptr [ebp-4], 44h
.text:004E9F1B                 movsx   ecx, word ptr [ebp-60h]
   
存入备用地址内容变为为:47h,42h,4ah,4dh,4eh,49h,45h,42h,42h

15)对存入备用地址内容取10进制个位数
ok_again:                               ; CODE XREF: .text:004EA06Dj
.text:004E9F38                 mov     edx, [ebp-24h]
.text:004E9F3B                 add     edx, [ebp-31Ch]
.text:004E9F41                 jo      loc_4FFAC2
.text:004E9F47                 mov     [ebp-24h], edx
.text:004E9F4A loc_4E9F4A:                             
.text:004E9F4A                 mov     eax, [ebp-24h]
.text:004E9F4D                 cmp     eax, [ebp-320h]
.text:004E9F53                 jg      loc_4EA072
.text:004E9F59                 mov     dword ptr [ebp-4], 45h
.text:004E9F60                 mov     ecx, [ebp-24h]
.text:004E9F63                 mov     [ebp-268h], ecx
.text:004E9F69                 cmp     dword ptr [ebp-268h], 33h
.text:004E9F70                 jnb     short loc_4E9F7E
.text:004E9F72                 mov     dword ptr [ebp-658h], 0
.text:004E9F7C                 jmp     short loc_4E9F8A
.text:004E9F7E loc_4E9F7E:                           
.text:004E9F7E                 call    ds:__vbaGenerateBoundsError
.text:004E9F84                 mov     [ebp-658h], eax
.text:004E9F8A
.text:004E9F8A loc_4E9F8A:                             
.text:004E9F8A                 mov     edx, [ebp-24h]
.text:004E9F8D                 mov     [ebp-26Ch], edx
.text:004E9F93                 cmp     dword ptr [ebp-26Ch], 33h
.text:004E9F9A                 jnb     short loc_4E9FA8
.text:004E9F9C                 mov     dword ptr [ebp-65Ch], 0
.text:004E9FA6                 jmp     short loc_4E9FB4
.text:004E9FA8 loc_4E9FA8:                             
.text:004E9FA8                 call    ds:__vbaGenerateBoundsError
.text:004E9FAE                 mov     [ebp-65Ch], eax
.text:004E9FB4
.text:004E9FB4 loc_4E9FB4:                           
.text:004E9FB4                 mov     eax, [ebp-24h]
.text:004E9FB7                 mov     [ebp-264h], eax
.text:004E9FBD                 cmp     dword ptr [ebp-264h], 33h
.text:004E9FC4                 jnb     short loc_4E9FD2
.text:004E9FC6                 mov     dword ptr [ebp-660h], 0
.text:004E9FD0                 jmp     short loc_4E9FDE
.text:004E9FD2 loc_4E9FD2:                             
.text:004E9FD2                 call    ds:__vbaGenerateBoundsError
.text:004E9FD8                 mov     [ebp-660h], eax
.text:004E9FDE
.text:004E9FDE loc_4E9FDE:                             
.text:004E9FDE                 mov     ecx, [ebp-268h]
.text:004E9FE4                 mov     edx, [ebp-0ECh]
.text:004E9FEA                 movsx   eax, word ptr [edx+ecx*2] ; 取备用地址内容
.text:004E9FEE                 mov     [ebp-664h], eax
.text:004E9FF4                 fild    dword ptr [ebp-664h]
.text:004E9FFA                 fstp    qword ptr [ebp-66Ch]
.text:004EA000                 mov     ecx, [ebp-26Ch]
.text:004EA006                 mov     edx, [ebp-0ECh]
.text:004EA00C                 movsx   eax, word ptr [edx+ecx*2]
.text:004EA010                 mov     [ebp-670h], eax
.text:004EA016                 fild    dword ptr [ebp-670h]
.text:004EA01C                 cmp     dword_532000, 0
.text:004EA023                 jnz     short loc_4EA02D ; XX
.text:004EA025                 fdiv    ds:dbl_402628   ; 除以10
.text:004EA02B                 jmp     short loc_4EA03E ;
.text:004EA02D loc_4EA02D:                             
.text:004EA02D                 push    dword ptr ds:dbl_402628+4 ; XX
.text:004EA033                 push    dword ptr ds:dbl_402628 ; XX
.text:004EA039                 call    _adj_fdiv_m64   ; XX
.text:004EA03E
.text:004EA03E loc_4EA03E:                             
.text:004EA03E                 call    ds:__vbaFPInt   ; st(0)取整
.text:004EA044                 fmul    ds:dbl_402628        ;乘以10,即取10进制个位数
.text:004EA04A                 fsubr   qword ptr [ebp-66Ch] ;  
.text:004EA050                 call    ds:__vbaFpI2
.text:004EA056                 mov     ecx, [ebp-264h]
.text:004EA05C                 mov     edx, [ebp-0ECh]
.text:004EA062                 mov     [edx+ecx*2], ax ; 存入备用地址
.text:004EA066                 mov     dword ptr [ebp-4], 46h
.text:004EA06D                 jmp     ok_again        ;

存入备用地址内容为:1,6,4,7,8,3,9,6,6
16).
.text:004EB85D loc_4EB85D:                             ; CODE XREF: .text:004EB91Ej
.text:004EB85D                 mov     ecx, [ebp-24h]
.text:004EB860                 add     ecx, [ebp-334h]
.text:004EB866                 jo      loc_4FFAC2
.text:004EB86C                 mov     [ebp-24h], ecx
.text:004EB86F
.text:004EB86F loc_4EB86F:                             ; CODE XREF: .text:004EB85Bj
.text:004EB86F                 mov     edx, [ebp-24h]
.text:004EB872                 cmp     edx, [ebp-338h]
.text:004EB878                 jg      loc_4EB923
.text:004EB87E                 mov     dword ptr [ebp-4], 80h
.text:004EB885                 mov     eax, [ebp-24h]
.text:004EB888                 mov     [ebp-264h], eax
.text:004EB88E                 cmp     dword ptr [ebp-264h], 33h
.text:004EB895                 jnb     short loc_4EB8A3
.text:004EB897                 mov     dword ptr [ebp-764h], 0
.text:004EB8A1                 jmp     short loc_4EB8AF
.text:004EB8A3 loc_4EB8A3:                             ; CODE XREF: .text:004EB895j
.text:004EB8A3                 call    ds:__vbaGenerateBoundsError
.text:004EB8A9                 mov     [ebp-764h], eax
.text:004EB8AF
.text:004EB8AF loc_4EB8AF:                             ; CODE XREF: .text:004EB8A1j
.text:004EB8AF                 mov     ecx, [ebp-24h]
.text:004EB8B2                 mov     [ebp-268h], ecx
.text:004EB8B8                 cmp     dword ptr [ebp-268h], 33h
.text:004EB8BF                 jnb     short loc_4EB8CD
.text:004EB8C1                 mov     dword ptr [ebp-768h], 0
.text:004EB8CB                 jmp     short loc_4EB8D9
.text:004EB8CD loc_4EB8CD:                             ; CODE XREF: .text:004EB8BFj
.text:004EB8CD                 call    ds:__vbaGenerateBoundsError
.text:004EB8D3                 mov     [ebp-768h], eax
.text:004EB8D9
.text:004EB8D9 loc_4EB8D9:                             ; CODE XREF: .text:004EB8CBj
.text:004EB8D9                 mov     edx, [ebp-264h]
.text:004EB8DF                 mov     eax, [ebp-0ECh]
.text:004EB8E5                 mov     ecx, [ebp-268h]
.text:004EB8EB                 mov     esi, [ebp-0ECh]
.text:004EB8F1                 mov     dx, [eax+edx*2]
.text:004EB8F5                 imul    dx, [esi+ecx*2] ;备用地址内容平方
.text:004EB8FA                 jo      loc_4FFAC2
.text:004EB900                 mov     ax, [ebp-140h]
.text:004EB907                 add     ax, dx
.text:004EB90A                 jo      loc_4FFAC2
.text:004EB910                 mov     [ebp-140h], ax;备用地址内容平方相加,这就是(12)所说的dx了
.text:004EB917                 mov     dword ptr [ebp-4], 81h
.text:004EB91E                 jmp     loc_4EB85D      ;
.text:004EB91E                        
.text:004EB923 loc_4EB923:                             ; CODE XREF: .text:004EB878j
.text:004EB923                 mov     dword ptr [ebp-4], 82h
.text:004EB92A                 mov     ecx, [ebp+8]
.text:004EB92D                 mov     dx, [ebp-140h];这就是(12)所说的dx了
.text:004EB934                 sub     dx, [ecx+74h]   ;
.text:004EB938                 jo      loc_4FFAC2
.text:004EB93E                 mov     ecx, edx
.text:004EB940                 call    ds:__vbaI2Abs
.text:004EB946                 cmp     ax, 1
.text:004EB94A                 jle     loc_4EBA20;;跳则成功

17).到此就完了,我的机器码为:405895200,算出来的注册码为:199K9K9KK-122533218,后半部份是固定的,前半部份有多种情况.

18).注册机:...


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (6)
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
我来支持一下楼主
2005-7-10 19:26
0
雪    币: 250
活跃值: (103)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
好文!我也支持一下楼主!!!
2005-7-11 22:38
0
雪    币: 328
活跃值: (925)
能力值: ( LV9,RANK:1010 )
在线值:
发帖
回帖
粉丝
4
支持一下!
2005-7-12 08:13
0
雪    币: 214
活跃值: (86)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
恩 ,好文章,不过偶好像没有看见楼主怎么用词典哦~~
2005-7-12 08:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
楼主!
我按照你的方法已做好破解,两个标志位均通过,不再要求注册,神经排序可以运行,但没有结果,建模次数大于1时死机,用smartchk调试,提示下标越界,请楼主帮我!
我的E-MSIL:YunChengCheng@126.com
2005-7-30 14:03
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
7
2005-7-30 14:49
0
游客
登录 | 注册 方可回帖
返回
//