记得学习破解时,第一次成功看到注册码而注册成功的就是这个软件,现在出了2.01版,CrackABC给我这最新版本之后,就再次对他进行了一次分析,这一次就分析一下它的注册码的生成过程吧。
0040640F MOV ECX,ESI 00406411 CALL FREECELL.0044143E 00406416 MOV DWORD PTR SS:[ESP+F4],EAX 0040641D LEA ECX,DWORD PTR SS:[ESP+14] 00406421 CALL FREECELL.00431955 <---------进入“注册”窗口 00406426 CMP EAX,1 <-------有没有点击“确定”按钮,1为确定 00406429 JNZ FREECELL.004064F0 0040642F MOV AL,BYTE PTR DS:[ESI+C1] 00406435 TEST AL,AL 00406437 JNZ FREECELL.004064F0 0040643D LEA ECX,DWORD PTR SS:[ESP+EC] 00406444 PUSH ECX 00406445 LEA ECX,DWORD PTR SS:[ESP+10] 00406449 CALL FREECELL.0043550A 0040644E MOV EDI,DWORD PTR SS:[ESP+F4] 00406455 PUSH ECX 00406456 LEA EDX,DWORD PTR SS:[ESP+10] 0040645A MOV ECX,ESP 0040645C MOV DWORD PTR SS:[ESP+14],ESP 00406460 PUSH EDX 00406461 MOV BYTE PTR SS:[ESP+108],2 00406469 CALL FREECELL.0043550A 0040646E PUSH EBP <--------EBP中为系统信息码的十六进制值,但是注册码生成过程中没有用到它。 0040646F CALL FREECELL.00405DB0 <---------此CALL为计算注册码的地方。跟入可分析注册码生成过程。 00406474 ADD ESP,8 00406477 CMP EAX,EDI <------------比较,EAX为真注册码,EDI为输入的注册码(输入值的十六进制) 00406479 JNZ SHORT FREECELL.004064DF <----------不相等,则跳过。相等时,写入注册表,同时显示注册成功对话框。 0040647B PUSH 0 ; /Arg3 = 00000000 0040647D PUSH 0 ; Arg2 = 00000000 0040647F PUSH FREECELL.0045428C ; Arg1 = 0045428C 00406484 CALL FREECELL.0043849A ; \FREECELL.0043849A 00406489 MOV EAX,DWORD PTR SS:[ESP+C] 0040648D MOV ECX,ESI 0040648F PUSH EAX ; /Arg3 00406490 PUSH FREECELL.004541B0 ; Arg2 = 004541B0 ASCII "UserName" 00406495 PUSH FREECELL.00454158 ; Arg1 = 00454158 ASCII "Options"
上一篇:卸载精灵3.2算法
下一篇:《穷和麻将》共享版2.03说明 算法分析
|