首页
社区
课程
招聘
[原创]WinImage8.00 注册算法分析
发表于: 2006-1-6 03:13 8715

[原创]WinImage8.00 注册算法分析

2006-1-6 03:13
8715

破解工具OD



612K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4N6A6L8X3W2E0j5h3N6W2i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0%4L8X3I4G2j5h3c8Q4x3X3g2Z5N6r3@1`.

下载网址 怎么找下断点的这我就不多说了。我主要学习算法分析了。



004454FB    53              PUSH    EBX                                        ; //下断F2


004454FC    57              PUSH    EDI


004454FD    68 01010000     PUSH    101


00445502    BF B8DE4800     MOV     EDI,winimage.0048DEB8                      ; ASCII "fcrjzmd"


00445507    57              PUSH    EDI


00445508    68 16080000     PUSH    816


0044550D    FF75 08         PUSH    DWORD PTR SS:[EBP+8]


00445510    FFD6            CALL    ESI                                        ; 取用户名,并把长度送入EAX


00445512    6A 7F           PUSH    7F


00445514    BB 38E24800     MOV     EBX,winimage.0048E238                      ; ASCII "98765432100"


00445519    53              PUSH    EBX


0044551A    68 17080000     PUSH    817


0044551F    FF75 08         PUSH    DWORD PTR SS:[EBP+8]


00445522    FFD6            CALL    ESI                                        ; 取假码,并把长度送入EAX


00445524    57              PUSH    EDI


00445525    BF 70DB4800     MOV     EDI,winimage.0048DB70


0044552A    8BC3            MOV     EAX,EBX


0044552C    E8 2E720000     CALL    winimage.0044C75F                          ; 关键CALL跟进



================================================================================



跟进0044C75F



0044C75F    55              PUSH    EBP


0044C760    8BEC            MOV     EBP,ESP


0044C762    81EC 00020000   SUB     ESP,200


0044C768    85FF            TEST    EDI,EDI


0044C76A    74 03           JE      SHORT winimage.0044C76F


0044C76C    8327 00         AND     DWORD PTR DS:[EDI],0


0044C76F    56              PUSH    ESI


0044C770    8D8D 00FFFFFF   LEA     ECX,DWORD PTR SS:[EBP-100]


0044C776    E8 FBFEFFFF     CALL    winimage.0044C676                          ; 假码第一位和20做比较


0044C77B    8B45 08         MOV     EAX,DWORD PTR SS:[EBP+8]                   ; EAX=用户名


0044C77E    E8 14FFFFFF     CALL    winimage.0044C697                          ; 关键CALL跟进!!计算用户(762C78)


0044C783    8BF0            MOV     ESI,EAX                                    ; ESI=762C78


0044C785    81FE 26DDDCB8   CMP     ESI,B8DCDD26                               ; 762C78和B8DCDD26做比较


0044C78B    0F84 0A020000   JE      winimage.0044C99B                          ; 相等则失败,反之继续运算。



================================================================================



跟进0044C697



0044C697    55              PUSH    EBP


0044C698    8BEC            MOV     EBP,ESP


0044C69A    81EC 08010000   SUB     ESP,108


0044C6A0    8D8D F8FEFFFF   LEA     ECX,DWORD PTR SS:[EBP-108]


0044C6A6    C745 FC 4C69470>MOV     DWORD PTR SS:[EBP-4],winimage.0047694C


0044C6AD    E8 C4FFFFFF     CALL    winimage.0044C676                          ; 将用户名转换成大写


0044C6B2    8D85 F8FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-108]                 ; 用户名地址送入EAX


0044C6B8    50              PUSH    EAX                                        ; 压入用户名


0044C6B9    FF15 20334700   CALL    DWORD PTR DS:[<&KERNEL32.lstrlenA>]        ; 取用户名长度


0044C6BF    33C9            XOR     ECX,ECX                                    ; ECX=0


0044C6C1    85C0            TEST    EAX,EAX                                    ; 测试EAX


0044C6C3    8945 F8         MOV     DWORD PTR SS:[EBP-8],EAX                   ; 保存用户名长度


0044C6C6    7E 46           JLE     SHORT winimage.0044C70E                    ; 小于或者等于则转移


0044C6C8    53              PUSH    EBX                                        ; 压入假码


0044C6C9    56              PUSH    ESI


0044C6CA    8B75 F8         MOV     ESI,DWORD PTR SS:[EBP-8]                   ; 将用户名长度送入ESI


0044C6CD    57              PUSH    EDI


0044C6CE    8DBD F8FEFFFF   LEA     EDI,DWORD PTR SS:[EBP-108]                 ; 用户名地址送入EDI


0044C6D4    83EF 03         SUB     EDI,3                                      ; EDI=EDI-3


0044C6D7    8BC1            MOV     EAX,ECX                                    ; EAX=0


0044C6D9    6A 0E           PUSH    0E                                         ; 压入E


0044C6DB    99              CDQ                                                ; 双字扩展


0044C6DC    5B              POP     EBX                                        ; 弹出E到EBX


0044C6DD    F7FB            IDIV    EBX                                        ; 除以E(带符号除法)


0044C6DF    85D2            TEST    EDX,EDX                                    ; 测试EDX


0044C6E1    75 03           JNZ     SHORT winimage.0044C6E6


0044C6E3    6A 27           PUSH    27                                         ; 压入27


0044C6E5    5E              POP     ESI                                        ; 弹出27到ESI


0044C6E6    8D41 03         LEA     EAX,DWORD PTR DS:[ECX+3]                   ; ECX+3地址送入EAX


0044C6E9    0FB61407        MOVZX   EDX,BYTE PTR DS:[EDI+EAX]                  ; 依次取用户名的ASCII码送入EDX


0044C6ED    0FAFD6          IMUL    EDX,ESI                                    ; EDX=EDX*ESI(带符号乘法)


0044C6F0    0155 FC         ADD     DWORD PTR SS:[EBP-4],EDX                   ; 0012E944=47694C+EDX


0044C6F3    6A 0E           PUSH    0E                                         ; 压入E


0044C6F5    99              CDQ                                                ; 双字扩展


0044C6F6    5B              POP     EBX                                        ; 弹出E到EBX


0044C6F7    F7FB            IDIV    EBX                                        ; 除以E(带符号除法)


0044C6F9    85D2            TEST    EDX,EDX                                    ; 测试EDX


0044C6FB    74 05           JE      SHORT winimage.0044C702


0044C6FD    8D3476          LEA     ESI,DWORD PTR DS:[ESI+ESI*2]               ; ESI=ESI+ESI*2


0044C700    EB 03           JMP     SHORT winimage.0044C705


0044C702    6BF6 07         IMUL    ESI,ESI,7


0044C705    41              INC     ECX                                        ; ECX=ECX+1


0044C706    3B4D F8         CMP     ECX,DWORD PTR SS:[EBP-8]                   ; ECX和7做比较


0044C709  ^ 7C CC           JL      SHORT winimage.0044C6D7                    ; 小于转移


0044C70B    5F              POP     EDI


0044C70C    5E              POP     ESI


0044C70D    5B              POP     EBX


0044C70E    8B45 FC         MOV     EAX,DWORD PTR SS:[EBP-4]


0044C711    C9              LEAVE


0044C712    C3              RETN



=================================================================================



如下是我列的用户名算法公式:(乱来的。。可能只有我看得懂了。)



F       C               R               J                  Z                   M                  D               (用户名)



46      43              52              4A                 5A                  4D                 44              (ASCII码)



27   (27+27*2)=75   (75+75*2)=15F   (15F+15F*2)=41D    (41D+41D*2)=C57    (C57+C57*2)=2505   (2505+2505*2)=6F0F      



*


---------------------------------------------------------------------------------------------------------------------------+47694C=762C78(最后得出的值)


AAA     1E9F            706E           13062              45696               B2281              1D7FFC



好啦知道用户名的运算,运算完就返回了继续下面的运算



0044C783    8BF0            MOV     ESI,EAX                                    ; ESI=762C78


0044C785    81FE 26DDDCB8   CMP     ESI,B8DCDD26                               ; 762C78和B8DCDD26做比较


0044C78B    0F84 0A020000   JE      winimage.0044C99B                          ; 相等则失败,反之继续运算。


0044C791    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]


0044C797    50              PUSH    EAX


0044C798    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]


0044C79E    56              PUSH    ESI


0044C79F    50              PUSH    EAX


0044C7A0    E8 6EFFFFFF     CALL    winimage.0044C713                          ; 1、注册码运算(762C7B)


0044C7A5    59              POP     ECX


0044C7A6    59              POP     ECX


0044C7A7    50              PUSH    EAX


0044C7A8    E8 C35A0100     CALL    winimage.00462270


0044C7AD    85C0            TEST    EAX,EAX


0044C7AF    59              POP     ECX


0044C7B0    59              POP     ECX


0044C7B1    0F84 AC010000   JE      winimage.0044C963


0044C7B7    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]


0044C7BD    50              PUSH    EAX


0044C7BE    8D86 48190514   LEA     EAX,DWORD PTR DS:[ESI+14051948]            ; EAX=762C78+14051948=147B45C0


0044C7C4    50              PUSH    EAX


0044C7C5    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]


0044C7CB    50              PUSH    EAX


0044C7CC    E8 42FFFFFF     CALL    winimage.0044C713                          ; 2、注册码运算(147845C0)


0044C7D1    59              POP     ECX


0044C7D2    59              POP     ECX


0044C7D3    50              PUSH    EAX


0044C7D4    E8 975A0100     CALL    winimage.00462270


0044C7D9    85C0            TEST    EAX,EAX


0044C7DB    59              POP     ECX


0044C7DC    59              POP     ECX


0044C7DD    0F84 80010000   JE      winimage.0044C963


0044C7E3    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]


0044C7E9    50              PUSH    EAX


0044C7EA    8D86 54190617   LEA     EAX,DWORD PTR DS:[ESI+17061954]            ; EAX=762C78+17061954=177C45CC


0044C7F0    50              PUSH    EAX


0044C7F1    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]


0044C7F7    50              PUSH    EAX


0044C7F8    E8 16FFFFFF     CALL    winimage.0044C713                          ; 3、注册码运算(177C45CC)


0044C7FD    59              POP     ECX


0044C7FE    59              POP     ECX


0044C7FF    50              PUSH    EAX


0044C800    E8 6B5A0100     CALL    winimage.00462270


0044C805    85C0            TEST    EAX,EAX


0044C807    59              POP     ECX


0044C808    59              POP     ECX


0044C809    0F84 54010000   JE      winimage.0044C963


0044C80F    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]


0044C815    50              PUSH    EAX


0044C816    8D86 81190510   LEA     EAX,DWORD PTR DS:[ESI+10051981]            ; EAX=762C78+10051981=107B45F9


0044C81C    50              PUSH    EAX


0044C81D    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]


0044C823    50              PUSH    EAX


0044C824    E8 EAFEFFFF     CALL    winimage.0044C713                          ; 4、注册码运算(107845F9)


0044C829    59              POP     ECX


0044C82A    59              POP     ECX


0044C82B    50              PUSH    EAX


0044C82C    E8 3F5A0100     CALL    winimage.00462270


0044C831    85C0            TEST    EAX,EAX


0044C833    59              POP     ECX


0044C834    59              POP     ECX


0044C835    0F84 55010000   JE      winimage.0044C990


0044C83B    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]


0044C841    50              PUSH    EAX


0044C842    8D86 95190104   LEA     EAX,DWORD PTR DS:[ESI+4011995]             ; EAX=762C78+4011995=477460D


0044C848    50              PUSH    EAX


0044C849    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]


0044C84F    50              PUSH    EAX


0044C850    E8 BEFEFFFF     CALL    winimage.0044C713                          ; 5、注册码运算(477460D)


0044C855    59              POP     ECX


0044C856    59              POP     ECX


0044C857    50              PUSH    EAX


0044C858    E8 135A0100     CALL    winimage.00462270


0044C85D    85C0            TEST    EAX,EAX


0044C85F    59              POP     ECX


0044C860    59              POP     ECX


0044C861    0F84 FC000000   JE      winimage.0044C963


0044C867    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]


0044C86D    50              PUSH    EAX


0044C86E    8D86 97190602   LEA     EAX,DWORD PTR DS:[ESI+2061997]             ; EAX=762C78+2061997=27C460F


0044C874    50              PUSH    EAX


0044C875    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]


0044C87B    50              PUSH    EAX


0044C87C    E8 92FEFFFF     CALL    winimage.0044C713                          ; 6、注册码运算(27C460F)


0044C881    59              POP     ECX


0044C882    59              POP     ECX


0044C883    50              PUSH    EAX


0044C884    E8 E7590100     CALL    winimage.00462270



[注意]看雪招聘,专注安全领域的专业人才平台!

收藏
免费 7
支持
分享
最新回复 (13)
雪    币: 209
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
辛苦了
学习中
2006-1-6 08:22
0
雪    币: 273
活跃值: (250)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
3
"专业版注册码:
24874C7D  "

真是不好意思。。昨晚太晚了搞错了一个地方了。。

专业版注册码:24B74C7D

用户名:fcrjzmd

谢谢slsdz兄。支持哦。。
2006-1-6 09:28
0
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好文章,不过为了大家方便,参考楼主给的信息发布了这个注册机代码,本来是在Excel的VBA中的,可是没有附件上传能力,只好贴源码了。希望楼主不介意。
=================================
Private Sub B_ok_Click()
Dim username As String
Dim i, tmp1, tmp2 As Long
username = UCase(T_username.Text)
tmp1 = 4680012  
tmp2 = 39 '十六进制的27
For i = 1 To Len(username)
    tmp1 = tmp1 + Asc(Mid(username, i, 1)) * tmp2
    tmp2 = tmp2 * 3
Next i
If Hex(tmp1) = "B8DCDD26" Then '
MsgBox "错误的用户名"
T_usersig.Text = "Wrong UserName"
Else
T_usersig.Text = Hex(tmp1 + 605102085)
End If
End Sub

================================
2006-1-6 13:21
0
雪    币: 273
活跃值: (250)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
5
这个没什么。我不会写注册机哦。(菜鸟对编程不太懂正准备学呢)现在只学会分析一下代码啦。。我太菜了。。谢谢fallwolf兄的注册机代码啦。呵呵。。
2006-1-6 14:45
0
雪    币: 313
活跃值: (250)
能力值: ( LV9,RANK:650 )
在线值:
发帖
回帖
粉丝
6
详细,学习一下。GOOD!!!!
2006-1-6 20:19
0
雪    币: 300
活跃值: (239)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
7
强!菜鸟大哥们,我先谢过了。要考试了,我不想挂!大家继续!!
2006-1-6 20:25
0
雪    币: 273
活跃值: (250)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
8
最初由 飞心男孩 发布
强!菜鸟大哥们,我先谢过了。要考试了,我不想挂!大家继续!!


学习为重啊。。。不要因为破解担误学习啊。加上临近考试了。。多温习啊。。呵呵 。

感谢大家帮我顶哦。。
2006-1-6 21:59
0
雪    币: 137
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
最初由 fallwolf 发布
好文章,不过为了大家方便,参考楼主给的信息发布了这个注册机代码,本来是在Excel的VBA中的,可是没有附件上传能力,只好贴源码了。希望楼主不介意。
=================================
Private Sub B_ok_Click()
Dim username As String
Dim i, tmp1, tmp2 As Long
........
2006-1-8 13:43
0
雪    币: 212
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
分析得不错,很详细!
不过如果能说一下下断的在哪里的原因就更完美了
2006-1-8 14:05
0
雪    币: 273
活跃值: (250)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
11
最初由 starluck 发布
分析得不错,很详细!
不过如果能说一下下断的在哪里的原因就更完美了


那天太晚了。为了偷懒呵呵 。。下次一定要写得更详细。
2006-1-8 20:27
0
雪    币: 224
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
下断GetDlgItemTextA返回领空
F8了几下,真码出来了
谢楼主,好玩
2006-1-8 20:38
0
雪    币: 273
活跃值: (250)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
13
最初由 零下 发布
下断GetDlgItemTextA返回领空
F8了几下,真码出来了
谢楼主,好玩


找出真码了哦。恭喜了。最好能看出分析出注册算法
2006-1-8 20:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
最初由 fcrjzmd 发布



找出真码了哦。恭喜了。最好能看出分析出注册算法

你自己的注册算法分析不是出了吗?
2006-1-9 16:29
0
游客
登录 | 注册 方可回帖
返回