【文章标题】: Alligator Flash Designer 5的算法分析[逆推]
【文章作者】: oczhao[OCN]
【作者邮箱】: ocnzhao@newhua.com
【软件名称】: Selteco Flash Designer 5.0.30_0624
【软件大小】: 1.65M
【下载地址】: http://www.onlinedown.net/soft/8902.htm
【加壳方式】: none
【保护方式】: 序列号
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: OllyDBG 1.10[1208] caocong汉化第二版;PEID 0.94
【操作平台】: XP SP2
【软件介绍】: Selteco Flash Designer 可以帮助你为你的网页创建
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
首先对第一段注册码作处理:
00407AF0 /$ 83EC 3C SUB ESP,3C
00407AF3 |. 8B4C24 40 MOV ECX,DWORD PTR SS:[ESP+40]
00407AF7 |. B8 8F588B4F MOV EAX,4F8B588F
00407AFC |. F7E1 MUL ECX ; 4F8B588F*SN1
00407AFE |. 8BC1 MOV EAX,ECX
00407B00 |. 53 PUSH EBX
00407B01 |. 2BC2 SUB EAX,EDX
00407B03 |. 55 PUSH EBP
00407B04 |. D1E8 SHR EAX,1
00407B06 |. 03C2 ADD EAX,EDX
00407B08 |. 56 PUSH ESI
00407B09 |. C1E8 10 SHR EAX,10
00407B0C |. 33D2 XOR EDX,EDX
00407B0E |. BE 0A000000 MOV ESI,0A
00407B13 |. F7F6 DIV ESI
00407B15 |. 57 PUSH EDI
00407B16 |. B8 5917B7D1 MOV EAX,D1B71759
00407B1B |. 8BFA MOV EDI,EDX
00407B1D |. F7E1 MUL ECX ; SN1*D1B71759
00407B1F |. 8BC2 MOV EAX,EDX
00407B21 |. 33D2 XOR EDX,EDX
00407B23 |. C1E8 0D SHR EAX,0D
00407B26 |. F7F6 DIV ESI
00407B28 |. B8 D34D6210 MOV EAX,10624DD3 ; 10624DD3*SN1
00407B2D |. 895424 14 MOV DWORD PTR SS:[ESP+14],EDX
00407B31 |. F7E1 MUL ECX
00407B33 |. 8BC2 MOV EAX,EDX
00407B35 |. 33D2 XOR EDX,EDX
00407B37 |. C1E8 06 SHR EAX,6
00407B3A |. F7F6 DIV ESI
00407B3C |. B8 1F85EB51 MOV EAX,51EB851F ; 51EB851F*SN1
00407B41 |. 895424 18 MOV DWORD PTR SS:[ESP+18],EDX
00407B45 |. F7E1 MUL ECX
00407B47 |. 8BC2 MOV EAX,EDX
00407B49 |. 33D2 XOR EDX,EDX
00407B4B |. C1E8 05 SHR EAX,5
00407B4E |. F7F6 DIV ESI
00407B50 |. B8 CDCCCCCC MOV EAX,CCCCCCCD ; CCCCCCCD*SN1
00407B55 |. 8BDA MOV EBX,EDX
00407B57 |. F7E1 MUL ECX
00407B59 |. 8BC2 MOV EAX,EDX
00407B5B |. 33D2 XOR EDX,EDX
00407B5D |. C1E8 03 SHR EAX,3
00407B60 |. F7F6 DIV ESI
00407B62 |. 8BC1 MOV EAX,ECX
00407B64 |. 8BCE MOV ECX,ESI
00407B66 |. 8BEA MOV EBP,EDX
00407B68 |. 33D2 XOR EDX,EDX
00407B6A |. F7F1 DIV ECX
00407B6C |. 8B4C24 54 MOV ECX,DWORD PTR SS:[ESP+54]
00407B70 |. B8 893BE655 MOV EAX,55E63B89
00407B75 |. 895424 24 MOV DWORD PTR SS:[ESP+24],EDX
00407B79 |. F7E1 MUL ECX ; 55E63B89*SN1
00407B7B |. 8BC2 MOV EAX,EDX
00407B7D |. 33D2 XOR EDX,EDX
00407B7F |. C1E8 19 SHR EAX,19
00407B82 |. F7F6 DIV ESI
00407B84 |. B8 6BCA5F6B MOV EAX,6B5FCA6B
00407B89 |. 895424 28 MOV DWORD PTR SS:[ESP+28],EDX
00407B8D |. F7E1 MUL ECX ; 6B5FCA6B*SN1
00407B8F |. 8BC2 MOV EAX,EDX
00407B91 |. 33D2 XOR EDX,EDX
00407B93 |. C1E8 16 SHR EAX,16
00407B96 |. F7F6 DIV ESI
00407B98 |. B8 83DE1B43 MOV EAX,431BDE83
00407B9D |. 895424 2C MOV DWORD PTR SS:[ESP+2C],EDX
00407BA1 |. F7E1 MUL ECX ; 431BDE83*SN1
00407BA3 |. 8BC2 MOV EAX,EDX
00407BA5 |. 33D2 XOR EDX,EDX
00407BA7 |. C1E8 12 SHR EAX,12
00407BAA |. F7F6 DIV ESI
00407BAC |. B8 8F588B4F MOV EAX,4F8B588F
00407BB1 |. 895424 30 MOV DWORD PTR SS:[ESP+30],EDX
00407BB5 |. F7E1 MUL ECX
00407BB7 |. 8BC1 MOV EAX,ECX ; 4F8B588F*SN1
00407BB9 |. 2BC2 SUB EAX,EDX
00407BBB |. D1E8 SHR EAX,1
00407BBD |. 03C2 ADD EAX,EDX
00407BBF |. 33D2 XOR EDX,EDX
00407BC1 |. C1E8 10 SHR EAX,10
00407BC4 |. F7F6 DIV ESI
00407BC6 |. 895424 34 MOV DWORD PTR SS:[ESP+34],EDX
00407BCA |. B8 5917B7D1 MOV EAX,D1B71759 ; D1B71759*SN1
00407BCF |. F7E1 MUL ECX
00407BD1 |. 8BC2 MOV EAX,EDX
00407BD3 |. 33D2 XOR EDX,EDX
00407BD5 |. C1E8 0D SHR EAX,0D
00407BD8 |. F7F6 DIV ESI
00407BDA |. B8 D34D6210 MOV EAX,10624DD3
00407BDF |. 895424 38 MOV DWORD PTR SS:[ESP+38],EDX
00407BE3 |. F7E1 MUL ECX ; 10624DD3*SN1
00407BE5 |. 8BC2 MOV EAX,EDX
00407BE7 |. 33D2 XOR EDX,EDX
00407BE9 |. C1E8 06 SHR EAX,6
00407BEC |. F7F6 DIV ESI
00407BEE |. B8 1F85EB51 MOV EAX,51EB851F
00407BF3 |. 895424 3C MOV DWORD PTR SS:[ESP+3C],EDX
00407BF7 |. F7E1 MUL ECX ; 51EB851F*SN1
00407BF9 |. 8BC2 MOV EAX,EDX
00407BFB |. 33D2 XOR EDX,EDX
00407BFD |. C1E8 05 SHR EAX,5
00407C00 |. F7F6 DIV ESI
00407C02 |. B8 CDCCCCCC MOV EAX,CCCCCCCD
00407C07 |. 895424 40 MOV DWORD PTR SS:[ESP+40],EDX
00407C0B |. F7E1 MUL ECX ; CCCCCCCD*SN1
00407C0D |. 8BC2 MOV EAX,EDX
00407C0F |. 33D2 XOR EDX,EDX
00407C11 |. C1E8 03 SHR EAX,3
00407C14 |. F7F6 DIV ESI
00407C16 |. 8BC1 MOV EAX,ECX
00407C18 |. 895424 44 MOV DWORD PTR SS:[ESP+44],EDX
00407C1C |. 33D2 XOR EDX,EDX
00407C1E |. F7F6 DIV ESI
---------------------------------------------------------------------------------------
上面的代码就是取出注册码第一段的2,3位和注册码第二段的1,3,4,6,9位,都保存到堆栈
---------------------------------------------------------------------------------------
00407C20 |. 8B4424 3C MOV EAX,DWORD PTR SS:[ESP+3C] ; 0
00407C24 |. 8D3402 LEA ESI,DWORD PTR DS:[EDX+EAX] ; 9
00407C27 |. 8B4424 34 MOV EAX,DWORD PTR SS:[ESP+34] ; 5
00407C2B |. 8B5424 30 MOV EDX,DWORD PTR SS:[ESP+30]
00407C2F |. 03F0 ADD ESI,EAX ; 9+5
00407C31 |. 8B4424 28 MOV EAX,DWORD PTR SS:[ESP+28]
00407C35 |. 03F2 ADD ESI,EDX ; 9+5+4
00407C37 |. 8B5424 24 MOV EDX,DWORD PTR SS:[ESP+24]
00407C3B |. 03F0 ADD ESI,EAX ; 9541
00407C3D |. 03F2 ADD ESI,EDX ; 9+5+4+1+2
00407C3F |. 03F3 ADD ESI,EBX ; 0x13+4
00407C41 |. 03F7 ADD ESI,EDI ; 32=0X1F
00407C43 |. BF 0A000000 MOV EDI,0A
00407C48 |. 8D46 04 LEA EAX,DWORD PTR DS:[ESI+4] ; 36
00407C4B 99 CDQ
---------------------------------------------------------------------------------------
这一段的意思是把取出的几位注册码加起来,假设注册码是123456-SFDL-223456789,注册码第一段
的2,3位和注册码第二段的1,3,4,6,9位加起来的和是0x23=35,note sum.
---------------------------------------------------------------------------------------
00407C4C |. F7FF IDIV EDI ; % A
00407C4E |. 3BD5 CMP EDX,EBP ; 第一段的第五位等于s1=sum % A
00407C50 74 0C JE SHORT sfld.00407C5E ; 相等跳
00407C52 |. 5F POP EDI
00407C53 |. 5E POP ESI
00407C54 |. 5D POP EBP
00407C55 |. 33C0 XOR EAX,EAX
00407C57 |. 5B POP EBX
00407C58 |. 83C4 3C ADD ESP,3C
00407C5B |. C2 0800 RETN 8
00407C5E |> 03F2 ADD ESI,EDX ; sum+sum % A
00407C60 |. BF 0A000000 MOV EDI,0A
00407C65 |. 8D46 07 LEA EAX,DWORD PTR DS:[ESI+7] ; sum+sum % A+7
00407C68 |. 99 CDQ
00407C69 |. F7FF IDIV EDI ; % A
00407C6B |. 3B5424 18 CMP EDX,DWORD PTR SS:[ESP+18] ; 第一段的第三位等于s2=(sum+sum % A+7) % A
00407C6F 74 0C JE SHORT sfld.00407C7D
00407C71 |. 5F POP EDI
00407C72 |. 5E POP ESI
00407C73 |. 5D POP EBP
00407C74 |. 33C0 XOR EAX,EAX
00407C76 |. 5B POP EBX
00407C77 |. 83C4 3C ADD ESP,3C
00407C7A |. C2 0800 RETN 8
00407C7D |> 03F2 ADD ESI,EDX ; 加上上面计算出的余数
00407C7F |. BF 0A000000 MOV EDI,0A
00407C84 |. 8D46 05 LEA EAX,DWORD PTR DS:[ESI+5] ; 再加5
00407C87 |. 99 CDQ
00407C88 |. F7FF IDIV EDI ; % A
00407C8A |. 3B5424 2C CMP EDX,DWORD PTR SS:[ESP+2C] ; 等于第二段的第二位
00407C8E 74 0C JE SHORT sfld.00407C9C
00407C90 |. 5F POP EDI
00407C91 |. 5E POP ESI
00407C92 |. 5D POP EBP
00407C93 |. 33C0 XOR EAX,EAX
00407C95 |. 5B POP EBX
00407C96 |. 83C4 3C ADD ESP,3C
00407C99 |. C2 0800 RETN 8
00407C9C |> 03F2 ADD ESI,EDX ; 加上上面计算出的余数
00407C9E |. BF 0A000000 MOV EDI,0A
00407CA3 |. 8D46 09 LEA EAX,DWORD PTR DS:[ESI+9] ; 再加9
00407CA6 |. 99 CDQ
00407CA7 |. F7FF IDIV EDI ; % A
00407CA9 |. 3B5424 40 CMP EDX,DWORD PTR SS:[ESP+40] ; 等于第二段的第七位
00407CAD 74 0C JE SHORT sfld.00407CBB
00407CAF |. 5F POP EDI
00407CB0 |. 5E POP ESI
00407CB1 |. 5D POP EBP
00407CB2 |. 33C0 XOR EAX,EAX
00407CB4 |. 5B POP EBX
00407CB5 |. 83C4 3C ADD ESP,3C
00407CB8 |. C2 0800 RETN 8
00407CBB |> 03F2 ADD ESI,EDX ; 加上上面计算出的余数
00407CBD |. BF 0A000000 MOV EDI,0A
00407CC2 |. 8D46 03 LEA EAX,DWORD PTR DS:[ESI+3] ; 再加3
00407CC5 |. 99 CDQ
00407CC6 |. F7FF IDIV EDI ; % A
00407CC8 |. 3B5424 44 CMP EDX,DWORD PTR SS:[ESP+44] ; 等于第二段的第八位
00407CCC 74 0C JE SHORT sfld.00407CDA
00407CCE |. 5F POP EDI
00407CCF |. 5E POP ESI
00407CD0 |. 5D POP EBP
00407CD1 |. 33C0 XOR EAX,EAX
00407CD3 |. 5B POP EBX
00407CD4 |. 83C4 3C ADD ESP,3C
00407CD7 |. C2 0800 RETN 8
00407CDA |> 03F2 ADD ESI,EDX ; 加上上面计算出的余数
00407CDC |. BF 0A000000 MOV EDI,0A
00407CE1 |. 8D46 02 LEA EAX,DWORD PTR DS:[ESI+2] ; 再加2
00407CE4 |. 99 CDQ
00407CE5 |. F7FF IDIV EDI ; % A
00407CE7 |. 3B5424 38 CMP EDX,DWORD PTR SS:[ESP+38] ; 等于第二段的第五位
00407CEB 74 0C JE SHORT sfld.00407CF9
00407CED |. 5F POP EDI
00407CEE |. 5E POP ESI
00407CEF |. 5D POP EBP
00407CF0 |. 33C0 XOR EAX,EAX
00407CF2 |. 5B POP EBX
00407CF3 |. 83C4 3C ADD ESP,3C
00407CF6 |. C2 0800 RETN 8
00407CF9 |> 8D4432 08 LEA EAX,DWORD PTR DS:[EDX+ESI+8] ; 加上上面计算出的余数,再加8
00407CFD |. BE 0A000000 MOV ESI,0A
00407D02 |. 99 CDQ
00407D03 |. F7FE IDIV ESI ; % A
00407D05 |. 3B5424 14 CMP EDX,DWORD PTR SS:[ESP+14] ; 等于第一段的第二位
00407D09 |. 74 0C JE SHORT sfld.00407D17
00407D0B |. 5F POP EDI
00407D0C |. 5E POP ESI
00407D0D |. 5D POP EBP
00407D0E |. 33C0 XOR EAX,EAX
00407D10 |. 5B POP EBX
00407D11 |. 83C4 3C ADD ESP,3C
00407D14 |. C2 0800 RETN 8
---------------------------------------------------------------------------------------
这一段的意思是第一段的5,3,2位和第二段的2,7,8,5位要等于注册程序计算出来的值,最后给了一种
找到可用注册码的一种苯的方法
---------------------------------------------------------------------------------------
00407D17 |> 81F9 4DEF3406 CMP ECX,634EF4D
00407D1D |. 75 0C JNZ SHORT sfld.00407D2B
00407D1F |. 5F POP EDI
00407D20 |. 5E POP ESI
00407D21 |. 5D POP EBP
00407D22 |. 33C0 XOR EAX,EAX
00407D24 |. 5B POP EBX
00407D25 |. 83C4 3C ADD ESP,3C
00407D28 |. C2 0800 RETN 8
00407D2B |> 81F9 21BF5C18 CMP ECX,185CBF21
00407D31 |. 75 0C JNZ SHORT sfld.00407D3F
00407D33 |. 5F POP EDI
00407D34 |. 5E POP ESI
00407D35 |. 5D POP EBP
00407D36 |. 33C0 XOR EAX,EAX
00407D38 |. 5B POP EBX
00407D39 |. 83C4 3C ADD ESP,3C
00407D3C |. C2 0800 RETN 8
00407D3F |> 81F9 C830901A CMP ECX,1A9030C8
00407D45 |. 75 0C JNZ SHORT sfld.00407D53
00407D47 |. 5F POP EDI
00407D48 |. 5E POP ESI
00407D49 |. 5D POP EBP
00407D4A |. 33C0 XOR EAX,EAX
00407D4C |. 5B POP EBX
00407D4D |. 83C4 3C ADD ESP,3C
00407D50 |. C2 0800 RETN 8
00407D53 |> 81F9 07B27E1F CMP ECX,1F7EB207
00407D59 |. 75 0C JNZ SHORT sfld.00407D67
00407D5B |. 5F POP EDI
00407D5C |. 5E POP ESI
00407D5D |. 5D POP EBP
00407D5E |. 33C0 XOR EAX,EAX
00407D60 |. 5B POP EBX
00407D61 |. 83C4 3C ADD ESP,3C
00407D64 |. C2 0800 RETN 8
00407D67 |> 81F9 8E0CD127 CMP ECX,27D10C8E
00407D6D |. 75 0C JNZ SHORT sfld.00407D7B
00407D6F |. 5F POP EDI
00407D70 |. 5E POP ESI
00407D71 |. 5D POP EBP
00407D72 |. 33C0 XOR EAX,EAX
00407D74 |. 5B POP EBX
00407D75 |. 83C4 3C ADD ESP,3C
00407D78 |. C2 0800 RETN 8
00407D7B |> 81F9 487D900E CMP ECX,0E907D48
00407D81 |. 75 0C JNZ SHORT sfld.00407D8F
00407D83 |. 5F POP EDI
00407D84 |. 5E POP ESI
00407D85 |. 5D POP EBP
00407D86 |. 33C0 XOR EAX,EAX
00407D88 |. 5B POP EBX
00407D89 |. 83C4 3C ADD ESP,3C
00407D8C |. C2 0800 RETN 8
00407D8F |> 81F9 A6D3B201 CMP ECX,1B2D3A6
00407D95 |. 75 0C JNZ SHORT sfld.00407DA3
00407D97 |. 5F POP EDI
00407D98 |. 5E POP ESI
00407D99 |. 5D POP EBP
00407D9A |. 33C0 XOR EAX,EAX
00407D9C |. 5B POP EBX
00407D9D |. 83C4 3C ADD ESP,3C
00407DA0 |. C2 0800 RETN 8
00407DA3 |> 81F9 F6C5D122 CMP ECX,22D1C5F6
00407DA9 |. 75 0C JNZ SHORT sfld.00407DB7
00407DAB |. 5F POP EDI
00407DAC |. 5E POP ESI
00407DAD |. 5D POP EBP
00407DAE |. 33C0 XOR EAX,EAX
00407DB0 |. 5B POP EBX
00407DB1 |. 83C4 3C ADD ESP,3C
00407DB4 |. C2 0800 RETN 8
00407DB7 |> 81F9 287B9A26 CMP ECX,269A7B28
00407DBD |. 75 0C JNZ SHORT sfld.00407DCB
00407DBF |. 5F POP EDI
00407DC0 |. 5E POP ESI
00407DC1 |. 5D POP EBP
00407DC2 |. 33C0 XOR EAX,EAX
00407DC4 |. 5B POP EBX
00407DC5 |. 83C4 3C ADD ESP,3C
00407DC8 |. C2 0800 RETN 8
00407DCB |> 81F9 05F8970F CMP ECX,0F97F805
00407DD1 |. 75 0C JNZ SHORT sfld.00407DDF
00407DD3 |. 5F POP EDI
00407DD4 |. 5E POP ESI
00407DD5 |. 5D POP EBP
00407DD6 |. 33C0 XOR EAX,EAX
00407DD8 |. 5B POP EBX
00407DD9 |. 83C4 3C ADD ESP,3C
00407DDC |. C2 0800 RETN 8
00407DDF |> 81F9 E95B8800 CMP ECX,885BE9
00407DE5 |. 75 0C JNZ SHORT sfld.00407DF3
00407DE7 |. 5F POP EDI
00407DE8 |. 5E POP ESI
00407DE9 |. 5D POP EBP
00407DEA |. 33C0 XOR EAX,EAX
00407DEC |. 5B POP EBX
00407DED |. 83C4 3C ADD ESP,3C
00407DF0 |. C2 0800 RETN 8
00407DF3 |> 81F9 3C7CBD2E CMP ECX,2EBD7C3C
00407DF9 |. 75 0C JNZ SHORT sfld.00407E07
00407DFB |. 5F POP EDI
00407DFC |. 5E POP ESI
00407DFD |. 5D POP EBP
00407DFE |. 33C0 XOR EAX,EAX
00407E00 |. 5B POP EBX
00407E01 |. 83C4 3C ADD ESP,3C
00407E04 |. C2 0800 RETN 8
00407E07 |> 81F9 38B40D1F CMP ECX,1F0DB438
00407E0D |. 75 0C JNZ SHORT sfld.00407E1B
00407E0F |. 5F POP EDI
00407E10 |. 5E POP ESI
00407E11 |. 5D POP EBP
00407E12 |. 33C0 XOR EAX,EAX
00407E14 |. 5B POP EBX
00407E15 |. 83C4 3C ADD ESP,3C
00407E18 |. C2 0800 RETN 8
00407E1B |> 81F9 3EC13F18 CMP ECX,183FC13E
00407E21 |. 75 0C JNZ SHORT sfld.00407E2F
00407E23 |. 5F POP EDI
00407E24 |. 5E POP ESI
00407E25 |. 5D POP EBP
00407E26 |. 33C0 XOR EAX,EAX
00407E28 |. 5B POP EBX
00407E29 |. 83C4 3C ADD ESP,3C
00407E2C |. C2 0800 RETN 8
00407E2F |> 81F9 ECA0D41B CMP ECX,1BD4A0EC
00407E35 |. 75 0C JNZ SHORT sfld.00407E43
00407E37 |. 5F POP EDI
00407E38 |. 5E POP ESI
00407E39 |. 5D POP EBP
00407E3A |. 33C0 XOR EAX,EAX
00407E3C |. 5B POP EBX
00407E3D |. 83C4 3C ADD ESP,3C
00407E40 |. C2 0800 RETN 8
00407E43 |> 81F9 05843306 CMP ECX,6338405
00407E49 |. 75 0C JNZ SHORT sfld.00407E57
00407E4B |. 5F POP EDI
00407E4C |. 5E POP ESI
00407E4D |. 5D POP EBP
00407E4E |. 33C0 XOR EAX,EAX
00407E50 |. 5B POP EBX
00407E51 |. 83C4 3C ADD ESP,3C
00407E54 |. C2 0800 RETN 8
00407E57 |> 81F9 2D9CB621 CMP ECX,21B69C2D
00407E5D |. 75 0C JNZ SHORT sfld.00407E6B
00407E5F |. 5F POP EDI
00407E60 |. 5E POP ESI
00407E61 |. 5D POP EBP
00407E62 |. 33C0 XOR EAX,EAX
00407E64 |. 5B POP EBX
00407E65 |. 83C4 3C ADD ESP,3C
00407E68 |. C2 0800 RETN 8
00407E6B |> 81F9 9C012D12 CMP ECX,122D019C
00407E71 |. 75 0C JNZ SHORT sfld.00407E7F
00407E73 |. 5F POP EDI
00407E74 |. 5E POP ESI
00407E75 |. 5D POP EBP
00407E76 |. 33C0 XOR EAX,EAX
00407E78 |. 5B POP EBX
00407E79 |. 83C4 3C ADD ESP,3C
00407E7C |. C2 0800 RETN 8
00407E7F |> 81F9 8D42D72F CMP ECX,2FD7428D
00407E85 |. 75 0C JNZ SHORT sfld.00407E93
00407E87 |. 5F POP EDI
00407E88 |. 5E POP ESI
00407E89 |. 5D POP EBP
00407E8A |. 33C0 XOR EAX,EAX
00407E8C |. 5B POP EBX
00407E8D |. 83C4 3C ADD ESP,3C
00407E90 |. C2 0800 RETN 8
00407E93 |> 81F9 205BD034 CMP ECX,34D05B20
00407E99 |. 75 0C JNZ SHORT sfld.00407EA7
00407E9B |. 5F POP EDI
00407E9C |. 5E POP ESI
00407E9D |. 5D POP EBP
00407E9E |. 33C0 XOR EAX,EAX
00407EA0 |. 5B POP EBX
00407EA1 |. 83C4 3C ADD ESP,3C
00407EA4 |. C2 0800 RETN 8
00407EA7 |> 81F9 1BCAD735 CMP ECX,35D7CA1B
00407EAD |. 75 0C JNZ SHORT sfld.00407EBB
00407EAF |. 5F POP EDI
00407EB0 |. 5E POP ESI
00407EB1 |. 5D POP EBP
00407EB2 |. 33C0 XOR EAX,EAX
00407EB4 |. 5B POP EBX
00407EB5 |. 83C4 3C ADD ESP,3C
00407EB8 |. C2 0800 RETN 8
00407EBB |> 81F9 858A9033 CMP ECX,33908A85
00407EC1 |. 75 0C JNZ SHORT sfld.00407ECF
00407EC3 |. 5F POP EDI
00407EC4 |. 5E POP ESI
00407EC5 |. 5D POP EBP
00407EC6 |. 33C0 XOR EAX,EAX
00407EC8 |. 5B POP EBX
00407EC9 |. 83C4 3C ADD ESP,3C
00407ECC |. C2 0800 RETN 8
00407ECF |> 81F9 609D9A1B CMP ECX,1B9A9D60
00407ED5 |. 75 0C JNZ SHORT sfld.00407EE3
00407ED7 |. 5F POP EDI
00407ED8 |. 5E POP ESI
00407ED9 |. 5D POP EBP
00407EDA |. 33C0 XOR EAX,EAX
00407EDC |. 5B POP EBX
00407EDD |. 83C4 3C ADD ESP,3C
00407EE0 |. C2 0800 RETN 8
00407EE3 |> 81F9 677B7B3A CMP ECX,3A7B7B67
00407EE9 |. 75 0C JNZ SHORT sfld.00407EF7
00407EEB |. 5F POP EDI
00407EEC |. 5E POP ESI
00407EED |. 5D POP EBP
00407EEE |. 33C0 XOR EAX,EAX
00407EF0 |. 5B POP EBX
00407EF1 |. 83C4 3C ADD ESP,3C
00407EF4 |. C2 0800 RETN 8
00407EF7 |> 81F9 A87A1C19 CMP ECX,191C7AA8
00407EFD |. 75 0C JNZ SHORT sfld.00407F0B
00407EFF |. 5F POP EDI
00407F00 |. 5E POP ESI
00407F01 |. 5D POP EBP
00407F02 |. 33C0 XOR EAX,EAX
00407F04 |. 5B POP EBX
00407F05 |. 83C4 3C ADD ESP,3C
00407F08 |. C2 0800 RETN 8
00407F0B |> 81F9 20C8082B CMP ECX,2B08C820
00407F11 |. 75 0C JNZ SHORT sfld.00407F1F
00407F13 |. 5F POP EDI
00407F14 |. 5E POP ESI
00407F15 |. 5D POP EBP
00407F16 |. 33C0 XOR EAX,EAX
00407F18 |. 5B POP EBX
00407F19 |. 83C4 3C ADD ESP,3C
00407F1C |. C2 0800 RETN 8
00407F1F |> 81F9 1366950D CMP ECX,0D956613
00407F25 |. 75 0C JNZ SHORT sfld.00407F33
00407F27 |. 5F POP EDI
00407F28 |. 5E POP ESI
00407F29 |. 5D POP EBP
00407F2A |. 33C0 XOR EAX,EAX
00407F2C |. 5B POP EBX
00407F2D |. 83C4 3C ADD ESP,3C
00407F30 |. C2 0800 RETN 8
00407F33 |> 81F9 900B6918 CMP ECX,18690B90
00407F39 |. 75 0C JNZ SHORT sfld.00407F47
00407F3B |. 5F POP EDI
00407F3C |. 5E POP ESI
00407F3D |. 5D POP EBP
00407F3E |. 33C0 XOR EAX,EAX
00407F40 |. 5B POP EBX
00407F41 |. 83C4 3C ADD ESP,3C
00407F44 |. C2 0800 RETN 8
00407F47 |> 81F9 D3512418 CMP ECX,182451D3
00407F4D |. 75 0C JNZ SHORT sfld.00407F5B
00407F4F |. 5F POP EDI
00407F50 |. 5E POP ESI
00407F51 |. 5D POP EBP
00407F52 |. 33C0 XOR EAX,EAX
00407F54 |. 5B POP EBX
00407F55 |. 83C4 3C ADD ESP,3C
00407F58 |. C2 0800 RETN 8
00407F5B |> 81F9 283F3205 CMP ECX,5323F28
00407F61 |. 75 0C JNZ SHORT sfld.00407F6F
00407F63 |. 5F POP EDI
00407F64 |. 5E POP ESI
00407F65 |. 5D POP EBP
00407F66 |. 33C0 XOR EAX,EAX
00407F68 |. 5B POP EBX
00407F69 |. 83C4 3C ADD ESP,3C
00407F6C |. C2 0800 RETN 8
00407F6F |> 81F9 19E0B81C CMP ECX,1CB8E019
00407F75 |. 75 0C JNZ SHORT sfld.00407F83
00407F77 |. 5F POP EDI
00407F78 |. 5E POP ESI
00407F79 |. 5D POP EBP
00407F7A |. 33C0 XOR EAX,EAX
00407F7C |. 5B POP EBX
00407F7D |. 83C4 3C ADD ESP,3C
00407F80 |. C2 0800 RETN 8
00407F83 |> 81F9 1DCAFE0A CMP ECX,0AFECA1D
00407F89 |. 75 0C JNZ SHORT sfld.00407F97
00407F8B |. 5F POP EDI
00407F8C |. 5E POP ESI
00407F8D |. 5D POP EBP
00407F8E |. 33C0 XOR EAX,EAX
00407F90 |. 5B POP EBX
00407F91 |. 83C4 3C ADD ESP,3C
00407F94 |. C2 0800 RETN 8
00407F97 |> 81F9 3DEE4007 CMP ECX,740EE3D
00407F9D |. 75 0C JNZ SHORT sfld.00407FAB
00407F9F |. 5F POP EDI
00407FA0 |. 5E POP ESI
00407FA1 |. 5D POP EBP
00407FA2 |. 33C0 XOR EAX,EAX
00407FA4 |. 5B POP EBX
00407FA5 |. 83C4 3C ADD ESP,3C
00407FA8 |. C2 0800 RETN 8
00407FAB |> 81F9 A47C2030 CMP ECX,30207CA4
00407FB1 |. 75 0C JNZ SHORT sfld.00407FBF
00407FB3 |. 5F POP EDI
00407FB4 |. 5E POP ESI
00407FB5 |. 5D POP EBP
00407FB6 |. 33C0 XOR EAX,EAX
00407FB8 |. 5B POP EBX
00407FB9 |. 83C4 3C ADD ESP,3C
00407FBC |. C2 0800 RETN 8
00407FBF |> 81F9 24BED122 CMP ECX,22D1BE24
00407FC5 |. 75 0C JNZ SHORT sfld.00407FD3
00407FC7 |. 5F POP EDI
00407FC8 |. 5E POP ESI
00407FC9 |. 5D POP EBP
00407FCA |. 33C0 XOR EAX,EAX
00407FCC |. 5B POP EBX
00407FCD |. 83C4 3C ADD ESP,3C
00407FD0 |. C2 0800 RETN 8
00407FD3 |> 81F9 7843FD0A CMP ECX,0AFD4378
00407FD9 |. 75 0C JNZ SHORT sfld.00407FE7
00407FDB |. 5F POP EDI
00407FDC |. 5E POP ESI
00407FDD |. 5D POP EBP
00407FDE |. 33C0 XOR EAX,EAX
00407FE0 |. 5B POP EBX
00407FE1 |. 83C4 3C ADD ESP,3C
00407FE4 |. C2 0800 RETN 8
00407FE7 |> 81F9 D9BCFB0A CMP ECX,0AFBBCD9
00407FED |. 75 0C JNZ SHORT sfld.00407FFB
00407FEF |. 5F POP EDI
00407FF0 |. 5E POP ESI
00407FF1 |. 5D POP EBP
00407FF2 |. 33C0 XOR EAX,EAX
00407FF4 |. 5B POP EBX
00407FF5 |. 83C4 3C ADD ESP,3C
00407FF8 |. C2 0800 RETN 8
00407FFB |> 81F9 C781C639 CMP ECX,39C681C7
00408001 |. 75 0C JNZ SHORT sfld.0040800F
00408003 |. 5F POP EDI
00408004 |. 5E POP ESI
00408005 |. 5D POP EBP
00408006 |. 33C0 XOR EAX,EAX
00408008 |. 5B POP EBX
00408009 |. 83C4 3C ADD ESP,3C
0040800C |. C2 0800 RETN 8
0040800F |> 81F9 3A36FA0A CMP ECX,0AFA363A
00408015 |. 75 0C JNZ SHORT sfld.00408023
00408017 |. 5F POP EDI
00408018 |. 5E POP ESI
00408019 |. 5D POP EBP
0040801A |. 33C0 XOR EAX,EAX
0040801C |. 5B POP EBX
0040801D |. 83C4 3C ADD ESP,3C
00408020 |. C2 0800 RETN 8
00408023 |> 81F9 1F824507 CMP ECX,745821F
00408029 |. 75 0C JNZ SHORT sfld.00408037
0040802B |. 5F POP EDI
0040802C |. 5E POP ESI
0040802D |. 5D POP EBP
0040802E |. 33C0 XOR EAX,EAX
00408030 |. 5B POP EBX
00408031 |. 83C4 3C ADD ESP,3C
00408034 |. C2 0800 RETN 8
00408037 |> 81F9 38EE4007 CMP ECX,740EE38
0040803D |. 75 0C JNZ SHORT sfld.0040804B
0040803F |. 5F POP EDI
00408040 |. 5E POP ESI
00408041 |. 5D POP EBP
00408042 |. 33C0 XOR EAX,EAX
00408044 |. 5B POP EBX
00408045 |. 83C4 3C ADD ESP,3C
00408048 |. C2 0800 RETN 8
---------------------------------------------------------------------------------------
这一段的意思是注册码的第二段不能等于上面的这些值
---------------------------------------------------------------------------------------
0040804B |> 33C0 XOR EAX,EAX
0040804D |. 5F POP EDI
0040804E |. 81F9 C150000B CMP ECX,0B0050C1 ;是否等于0xB0050C1
00408054 |. 5E POP ESI
00408055 |. 5D POP EBP
00408056 |. 5B POP EBX
00408057 0F95C0 SETNE AL ;不相等,AL=1
0040805A |. 83C4 3C ADD ESP,3C
0040805D \. C2 0800 RETN 8
---------------------------------------------------------------------------------------
AL的值代表着注册成功与否,AL=1注册成功
========================================================================================
算法总结:
(1) 注册码共分成三段,中间一段是固定的,SFDL;
(2) 第一段注册码记SN1,第二段注册码记SN2;
(3) SN1的2,3位和SN2的1,3,4,6,9位加起来,%A后要等于SN1[4]
(4) sum=SN1[1]+SN1[2]+SN2[0]+SN2[2]+SN2[3]+SN2[5]+SN2[8]+SN1[4];
(5) SN1[2]等于(sum+sum % A+7) % A;
(6) SN2[1]等于(sum+SN1[2]+5)% A;
(7) SN2[6]等于(sum+SN2[1]+9)% A;
(8) SN2[7]等于(sum+SN2[6]+3)% A;
(9) SN2[4]等于(sum+SN2[7]+2)% A;
(10)SN1[1]等于(sum+SN2[4]+8)% A;
(11) SN2不能等于表中列的那些值;
(12) SN2不能等于0xB0050C1,满足这些条件注册成功。
从这里我们可以看出,还有几位没有参与运算,我们倒推出注册码,假设SN2=0xB0050C1=184570049
第二段的第5位固定了,倒推回去,适当的估计一下和的大小,假设75,SN1[1]就有了,0,再往回推,简
单的数学加减乘除法,方法太苯了,不详细叙述了
--------------------------------------------------------------------------------
【经验总结】
没有想到好的处理方法,惭愧
705462-SFLD-185470049
705462-SFLD-581470049
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2006年06月24日 10:29:58
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!