软件介绍:
相当值得推荐的压缩程序,除了一般压缩与解压缩的功能外,它并可设立密码及分片压缩功能,且支持鼠标右键的快显功能、可立即压缩与解压缩或制成自动解压缩文件、功能比起WinZip、丝毫不逊色。支持ZIP、RAR、CAB、ARJ、LHA、ACE、ARC、TAR、GZ、ZOO、XXE、UUE等格式。
下载地址:http://soft.563.cn/soft/639.html
破解工具:ollydbg1.09,W32Dasm黄金版
用W32Dasm查找字符串的过程我就不说了。大家都知道。
005F8EE8 /. 55 PUSH EBP //断在这里。
005F8EE9 |. 8BEC MOV EBP,ESP
005F8EEB |. 6A 00 PUSH 0
005F8EED |. 6A 00 PUSH 0
005F8EEF |. 53 PUSH EBX
005F8EF0 |. 56 PUSH ESI
005F8EF1 |. 8BD8 MOV EBX,EAX
005F8EF3 |. 33C0 XOR EAX,EAX
005F8EF5 |. 55 PUSH EBP
005F8EF6 |. 68 E5905F00 PUSH POWERARC.005F90E5
005F8EFB |. 64:FF30 PUSH DWORD PTR FS:[EAX]
005F8EFE |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
005F8F01 |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
005F8F04 |. 8B83 F0020000 MOV EAX,DWORD PTR DS:[EBX+2F0]
005F8F0A |. E8 15CEE3FF CALL POWERARC.00435D24
005F8F0F |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
005F8F12 |. 8B83 F4020000 MOV EAX,DWORD PTR DS:[EBX+2F4]
005F8F18 |. E8 07CEE3FF CALL POWERARC.00435D24
005F8F1D |. A1 00EC6900 MOV EAX,DWORD PTR DS:[69EC00]
005F8F22 |. 8038 00 CMP BYTE PTR DS:[EAX],0
005F8F25 |. 74 37 JE SHORT POWERARC.005F8F5E
005F8F27 |. A1 C0EB6900 MOV EAX,DWORD PTR DS:[69EBC0]
005F8F2C |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
005F8F2E |. E8 51BCE0FF CALL POWERARC.00404B84
005F8F33 |. 8BF0 MOV ESI,EAX
005F8F35 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
005F8F38 |. E8 47BCE0FF CALL POWERARC.00404B84
005F8F3D |. 3BF0 CMP ESI,EAX
005F8F3F |. 75 1D JNZ SHORT POWERARC.005F8F5E
005F8F41 |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
005F8F44 |. B8 FC905F00 MOV EAX,POWERARC.005F90FC
005F8F49 |. E8 22BFE0FF CALL POWERARC.00404E70
005F8F4E |. 85C0 TEST EAX,EAX
005F8F50 |. 7E 0C JLE SHORT POWERARC.005F8F5E
005F8F52 |. 8BC3 MOV EAX,EBX
005F8F54 |. E8 3F8EE5FF CALL POWERARC.00451D98
005F8F59 |. E9 6C010000 JMP POWERARC.005F90CA
005F8F5E |> 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
005F8F61 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005F8F64 |. E8 07FFFFFF CALL POWERARC.005F8E70 //关键call,进入。
005F8F69 |. 84C0 TEST AL,AL
005F8F6B |. 0F85 9D000000 JNZ POWERARC.005F900E
005F8F71 |. FE05 40F3BE00 INC BYTE PTR DS:[BEF340]
===========================================================================================
===========================================================================================
进入005F8F64 处的关键call处后,代码如下:
005F8E70 /$ 55 PUSH EBP
005F8E71 |. 8BEC MOV EBP,ESP
005F8E73 |. 83C4 F4 ADD ESP,-0C
005F8E76 |. 53 PUSH EBX
005F8E77 |. 33C9 XOR ECX,ECX
005F8E79 |. 894D F4 MOV DWORD PTR SS:[EBP-C],ECX
005F8E7C |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
005F8E7F |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
005F8E82 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005F8E85 |. E8 AEBEE0FF CALL POWERARC.00404D38 ; guanjian
005F8E8A |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
005F8E8D |. E8 A6BEE0FF CALL POWERARC.00404D38
005F8E92 |. 33C0 XOR EAX,EAX
005F8E94 |. 55 PUSH EBP
005F8E95 |. 68 D98E5F00 PUSH POWERARC.005F8ED9
005F8E9A |. 64:FF30 PUSH DWORD PTR FS:[EAX]
005F8E9D |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
005F8EA0 |. 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
005F8EA3 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005F8EA6 |. E8 95650500 CALL POWERARC.0064F440 //关键call,进入。
005F8EAB |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]
005F8EAE |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
======================================================================
======================================================================
进入005F8EA6处的关键call后,代码如下:
0064F440 /$ 55 PUSH EBP
0064F441 |. 8BEC MOV EBP,ESP
0064F443 |. 81C4 CCFDFFFF ADD ESP,-234
0064F449 |. 53 PUSH EBX
0064F44A |. 56 PUSH ESI
0064F44B |. 57 PUSH EDI
0064F44C |. 33C9 XOR ECX,ECX //ecx清零。
0064F44E |. 898D D0FDFFFF MOV DWORD PTR SS:[EBP-230],ECX
0064F454 |. 898D CCFDFFFF MOV DWORD PTR SS:[EBP-234],ECX
0064F45A |. 898D DCFDFFFF MOV DWORD PTR SS:[EBP-224],ECX
0064F460 |. 898D D8FDFFFF MOV DWORD PTR SS:[EBP-228],ECX
0064F466 |. 898D E0FDFFFF MOV DWORD PTR SS:[EBP-220],ECX
0064F46C |. 894D F0 MOV DWORD PTR SS:[EBP-10],ECX //以上是一系列的清零操作。
0064F46F |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
0064F472 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
0064F475 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] //[ebp-4]=zddddz送eax。
0064F478 |. E8 BB58DBFF CALL POWERARC.00404D38 //测试用户名是否为零。
0064F47D |. 33C0 XOR EAX,EAX //eax 清零。
0064F47F |. 55 PUSH EBP
0064F480 |. 68 8FF66400 PUSH POWERARC.0064F68F
0064F485 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
0064F488 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
0064F48B |. BE A0F66400 MOV ESI,POWERARC.0064F6A0 // ASCII 0B,"IP-POWERARC" 关键,后面计算用。
0064F490 |. 8DBD ECFEFFFF LEA EDI,DWORD PTR SS:[EBP-114]
0064F496 |. A5 MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ES>
0064F497 |. A5 MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ES>
0064F498 |. A5 MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ES>
0064F499 |. 8D85 ECFDFFFF LEA EAX,DWORD PTR SS:[EBP-214]
0064F49F |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] //[ebp-4]=zddddz送edx。
0064F4A2 |. B9 FF000000 MOV ECX,0FF //0FF(十六进制11111111)送ecx。
0064F4A7 |. E8 B456DBFF CALL POWERARC.00404B60 //此call未分析。好象没有什么大用处。
0064F4AC |. 33C0 XOR EAX,EAX //eax清零。
0064F4AE |. 8A85 ECFEFFFF MOV AL,BYTE PTR SS:[EBP-114]
0064F4B4 |. 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX //eax=0送[ebp-c]。
0064F4B7 |. 33FF XOR EDI,EDI //edi清零。
0064F4B9 |. BE 03140000 MOV ESI,1403 //1403送esi。
0064F4BE |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
0064F4C1 |. 50 PUSH EAX
0064F4C2 |. 89B5 E4FDFFFF MOV DWORD PTR SS:[EBP-21C],ESI //esi=1403送[ebp-21c]。
0064F4C8 |. C685 E8FDFFFF >MOV BYTE PTR SS:[EBP-218],0 //[ebp-218]置零。
0064F4CF |. 8D95 E4FDFFFF LEA EDX,DWORD PTR SS:[EBP-21C] //[ebp-21c]=1403送edx。
0064F4D5 |. 33C9 XOR ECX,ECX //eca清零。
0064F4D7 |. B8 B4F66400 MOV EAX,POWERARC.0064F6B4 //
0064F4DC |. E8 77D0DBFF CALL POWERARC.0040C558
0064F4E1 |. 33C0 XOR EAX,EAX //eax清零。
0064F4E3 |. 8A85 ECFDFFFF MOV AL,BYTE PTR SS:[EBP-214] //用户名长度送eax。
0064F4E9 |. 85C0 TEST EAX,EAX //测试长度是否为零。
0064F4EB |. 7E 6B JLE SHORT POWERARC.0064F558 //为零则跳。条就over。(未验证。)
0064F4ED |. 8945 EC MOV DWORD PTR SS:[EBP-14],EAX //eax=6送[ebp-14]。
0064F4F0 |. 8D9D EDFDFFFF LEA EBX,DWORD PTR SS:[EBP-213] //[ebp-213]=zddddz送ebx。
===============================================================================================
以下是计算注册码的核心地区,所加注释均以第一次循环为准。
===============================================================================================
0064F4F6 |> 33C0 /XOR EAX,EAX //eax清零。
0064F4F8 |. 8A03 |MOV AL,BYTE PTR DS:[EBX] //ebx=zddddz按字节依次送入al。
0064F4FA |. 03C6 |ADD EAX,ESI //第一位‘z’=7A与esi=1403相加。结果147D送eax。
0064F4FC |. B9 FF000000 |MOV ECX,0FF //ecx=0FF(十六进制11111111)送ecx。
0064F501 |. 99 |CDQ //eax符号扩展到edx。
0064F502 |. F7F9 |IDIV ECX //eax/ecx结果14送eax。
0064F504 |. 8BF2 |MOV ESI,EDX edx=91送esi。
0064F506 |. 3B7D F4 |CMP EDI,DWORD PTR SS:[EBP-C]
0064F509 |. 7D 03 |JGE SHORT POWERARC.0064F50E
0064F50B |. 47 |INC EDI //edi=2。
0064F50C |. EB 05 |JMP SHORT POWERARC.0064F513
0064F50E |> BF 01000000 |MOV EDI,1
0064F513 |> 33C0 |XOR EAX,EAX //eax清零。
0064F515 |. 8A843D ECFEFFF>|MOV AL,BYTE PTR SS:[EBP+EDI-114] //‘i’=49送al。这里“IP-POWERARC”逐位送入al。与esi异或。
0064F51C |. 33F0 |XOR ESI,EAX //(esi=91)xor(eax=49)=D8送esi。
0064F51E |. 8D85 E0FDFFFF |LEA EAX,DWORD PTR SS:[EBP-220]
0064F524 |. 50 |PUSH EAX
0064F525 |. 89B5 E4FDFFFF |MOV DWORD PTR SS:[EBP-21C],ESI //D8送[ebp-21c]
0064F52B |. C685 E8FDFFFF >|MOV BYTE PTR SS:[EBP-218],0
0064F532 |. 8D95 E4FDFFFF |LEA EDX,DWORD PTR SS:[EBP-21C] //D8送edx。
0064F538 |. 33C9 |XOR ECX,ECX //ecx清零。
0064F53A |. B8 B4F66400 |MOV EAX,POWERARC.0064F6B4
0064F53F |. E8 14D0DBFF |CALL POWERARC.0040C558
0064F544 |. 8B95 E0FDFFFF |MOV EDX,DWORD PTR SS:[EBP-220] //D8送edx。
0064F54A |. 8D45 F0 |LEA EAX,DWORD PTR SS:[EBP-10]
0064F54D |. E8 3A56DBFF |CALL POWERARC.00404B8C
0064F552 |. 43 |INC EBX //ebx加1。
0064F553 |. FF4D EC |DEC DWORD PTR SS:[EBP-14] //用户名长度减1。
0064F556 |.^75 9E JNZ SHORT POWERARC.0064F4F6 //长度不为零则向前跳。继续循环。
0064F558 |> 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] 把1403与每次esi中的结果连接起来 = 1403D86DF31DA02
0064F55B |. E8 2456DBFF CALL POWERARC.00404B84
0064F560 |. 8BF0 MOV ESI,EAX
0064F562 |. 85F6 TEST ESI,ESI //esi清零。
0064F564 |. 79 03 JNS SHORT POWERARC.0064F569
0064F566 |. 83C6 03 ADD ESI,3
0064F569 |> C1FE 02 SAR ESI,2 //esi算术右移两位。
0064F56C |. C685 ECFDFFFF >MOV BYTE PTR SS:[EBP-214],0 //[ebp-214]置1。
0064F573 |. BB 01000000 MOV EBX,1 //ebx置1。
0064F578 |> 8D85 DCFDFFFF /LEA EAX,DWORD PTR SS:[EBP-224] //
0064F57E |. 8D95 ECFDFFFF |LEA EDX,DWORD PTR SS:[EBP-214]
0064F584 |. E8 9F55DBFF |CALL POWERARC.00404B28
0064F589 |. 8D85 DCFDFFFF |LEA EAX,DWORD PTR SS:[EBP-224]
0064F58F |. 50 |PUSH EAX
0064F590 |. 8D85 D4FDFFFF |LEA EAX,DWORD PTR SS:[EBP-22C]
0064F596 |. 8BFB |MOV EDI,EBX //ebx=1==>esi=6。
0064F598 |. 0FAFFE |IMUL EDI,ESI //edi*esi=1*4=4。
0064F59B |. 8B55 F0 |MOV EDX,DWORD PTR SS:[EBP-10] //1403D86DFC31DA02==>edx。
0064F59E |. 8A543A FF |MOV DL,BYTE PTR DS:[EDX+EDI-1] //取1403D86DFC31DA02的第四位3==>dl。
0064F5A2 |. 8850 01 |MOV BYTE PTR DS:[EAX+1],DL ‘3’=33==>[eax+1]。
0064F5A5 |. C600 01 |MOV BYTE PTR DS:[EAX],1 //1==>eax。
0064F5A8 |. 8D95 D4FDFFFF |LEA EDX,DWORD PTR SS:[EBP-22C]
0064F5AE |. 8D85 D8FDFFFF |LEA EAX,DWORD PTR SS:[EBP-228]
0064F5B4 |. E8 6F55DBFF |CALL POWERARC.00404B28
0064F5B9 |. 8B95 D8FDFFFF |MOV EDX,DWORD PTR SS:[EBP-228]
0064F5BF |. 58 |POP EAX
0064F5C0 |. E8 C755DBFF |CALL POWERARC.00404B8C
0064F5C5 |. 8B95 DCFDFFFF |MOV EDX,DWORD PTR SS:[EBP-224]
0064F5CB |. 8D85 ECFDFFFF |LEA EAX,DWORD PTR SS:[EBP-214]
0064F5D1 |. B9 FF000000 |MOV ECX,0FF //0FF==>ecx。
0064F5D6 |. E8 8555DBFF |CALL POWERARC.00404B60
0064F5DB |. 8D85 D0FDFFFF |LEA EAX,DWORD PTR SS:[EBP-230]
0064F5E1 |. 8D95 ECFDFFFF |LEA EDX,DWORD PTR SS:[EBP-214] //3ddddz==>edx。
0064F5E7 |. E8 3C55DBFF |CALL POWERARC.00404B28
0064F5EC |. 8D85 D0FDFFFF |LEA EAX,DWORD PTR SS:[EBP-230]
0064F5F2 |. 50 |PUSH EAX
0064F5F3 |. 8D85 D4FDFFFF |LEA EAX,DWORD PTR SS:[EBP-22C]
0064F5F9 |. 8B55 F0 |MOV EDX,DWORD PTR SS:[EBP-10] //1403D86DFC31DA02==>edx。
0064F5FC |. 8A543A FE |MOV DL,BYTE PTR DS:[EDX+EDI-2] //取1403D86DFC31DA02第三位零==>dl。
0064F600 |. 8850 01 |MOV BYTE PTR DS:[EAX+1],DL //‘0’=30==>[eax+1]。
0064F603 |. C600 01 |MOV BYTE PTR DS:[EAX],1 //eax置1。
0064F606 |. 8D95 D4FDFFFF |LEA EDX,DWORD PTR SS:[EBP-22C]
0064F60C |. 8D85 CCFDFFFF |LEA EAX,DWORD PTR SS:[EBP-234]
0064F612 |. E8 1155DBFF |CALL POWERARC.00404B28
0064F617 |. 8B95 CCFDFFFF |MOV EDX,DWORD PTR SS:[EBP-234]
0064F61D |. 58 |POP EAX
0064F61E |. E8 6955DBFF |CALL POWERARC.00404B8C
0064F623 |. 8B95 D0FDFFFF |MOV EDX,DWORD PTR SS:[EBP-230]
0064F629 |. 8D85 ECFDFFFF |LEA EAX,DWORD PTR SS:[EBP-214]
0064F62F |. B9 FF000000 |MOV ECX,0FF
0064F634 |. E8 2755DBFF |CALL POWERARC.00404B60
0064F639 |. 43 |INC EBX //ebx加1。
0064F63A |. 83FB 05 |CMP EBX,5
0064F63D |.^0F85 35FFFFFF JNZ POWERARC.0064F578 //第二次循环则取8,7两位,第三次取12,11两位。最后取16,15两位。
0064F643 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
0064F646 |. 8D95 ECFDFFFF LEA EDX,DWORD PTR SS:[EBP-214] //30D61320==>edx。//呵呵,这个就是真正的注册码了,可以注册了
0064F64C |. E8 D754DBFF CALL POWERARC.00404B28
0064F651 |. 33C0 XOR EAX,EAX
0064F653 |. 5A POP EDX
0064F654 |. 59 POP ECX
0064F655 |. 59 POP ECX
0064F656 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
0064F659 |. 68 96F66400 PUSH POWERARC.0064F696
0064F65E |> 8D85 CCFDFFFF LEA EAX,DWORD PTR SS:[EBP-234]
0064F664 |. BA 02000000 MOV EDX,2
0064F669 |. E8 8252DBFF CALL POWERARC.004048F0
0064F66E |. 8D85 D8FDFFFF LEA EAX,DWORD PTR SS:[EBP-228]
0064F674 |. BA 03000000 MOV EDX,3
0064F679 |. E8 7252DBFF CALL POWERARC.004048F0
0064F67E |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
0064F681 |. E8 4652DBFF CALL POWERARC.004048CC
0064F686 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
0064F689 |. E8 3E52DBFF CALL POWERARC.004048CC
0064F68E . C3 RETN
0064F68F .^E9 304BDBFF JMP POWERARC.004041C4
0064F694 .^EB C8 JMP SHORT POWERARC.0064F65E
0064F696 . 5F POP EDI
0064F697 . 5E POP ESI
0064F698 . 5B POP EBX
0064F699 . 8BE5 MOV ESP,EBP
0064F69B . 5D POP EBP
0064F69C . C3 RETN
=================================================================================================================
=================================================================================================================
一个可用的注册码
用户名:zddddz
注册码;30D61320
试试吧。