TA的每日心情 | 开心 2015-8-23 23:49 |
---|
签到天数: 27 天 [LV.4]偶尔看看III
|
MyDataGuard v1.0算法分析及源码
庆贺论坛十周年!
一般情况下我不公开国软,但作者自己在远景论坛贴出了注册机,所以我想在这里贴出分析应该不会损及作者的利益吧
软件的算法很简单,而且是明码比较。不过需要.net2.0的支持~~(直接用.net的反编译软件一看,算法一目了然)
不过,这次我们用OD看看,找到算法CALL:
- 011BF86E 8BD3 MOV EDX,EBX
- 011BF870 8BCE MOV ECX,ESI
- 011BF872 E8 056D2700 CALL 0143657C ; 算法CALL
- 011BF877 85C0 TEST EAX,EAX
- 011BF879 74 5A JE SHORT 011BF8D5
复制代码
我们进去看看。
F7后:- 011BF92F 0FB74456 0C MOVZX EAX,WORD PTR DS:[ESI+EDX*2+0xC] ; 申请码第一位
- 011BF934 894491 08 MOV DWORD PTR DS:[ECX+EDX*4+0x8],EAX
- 011BF938 83C2 01 ADD EDX,0x1
- 011BF93B 83FA 0F CMP EDX,0xF
- 011BF93E ^ 7C E7 JL SHORT 011BF927
- 011BF940 6971 08 A000000>IMUL ESI,DWORD PTR DS:[ECX+0x8],0xA0 ; 申请码第一位 * A0
- 011BF947 6B41 14 50 IMUL EAX,DWORD PTR DS:[ECX+0x14],0x50 ; 申请码第4位 *50
- 011BF94B 03F0 ADD ESI,EAX ; + ,=31B0
- 011BF94D 8B41 20 MOV EAX,DWORD PTR DS:[ECX+0x20] ; 申请码第7位
- 011BF950 8D0480 LEA EAX,DWORD PTR DS:[EAX+EAX*4] ; *5
- 011BF953 C1E0 03 SHL EAX,0x3 ; *8
- 011BF956 03F0 ADD ESI,EAX ; 820 + 31b0 =39D0
- 011BF958 8B41 2C MOV EAX,DWORD PTR DS:[ECX+0x2C] ; 申请码第10位
- 011BF95B 8D0480 LEA EAX,DWORD PTR DS:[EAX+EAX*4] ; *5
- 011BF95E C1E0 02 SHL EAX,0x2 ; *4
- 011BF961 03F0 ADD ESI,EAX ; 3c0 + 39D0 =3d90
- 011BF963 8B41 38 MOV EAX,DWORD PTR DS:[ECX+0x38] ; 申请码第13位
- 011BF966 8D0480 LEA EAX,DWORD PTR DS:[EAX+EAX*4] ; *5
- 011BF969 03C0 ADD EAX,EAX ; *2
- 011BF96B 03F0 ADD ESI,EAX ; 3f2 + 3D90 =4182
- 011BF96D 8BFE MOV EDI,ESI
- 011BF96F C1FF 1F SAR EDI,0x1F ; SAR 1F ~~ =0了?
- 011BF972 6941 0C AA00000>IMUL EAX,DWORD PTR DS:[ECX+0xC],0xAA ; 申请码第2位 *AA
- 011BF979 6B51 18 5A IMUL EDX,DWORD PTR DS:[ECX+0x18],0x5A ; 申请码第5位 *5A
- 011BF97D 03C2 ADD EAX,EDX ; 406a + 2328 =6392
- 011BF97F 6B51 24 32 IMUL EDX,DWORD PTR DS:[ECX+0x24],0x32 ; 申请码第8位 *32 =960
- 011BF983 03C2 ADD EAX,EDX ; 960 + 6392 =6CF2
- 011BF985 6B51 30 1E IMUL EDX,DWORD PTR DS:[ECX+0x30],0x1E ; 申请码第11位*1E =b7c
- 011BF989 03C2 ADD EAX,EDX ; b7c + 6cf2 =786E
- 011BF98B 8B51 3C MOV EDX,DWORD PTR DS:[ECX+0x3C] ; 申请码第14位
- 011BF98E 8D1492 LEA EDX,DWORD PTR DS:[EDX+EDX*4] ; *5
- 011BF991 C1E2 02 SHL EDX,0x2 ; *4
- 011BF994 03C2 ADD EAX,EDX ; 460 + 786e =7cce
- 011BF996 99 CDQ
- 011BF997 895424 04 MOV DWORD PTR SS:[ESP+0x4],EDX
- 011BF99B 8BE8 MOV EBP,EAX ; 7CCE
- 011BF99D 6941 10 B400000>IMUL EAX,DWORD PTR DS:[ECX+0x10],0xB4 ; 申请码第3位 *B4
- 011BF9A4 6B51 1C 64 IMUL EDX,DWORD PTR DS:[ECX+0x1C],0x64 ; 申请码第6位 *64
- 011BF9A8 03C2 ADD EAX,EDX ; 2814 + 1450 =3c64
- 011BF9AA 6B51 28 3C IMUL EDX,DWORD PTR DS:[ECX+0x28],0x3C ; 申请码第9位 *3C
- 011BF9AE 03C2 ADD EAX,EDX ; C30 + 3c64 =4894
- 011BF9B0 8B51 34 MOV EDX,DWORD PTR DS:[ECX+0x34] ; 申请码第12位
- 011BF9B3 8D1492 LEA EDX,DWORD PTR DS:[EDX+EDX*4] ; *5
- 011BF9B6 C1E2 03 SHL EDX,0x3 ; *8
- 011BF9B9 03C2 ADD EAX,EDX ; 4894 + f50 =57e4
- 011BF9BB 6B51 40 1E IMUL EDX,DWORD PTR DS:[ECX+0x40],0x1E ; 申请码第15位 *1E =b7c
- 011BF9BF 03C2 ADD EAX,EDX ; B7C + 57E4 =6360
- 011BF9C1 99 CDQ
- 011BF9C2 895424 0C MOV DWORD PTR SS:[ESP+0xC],ED
复制代码
算法如此简单,这里就不总结了。
附写的很烂的注册机源码:
A. VB版- Private Sub Image1_Click()
- MsgBox " 本“MyDataGuard v1.0算法注册机”只为学习和研究而作,不得用于非法用途!为尊重作者的版权,支持国软,请在24小时内删除本注册机以及由此得到的注册信息。注册信息保存在注册表:HKEY_LOCAL_MACHINE\SOFTWARE\MyDataGuard下。谢谢合作!", vbInformation, "重要声明 by GGLHY"
- End Sub
- Private Sub Text1_Change()
- Dim sqh, xlh As String
- If Text1.Text = "" Or Len(Text1.Text) <> 15 Then
- Text2.Text = ""
- Else
- sqh = Text1.Text
- Q1 = Hex(((Asc(Mid(sqh, 1, 1)) * 160) + Asc(Mid(sqh, 4, 1)) * 80) + Asc(Mid(sqh, 7, 1)) * 40 + Asc(Mid(sqh, 10, 1)) * 20 + (Asc(Mid(sqh, 13, 1)) * 10))
- <span style="line-height: 1.5;">Q2 = Hex(((Asc(Mid(sqh, 2, 1)) * 170) + Asc(Mid(sqh, 5, 1)) * 90) + Asc(Mid(sqh, 8, 1)) * 50 + Asc(Mid(sqh, 11, 1)) * 30 + (Asc(Mid(sqh, 14, 1)) * 20))</span>
- <span style="line-height: 1.5;">Q3 = Hex(((Asc(Mid(sqh, 3, 1)) * 180) + Asc(Mid(sqh, 6, 1)) * 100) + Asc(Mid(sqh, 9, 1)) * 60 + Asc(Mid(sqh, 12, 1)) * 40 + (Asc(Mid(sqh, 15, 1)) * 30))</span>
- Text2.Text = LCase(Q1 & "-" & Q2 & "-" & Q3)
- End IF
复制代码
敬请方家指正!!!
|
|