老文章档案 · 2003 年

黄河英语通 2.25注册算法分析

天下资讯 · 破解文章 · 2003-10-20 · 作者:lordor[BCG] 人气: · 出处:赢政天下整理收藏)

Mail:lordor@sina.com

目的:属技术交流,无其它目的,请不要任意散布或用用商业用途。初学破解,如有不对的地方欢迎批评指出。

工具:softice,w32Dasm,ollydbg

试炼码:

识别号:HHID558109930

注册号:654321

写教程真的写上瘾,再来篇。

004ABCAC |. 64:8920 MOV DWORD PTR FS:[EAX],ESP

004ABCAF |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]

004ABCB2 |. 8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]

004ABCB8 |. E8 636BF9FF CALL unpacked.00442820 ; 取注册号unpa

004ABCBD |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; 注册号入eaxDWOR

004ABCC0 |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]

004ABCC3 |. E8 3CD4F5FF CALL unpacked.00409104 ; 复制注册号到edx的地址.00409104

004ABCC8 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 注册号入eaxDWOR

004ABCCB |. 50 PUSH EAX

004ABCCC |. 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]

004ABCCF |. 8B83 F8020000 MOV EAX,DWORD PTR DS:[EBX+2F8]

004ABCD5 |. E8 466BF9FF CALL unpacked.00442820 ; 取识别号unpa

004ABCDA |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ; 识别号入eaxDWOR

004ABCDD |. 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]

004ABCE0 |. E8 9BF9FFFF CALL unpacked.004AB680 ; 产生注册真码,进入

004ABCE5 |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] ; 真码入edx,DW

004ABCE8 |. 58 POP EAX ; 出输入注册号到eax

004ABCE9 |. E8 8690F5FF CALL unpacked.00404D74 ; 关键比较unpa

004ABCEE |. 0F85 F4000000 JNZ unpacked.004ABDE8 ; 不等则跳到出错cked.00

004ABCF4 |. 6A 40 PUSH 40 ; /style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL

004ABCF6 |. 68 50BE4A00 PUSH unpacked.004ABE50 ; |Title = "黄河英语通"4ABE5

004ABCFB |. 68 5CBE4A00 PUSH unpacked.004ABE5C ; |Text = "注册成功!"04ABE

004ABD00 |. A1 70F44E00 MOV EAX,DWORD PTR DS:[4EF470] ; |

004ABD05 |. 8B00 MOV EAX,DWORD PTR DS:[EAX] ; |

004ABD07 |. 8B40 30 MOV EAX,DWORD PTR DS:[EAX+30] ; |

004ABD0A |. 50 PUSH EAX ; |hOwner

004ABD0B |. E8 80BDF5FF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA

004ABD10 |. 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]

004ABD13 |. 8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]

--------------------------------

产生真码call

004AB6A3 |. 64:FF30 PUSH DWORD PTR FS:[EAX]

004AB6A6 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP

004AB6A9 |. 8BC7 MOV EAX,EDI

004AB6AB |. E8 B892F5FF CALL unpacked.00404968

004AB6B0 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]

004AB6B3 |. BA 9CB74A00 MOV EDX,unpacked.004AB79C

004AB6B8 |. E8 7B95F5FF CALL unpacked.00404C38 ; 把识别号保存到地址中

004AB6BD |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 识别号所在地址

004AB6C0 |. 0FB630 MOVZX ESI,BYTE PTR DS:[EAX] ; 识别号第一位十六进制值入esi

004AB6C3 |. 66:6BC6 64 IMUL AX,SI,64 ; ax=si*64

004AB6C7 |. 66:8945 F8 MOV WORD PTR SS:[EBP-8],AX ; 保存ax到[ebp-8]

004AB6CB |. 8BC6 MOV EAX,ESI ; eax=esi

004AB6CD |. C1E0 09 SHL EAX,9 ; 左移9位

004AB6D0 |. 66:8945 F6 MOV WORD PTR SS:[EBP-A],AX ; ax保存[ebp-a]

004AB6D4 |. B3 01 MOV BL,1 ; 计数器初始化为1

004AB6D6 |> 8B45 FC /MOV EAX,DWORD PTR SS:[EBP-4] ; 识别号所在地址,入eax

004AB6D9 |. E8 5295F5FF |CALL unpacked.00404C30 ; 取长度

004AB6DE |. 50 |PUSH EAX

004AB6DF |. 33C0 |XOR EAX,EAX

004AB6E1 |. 8AC3 |MOV AL,BL ; 计数器入al

004AB6E3 |. 5A |POP EDX

004AB6E4 |. 8BCA |MOV ECX,EDX ; 识别号长度入ecx

004AB6E6 |. 99 |CDQ

004AB6E7 |. F7F9 |IDIV ECX ; 此即为计数器取识别号长度的模数

004AB6E9 |. 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4] ; 识别号所在地址,入eax

004AB6EC |. 8A0410 |MOV AL,BYTE PTR DS:[EAX+EDX] ; 取第bl(经过上面模数运算)位识别号。

004AB6EF |. 0FB7D6 |MOVZX EDX,SI ; edx=si

004AB6F2 |. C1EA 08 |SHR EDX,8 ; edx 右移8位

004AB6F5 |. 32C2 |XOR AL,DL ; al与dl 异或

004AB6F7 |. 33D2 |XOR EDX,EDX

004AB6F9 |. 8AD3 |MOV DL,BL ; 计数器入dl

004AB6FB |. B9 A8B74A00 |MOV ECX,unpacked.004AB7A8 ; ASCII "Qwert yuiop asdfg hjkl zxcvbnm"

004AB700 |. 324411 FF |XOR AL,BYTE PTR DS:[ECX+EDX-1] ; 取第bl位字符串

004AB704 |. 50 |PUSH EAX

004AB705 |. 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4]

004AB708 |. E8 2395F5FF |CALL unpacked.00404C30 ; 取识别号长度

004AB70D |. 5A |POP EDX ; 异或值入edx

004AB70E |. 02D0 |ADD DL,AL ; 与位数相加

004AB710 |. 8855 FB |MOV BYTE PTR SS:[EBP-5],DL ; 保存到[ebp-5]

004AB713 |. 33C0 |XOR EAX,EAX

004AB715 |. 8A45 FB |MOV AL,BYTE PTR SS:[EBP-5]

004AB718 |. B9 23000000 |MOV ECX,23 ; 23入ecx

004AB71D |. 99 |CDQ

004AB71E |. F7F9 |IDIV ECX

004AB720 |. 42 |INC EDX ; 余数加1

004AB721 |. 8855 FB |MOV BYTE PTR SS:[EBP-5],DL ; 保存到[ebp-5]

004AB724 |. 8D45 F0 |LEA EAX,DWORD PTR SS:[EBP-10]

004AB727 |. 33D2 |XOR EDX,EDX

004AB729 |. 8A55 FB |MOV DL,BYTE PTR SS:[EBP-5]

004AB72C |. B9 D0B74A00 |MOV ECX,unpacked.004AB7D0 ; ASCII "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"

004AB731 |. 8A5411 FF |MOV DL,BYTE PTR DS:[ECX+EDX-1] ; 查密码表,取第dl位

004AB735 |. E8 0E94F5FF |CALL unpacked.00404B48 ; 清空密码表

004AB73A |. 8B55 F0 |MOV EDX,DWORD PTR SS:[EBP-10] ; 取得的一位十六进制值入edx

004AB73D |. 8BC7 |MOV EAX,EDI

004AB73F |. E8 F494F5FF |CALL unpacked.00404C38 ; 保存

004AB744 |. 33C0 |XOR EAX,EAX

004AB746 |. 8AC3 |MOV AL,BL

004AB748 |. 8B17 |MOV EDX,DWORD PTR DS:[EDI]

004AB74A |. 0FB64402 FF |MOVZX EAX,BYTE PTR DS:[EDX+EAX-1] ; 取得的一位十六进制入eax

004AB74F |. 66:03F0 |ADD SI,AX ; 与识别号第bl位相加

004AB752 |. 66:0FAF75 F8 |IMUL SI,WORD PTR SS:[EBP-8] ; 再乘以[ebp-8]处的值

004AB757 |. 66:0375 F6 |ADD SI,WORD PTR SS:[EBP-A] ; 再加上[ebp-a]处值

004AB75B |. 43 |INC EBX ; ebx加1

004AB75C |. 80FB 1F |CMP BL,1F ; 与31是否相等

004AB75F |.^ 0F85 71FFFFFF \JNZ unpacked.004AB6D6

004AB765 |. 33C0 XOR EAX,EAX

004AB767 |. 5A POP EDX

004AB768 |. 59 POP ECX

004AB769 |. 59 POP ECX

004AB76A |. 64:8910 MOV DWORD PTR FS:[EAX],EDX

004AB76D |. 68 8AB74A00 PUSH unpacked.004AB78A

004AB772 |> 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]

004AB775 |. E8 EE91F5FF CALL unpacked.00404968

------------------------------------

总结:

字符串s1=Qwert yuiop asdfg hjkl zxcvbnm

字符串s2=ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789

取第1位识别号十六进制48(H),乘64(H)得数A=1c20(H),左移9位得数B=9000(H)。然后开始进行31次循环,得到30位注册号:

int Y=第1位识别号十六进制48(H);

for(int i=1;i<31;i++)

{

取识别号的长度len;

求i%len的模数X;

取第X位的识别号十六进制值;

Y右移8位得数C;

第X位的识别号十六进制值与C异或得数D;

取字符串s1第i位十六进制值与第X位的识别号十六进制值异或,得E值;

E值与识别号的长度len相加,得数F;

求F%35模数,模数加1,得数G;

取字符串s2第G位十六进制值,此即为第i位注册号;

Y=Y+字符串s2第G位十六进制值;

Y=Y*数A;

Y=Y+B;

}

识别号:HHID558109930

注册号:E5W799BWESP8CFFF7GKDH4B6JW3L8L

(出处:赢政天下整理收藏)

相关资讯:

·语音界面2.0算法分析及注册机源码!

·侠客系统修改器1.21破解手记--算法分析

·中文拨号上网计时计费器 V4.12注册算法分析

·ClockWise 3.22e注册码算法分析

·CoolClock V1.02注册算法分析

·Directory Scanner v1.5 注册算法分析

·Disk Chief 1.2 简单注册算法分析

·EffeTech HTTP Sniffer 3.2注册算法分析

·eLib2.01算法分析

·EZ MP3 Recorder 1.15 注册算法分析

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1998-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史