目的:属技术交流,无其它目的,请不要任意散布或用用商业用途。初学破解,如有不对的地方欢迎批评指出。 工具:softice,w32Dasm,ollydbg,DeDe,Aspackdie1.3 试炼码:
机器码:A21401E1-282 用户名:lordor[BCG] 注册码:654321
来到这里:
00529D98 /. 55 PUSH EBP 00529D99 |. 8BEC MOV EBP,ESP 00529D9B |. 6A 00 PUSH 0 00529D9D |. 6A 00 PUSH 0 00529D9F |. 53 PUSH EBX 00529DA0 |. 8BD8 MOV EBX,EAX 00529DA2 |. 33C0 XOR EAX,EAX 00529DA4 |. 55 PUSH EBP 00529DA5 |. 68 D49E5200 PUSH unpacked.00529ED4 00529DAA |. 64:FF30 PUSH DWORD PTR FS:[EAX] 00529DAD |. 64:8920 MOV DWORD PTR FS:[EAX],ESP 00529DB0 |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4] 00529DB3 |. 8B83 E4020000 MOV EAX,DWORD PTR DS:[EBX+2E4] 00529DB9 |. E8 9A85F0FF CALL unpacked.00432358 ; 取用户名unpa 00529DBE |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] ; 用户名入edxDWOR 00529DC1 |. B8 F0755800 MOV EAX,unpacked.005875F0 00529DC6 |. E8 F19FEDFF CALL unpacked.00403DBC 00529DCB |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8] 00529DCE |. 8B83 E8020000 MOV EAX,DWORD PTR DS:[EBX+2E8] 00529DD4 |. E8 7F85F0FF CALL unpacked.00432358 ; 取注册码unpa 00529DD9 |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8] ; 注册码入edxDWOR 00529DDC |. B8 F8755800 MOV EAX,unpacked.005875F8 00529DE1 |. E8 D69FEDFF CALL unpacked.00403DBC 00529DE6 |. A1 2C985700 MOV EAX,DWORD PTR DS:[57982C] 00529DEB |. 8B15 F0755800 MOV EDX,DWORD PTR DS:[5875F0] ; 用户名入edxDWOR 00529DF1 |. E8 C69FEDFF CALL unpacked.00403DBC 00529DF6 |. FF05 14765800 INC DWORD PTR DS:[587614] 00529DFC |. 833D 14765800>CMP DWORD PTR DS:[587614],3 00529E03 |. 7E 0F JLE SHORT unpacked.00529E14 00529E05 |. C783 34020000>MOV DWORD PTR DS:[EBX+234],2 00529E0F |. E9 A5000000 JMP unpacked.00529EB9 00529E14 |> A1 049C5700 MOV EAX,DWORD PTR DS:[579C04] 00529E19 |. 8B00 MOV EAX,DWORD PTR DS:[EAX] 00529E1B |. E8 982E0000 CALL unpacked.0052CCB8 ; 关键call,F8进入 00529E20 |. 84C0 TEST AL,AL ; 成功标志AL,A 00529E22 |. 74 47 JE SHORT unpacked.00529E6B 00529E22 |. /74 47 JE SHORT unpacked.00529E6B 00529E24 |. |A1 949B5700 MOV EAX,DWORD PTR DS:[579B94] 00529E29 |. |C700 01000000 MOV DWORD PTR DS:[EAX],1 00529E2F |. |A1 B0995700 MOV EAX,DWORD PTR DS:[5799B0] 00529E34 |. |C700 01000000 MOV DWORD PTR DS:[EAX],1 00529E3A |. |8BC3 MOV EAX,EBX 00529E3C |. |E8 83FEFFFF CALL unpacked.00529CC4 00529E41 |. |A1 049C5700 MOV EAX,DWORD PTR DS:[579C04] 00529E46 |. |8B00 MOV EAX,DWORD PTR DS:[EAX] 00529E48 |. |8B80 08030000 MOV EAX,DWORD PTR DS:[EAX+308] 00529E4E |. |33D2 XOR EDX,EDX 00529E50 |. |E8 FF8CF1FF CALL unpacked.00442B54 00529E55 |. |A1 00765800 MOV EAX,DWORD PTR DS:[587600] 00529E5A |. |E8 6DDEF2FF CALL unpacked.00457CCC 00529E5F |. |A1 E8755800 MOV EAX,DWORD PTR DS:[5875E8] 00529E64 |. |E8 DB38F2FF CALL unpacked.0044D744 00529E69 |. |EB 4E JMP SHORT unpacked.00529EB9 00529E6B |> \A1 949B5700 MOV EAX,DWORD PTR DS:[579B94] 00529E70 |. 33D2 XOR EDX,EDX 00529E72 |. 8910 MOV DWORD PTR DS:[EAX],EDX
------------------------------------ 关键call:
0052CCB8 /$ 55 PUSH EBP 0052CCB9 |. 8BEC MOV EBP,ESP 0052CCBB |. B9 05000000 MOV ECX,5 0052CCC0 |> 6A 00 /PUSH 0 0052CCC2 |. 6A 00 |PUSH 0 0052CCC4 |. 49 |DEC ECX 0052CCC5 |.^ 75 F9 \JNZ SHORT unpacked.0052CCC0 0052CCC7 |. 53 PUSH EBX 0052CCC8 |. 56 PUSH ESI 0052CCC9 |. 57 PUSH EDI 0052CCCA |. 33C0 XOR EAX,EAX 0052CCCC |. 55 PUSH EBP 0052CCCD |. 68 3BCF5200 PUSH unpacked.0052CF3B 0052CCD2 |. 64:FF30 PUSH DWORD PTR FS:[EAX] 0052CCD5 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP 0052CCD8 |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10] 0052CCDB |. BA 54CF5200 MOV EDX,unpacked.0052CF54 ; ASCII "sef1sn8y3420dnu2ofps" 0052CCE0 |. E8 1B71EDFF CALL unpacked.00403E00 0052CCE5 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C] 0052CCE8 |. E8 7B70EDFF CALL unpacked.00403D68 0052CCED |. 8B15 309A5700 MOV EDX,DWORD PTR DS:[579A30] ; unpacked.005875F0 0052CCF3 |. 8B12 MOV EDX,DWORD PTR DS:[EDX] ; 用户名入edxDWOR 0052CCF5 |. 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14] 0052CCF8 |. 8B0D 703C1301 MOV ECX,DWORD PTR DS:[1133C70] ; 机器码入ecxDWOR 0052CCFE |. E8 3173EDFF CALL unpacked.00404034 ; 用户名+机器码接起来,形成串A 0052CD03 |. 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14] ; A串入eax 0052CD06 |. E8 DD72EDFF CALL unpacked.00403FE8 ; 串A的长度 0052CD0B |. A1 703C1301 MOV EAX,DWORD PTR DS:[1133C70] ; 机器码入eax 0052CD10 |. E8 D372EDFF CALL unpacked.00403FE8 ; 取机器码长度 0052CD15 |. 8BF0 MOV ESI,EAX 0052CD17 |. 85F6 TEST ESI,ESI 0052CD19 |. 0F8E B0000000 JLE unpacked.0052CDCF 0052CD1F |. BB 01000000 MOV EBX,1 0052CD24 |> 8D45 E8 /LEA EAX,DWORD PTR SS:[EBP-18] 0052CD27 |. 50 |PUSH EAX 0052CD28 |. B9 01000000 |MOV ECX,1 0052CD2D |. 8BD3 |MOV EDX,EBX 0052CD2F |. A1 703C1301 |MOV EAX,DWORD PTR DS:[1133C70] ; 机器码入edx 0052CD34 |. E8 B774EDFF |CALL unpacked.004041F0 ; 从机器码第ebx位开始取1位 004041F0 0052CD39 |. 8B45 E8 |MOV EAX,DWORD PTR SS:[EBP-18] 0052CD3C |. E8 6B74EDFF |CALL unpacked.004041AC 0052CD41 |. 8BF8 |MOV EDI,EAX 0052CD43 |. A1 309A5700 |MOV EAX,DWORD PTR DS:[579A30] 0052CD48 |. 8B00 |MOV EAX,DWORD PTR DS:[EAX] ; 用户名入eax,DWO 0052CD4A |. E8 9972EDFF |CALL unpacked.00403FE8 ; 取长度L u 0052CD4F |. 3BD8 |CMP EBX,EAX ; 与计数器比较X,EAX 0052CD51 |. 7F 23 |JG SHORT unpacked.0052CD76 0052CD53 |. 8D45 E4 |LEA EAX,DWORD PTR SS:[EBP-1C] 0052CD56 |. 50 |PUSH EAX 0052CD57 |. A1 309A5700 |MOV EAX,DWORD PTR DS:[579A30] 0052CD5C |. 8B00 |MOV EAX,DWORD PTR DS:[EAX] ; 用户名入eax,DWO 0052CD5E |. B9 01000000 |MOV ECX,1 0052CD63 |. 8BD3 |MOV EDX,EBX 0052CD65 |. E8 8674EDFF |CALL unpacked.004041F0 ; 从用户名第ebx位开始取1位 0052CD6A |. 8B45 E4 |MOV EAX,DWORD PTR SS:[EBP-1C] 0052CD6D |. E8 3A74EDFF |CALL unpacked.004041AC 0052CD72 |. 8BD0 |MOV EDX,EAX 0052CD74 |. EB 1D |JMP SHORT unpacked.0052CD93 0052CD76 |> 8D45 E0 |LEA EAX,DWORD PTR SS:[EBP-20] 0052CD79 |. 50 |PUSH EAX 0052CD7A |. B9 01000000 |MOV ECX,1 0052CD7F |. 8BD3 |MOV EDX,EBX 0052CD81 |. 8B45 F0 |MOV EAX,DWORD PTR SS:[EBP-10] 0052CD84 |. E8 6774EDFF |CALL unpacked.004041F0 0052CD89 |. 8B45 E0 |MOV EAX,DWORD PTR SS:[EBP-20] 0052CD8C |. E8 1B74EDFF |CALL unpacked.004041AC 0052CD91 |. 8BD0 |MOV EDX,EAX 0052CD93 |> 8A07 |MOV AL,BYTE PTR DS:[EDI] ; 取得的一位机器入al 0052CD95 |. 8A12 |MOV DL,BYTE PTR DS:[EDX] ; 取得的一位用户名dl 0052CD97 |. 3C 41 |CMP AL,41 ; 机器码是否为字母A 0052CD99 |. 75 02 |JNZ SHORT unpacked.0052CD9D 0052CD9B |. B0 66 |MOV AL,66 ; 如是字母A就用f代替al的值 0052CD9D |> 8BF8 |MOV EDI,EAX 0052CD9F |. 81E7 FF000000 |AND EDI,0FF 0052CDA5 |. 33C0 |XOR EAX,EAX 0052CDA7 |. 8AC2 |MOV AL,DL ; 一位用户名码入al 0052CDA9 |. 03F8 |ADD EDI,EAX ; edi与eax相加,即1位机器码与1位用户名相加 0052CDAB |. 03FB |ADD EDI,EBX ; 再加计数器DI,EB 0052CDAD |. 8D4D DC |LEA ECX,DWORD PTR SS:[EBP-24] 0052CDB0 |. BA 02000000 |MOV EDX,2 0052CDB5 |. 8BC7 |MOV EAX,EDI 0052CDB7 |. E8 ECCDEDFF |CALL unpacked.00409BA8 ; 上面计算得到的数转换为字符. 0052CDBC |. 8B55 DC |MOV EDX,DWORD PTR SS:[EBP-24] 0052CDBF |. 8D45 F8 |LEA EAX,DWORD PTR SS:[EBP-8] 0052CDC2 |. E8 2972EDFF |CALL unpacked.00403FF0 ; 接起来形成串B 0052CDC7 |. 43 |INC EBX 0052CDC8 |. 4E |DEC ESI 0052CDC9 |.^ 0F85 55FFFFFF \JNZ unpacked.0052CD24 0052CDCF |> \8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] 0052CDD2 |. E8 1172EDFF CALL unpacked.00403FE8 0052CDD7 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4] 0052CDDA |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8] 0052CDDD |. E8 1E70EDFF CALL unpacked.00403E00 0052CDE2 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] 0052CDE5 |. E8 FE71EDFF CALL unpacked.00403FE8 0052CDEA |. 8BF0 MOV ESI,EAX 0052CDEC |. 85F6 TEST ESI,ESI 0052CDEE |. 0F8E F6000000 JLE unpacked.0052CEEA 0052CDF4 |. BB 01000000 MOV EBX,1 0052CDF9 |> 8B45 FC /MOV EAX,DWORD PTR SS:[EBP-4] ; 串B入eaxX, 0052CDFC |. 807C18 FF 41 |CMP BYTE PTR DS:[EAX+EBX-1],41 ; 是否为ABYT 0052CE01 |. 75 0D |JNZ SHORT unpacked.0052CE10 0052CE03 |. 8D45 FC |LEA EAX,DWORD PTR SS:[EBP-4] 0052CE06 |. E8 AD73EDFF |CALL unpacked.004041B8 0052CE0B |. C64418 FF 4D |MOV BYTE PTR DS:[EAX+EBX-1],4D ; 用M代替A 0052CE10 |> 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4] ; 串B入eaxX, 0052CE13 |. 807C18 FF 31 |CMP BYTE PTR DS:[EAX+EBX-1],31 ; 是否为1BYT 0052CE18 |. 75 0D |JNZ SHORT unpacked.0052CE27 0052CE1A |. 8D45 FC |LEA EAX,DWORD PTR SS:[EBP-4] 0052CE1D |. E8 9673EDFF |CALL unpacked.004041B8 0052CE22 |. C64418 FF 4F |MOV BYTE PTR DS:[EAX+EBX-1],4F 0052CE27 |> 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4] ; 串B入eaxX, 0052CE2A |. 807C18 FF 32 |CMP BYTE PTR DS:[EAX+EBX-1],32 ; 是否为2BYT 0052CE2F |. 75 0D |JNZ SHORT unpacked.0052CE3E 0052CE31 |. 8D45 FC |LEA EAX,DWORD PTR SS:[EBP-4] 0052CE34 |. E8 7F73EDFF |CALL unpacked.004041B8 0052CE39 |. C64418 FF 33 |MOV BYTE PTR DS:[EAX+EBX-1],33 0052CE3E |> 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4] ; 串B入eaxX, 0052CE41 |. 807C18 FF 72 |CMP BYTE PTR DS:[EAX+EBX-1],72 ; 是否为rBYT 0052CE46 |. 75 0D |JNZ SHORT unpacked.0052CE55 0052CE48 |. 8D45 FC |LEA EAX,DWORD PTR SS:[EBP-4] 0052CE4B |. E8 6873EDFF |CALL unpacked.004041B8 0052CE50 |. C64418 FF 37 |MOV BYTE PTR DS:[EAX+EBX-1],37 0052CE55 |> 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4] ; 串B入eaxX, 0052CE58 |. 807C18 FF 34 |CMP BYTE PTR DS:[EAX+EBX-1],34 ; 是否为4 0052CE5D |. 75 0D |JNZ SHORT unpacked.0052CE6C 0052CE5F |. 8D45 FC |LEA EAX,DWORD PTR SS:[EBP-4] 0052CE62 |. E8 5173EDFF |CALL unpacked.004041B8 0052CE67 |. C64418 FF 4A |MOV BYTE PTR DS:[EAX+EBX-1],4A 0052CE6C |> 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4] ; 串B入eaxX, 0052CE6F |. 807C18 FF 35 |CMP BYTE PTR DS:[EAX+EBX-1],35 ; 是否为5 0052CE74 |. 75 0D |JNZ SHORT unpacked.0052CE83 0052CE76 |. 8D45 FC |LEA EAX,DWORD PTR SS:[EBP-4] 0052CE79 |. E8 3A73EDFF |CALL unpacked.004041B8 0052CE7E |. C64418 FF 36 |MOV BYTE PTR DS:[EAX+EBX-1],36 0052CE83 |> 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4] ; 串B入eaxX, 0052CE86 |. 807C18 FF 38 |CMP BYTE PTR DS:[EAX+EBX-1],38 ; 是否为8 0052CE8B |. 75 0D |JNZ SHORT unpacked.0052CE9A 0052CE8D |. 8D45 FC |LEA EAX,DWORD PTR SS:[EBP-4] 0052CE90 |. E8 2373EDFF |CALL unpacked.004041B8 0052CE95 |. C64418 FF 44 |MOV BYTE PTR DS:[EAX+EBX-1],44 0052CE9A |> 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4] ; 串B入eaxX, 0052CE9D |. 807C18 FF 30 |CMP BYTE PTR DS:[EAX+EBX-1],30 ; 是否为0 0052CEA2 |. 75 0D |JNZ SHORT unpacked.0052CEB1 0052CEA4 |. 8D45 FC |LEA EAX,DWORD PTR SS:[EBP-4] 0052CEA7 |. E8 0C73EDFF |CALL unpacked.004041B8 0052CEAC |. C64418 FF 4D |MOV BYTE PTR DS:[EAX+EBX-1],4D 0052CEB1 |> 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4] ; 串B入eaxX, 0052CEB4 |. 807C18 FF 45 |CMP BYTE PTR DS:[EAX+EBX-1],45 ; 是否E B 0052CEB9 |. 75 0D |JNZ SHORT unpacked.0052CEC8 0052CEBB |. 8D45 FC |LEA EAX,DWORD PTR SS:[EBP-4] 0052CEBE |. E8 F572EDFF |CALL unpacked.004041B8 0052CEC3 |. C64418 FF 44 |MOV BYTE PTR DS:[EAX+EBX-1],44 0052CEC8 |> 8D45 D8 |LEA EAX,DWORD PTR SS:[EBP-28] 0052CECB |. 8B55 FC |MOV EDX,DWORD PTR SS:[EBP-4] ; 串B入edxX, 0052CECE |. 8A541A FF |MOV DL,BYTE PTR DS:[EDX+EBX-1] ; 取1位串B入dl 0052CED2 |. E8 3970EDFF |CALL unpacked.00403F10 0052CED7 |. 8B55 D8 |MOV EDX,DWORD PTR SS:[EBP-28] 0052CEDA |. 8D45 F4 |LEA EAX,DWORD PTR SS:[EBP-C] 0052CEDD |. E8 0E71EDFF |CALL unpacked.00403FF0 0052CEE2 |. 43 |INC EBX 0052CEE3 |. 4E |DEC ESI 0052CEE4 |.^ 0F85 0FFFFFFF \JNZ unpacked.0052CDF9 0052CEEA |> \A1 C09A5700 MOV EAX,DWORD PTR DS:[579AC0] 0052CEEF |. 8B00 MOV EAX,DWORD PTR DS:[EAX] ; 注册码入eaxDWOR 0052CEF1 |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] ; 真码入edx 0052CEF4 |. E8 FF71EDFF CALL unpacked.004040F8 ; 关键比较unpa 0052CEF9 |. /75 23 JNZ SHORT unpacked.0052CF1E ; 不等则跳 ------------------------------------------- 总结 : 机器码与用户名运算产生串A,再到串A进行置换得串B,用串B与输入的注册码比较,如相等,则显示注册正确。
注册信息保存在:
[HKEY_USERS\.DEFAULT\Software\Osb\Demo] "Name"="lordor[BCG]" "Pass"="D3M3M69CMJM9M77B79D3MM6D"
机器码:A21401E1-282 用户名:lordor[BCG] 注册码:D3M3M69CMJM9M77B79D3MM6D
|
|
查看所有0条评论>>