рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдЖрдЬ рдореИрдВ рдХреНрд╡рд┐рдХ рдкрд╛рд╕рд╡рд░реНрдб рд░рд┐рдХрд╡рд░реА рдкреНрд░реЛ 1.7.1 рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рдЕрдзреНрдпрдпрди рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬреЛ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдПрдХ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдЙрджреНрджреЗрд╢реНрдп: рдХреНрд╡рд┐рдХ рдкрд╛рд╕рд╡рд░реНрдб рд░рд┐рдХрд╡рд░реА рдкреНрд░реЛ 1.7.1 (www.passdecrypt.ru)
рд╕рдВрд░рдХреНрд╖рдг: HWID + MD5
рдЯреВрд▓реНрд╕: рдбрд╛рдИ 0.65 + KANAL 2.92 рдкреНрд▓рдЧрдЗрди, OllyDbg 1.10 (рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ Olly рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) + mapimp рдкреНрд▓рдЧрдЗрди (tport.org рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), IDR (рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдбреЗрд▓реНрдлреА рд░рд┐рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░), рдХреАрдЬреЗрдирд░ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ 1.7, рдмреЛрд░рд▓реИрдВрдб рдбреЗрд▓реНрдлреА 7 (рд▓реЗрдЦрди рдХреАрдЬрди рдХреЗ рд▓рд┐рдП)ред
"рд░реЛрдЧреА рдкрд░реАрдХреНрд╖рд╛" рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

рдХрд╛рд░реНрдпрдХреНрд░рдо рдмреЛрд░рд▓реИрдВрдб рдбреЗрд▓реНрдлреА [рдХреНрд░рд┐рдпрд╛: 2006] рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕реНрдХрд▓, рдЗрд╕рд▓рд┐рдП рдУрд▓реА рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдЪрд┐рддреНрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдФрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рддреБрд░рдВрдд рдЖрдИрдбреАрдЖрд░ рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВред
рдХрдирд╛рд▓ рдкреНрд▓рдЧрдЗрди рдХреЛ рдХрдИ рдХреНрд░рд┐рдкреНрдЯреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдорд┐рд▓рддреЗ рд╣реИрдВ:

рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдПрдХ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд┐рдбрд╝рдХреА рд╕реЗ рдмрдзрд╛рдИ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдкрдВрдЬреАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдФрд░ рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред рд╣рдо рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


"рд░рдЬрд┐рд╕реНрдЯрд░" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:

рдкрдВрдЬреАрдХрд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдирд╛рдо рдФрд░ рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрднрд╡рддрдГ рд╕рд┐рд╕реНрдЯрдо рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (рдЗрд╕рдХреЗ рдмрд╛рдж HWID) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рднреА рдкрдВрдЬреАрдХрд░рдг рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░реЗрдВ:
рдирд╛рдо: ds@mail.ru
рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ: abcdefghigklmnop
рд╣рдо рдЖрдИрдбреАрдЖрд░ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ "рд░рдЬрд┐рд╕реНрдЯрд░" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдмрдирд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рдФрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ:


рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣рдореЗрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдЪреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╕рддреНрдпрд╛рдкрди рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдореБрдЦреНрдп рдлреЙрд░реНрдо рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдСрдирдХреНрд░рд┐рдПрдЯ рдЗрд╡реЗрдВрдЯ)ред рд╣рдо IDR рдореЗрдВ рдХреЙрд▓ рд▓реЛрдХреЗрд╢рди рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ Olly рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд▓рдЧрд╛рддреЗ рд╣реИрдВ:

рд╣рдо рдбрд┐рдмрдЧрд░ рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рд░реБрдХрддреЗ рд╣реИрдВ:
Copy Source | Copy HTML<br/>0046EC94 > . 55 PUSH EBP ; Unit1.TForm1.FormCreate <br/>
рд╣рдореЗрдВ рдкрд╣рд▓реА рджрд┐рд▓рдЪрд╕реНрдк рдХреЙрд▓ рдорд┐рд▓рддреА рд╣реИ:

рдпрд╣рд╛рдВ рдкрд╣реБрдВрдЪрдиреЗ рддрдХ F7 рдФрд░ рдЯреНрд░реЗрд╕ рджрд░реНрдЬ рдХрд░реЗрдВ:

рдореИрдВ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдЪрд▓рд╛ рдЬрд╛рдКрдВрдЧрд╛ рдФрд░ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдпрд╣рд╛рдВ рд╣реИ рдХрд┐ рдПрдЪрдбрдмреНрд▓реНрдпреВрдЖрдИрдбреА рдкреАрдврд╝реА рдФрд░ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдХрд╛ рдЕрд▓рдЧрд╛рд╡ рдЫреБрдкрд╛ рд╣реБрдЖ рд╣реИред
рдлрд┐рд░ рд╕реЗ, F7 рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкрддрд╛ 46537F рдкрд░ рдПрдХ HWID рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдбреАрдмрдЧрд░ рдХреЗ рддрд╣рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдХрд░ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ:
Copy Source | Copy HTML<br/>0046537F |. E8 3CFCFFFF CALL <QuickPas._Unit32.sub_00464FC0> ; << Get Hwid <br/>

рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╣рдо 00464FC0 рдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рдХреЛрдб рдкрд╛рддреЗ рд╣реИрдВ:
Copy Source | Copy HTML<br/>00465072 | > /8B45 FC /MOV EAX,DWORD PTR SS:[EBP-4]<br/>00465075 |. |0FB64418 FF |MOVZX EAX,BYTE PTR DS:[EAX+EBX-1]<br/>0046507A |. |8BD3 |MOV EDX,EBX<br/>0046507C |. |03D2 |ADD EDX,EDX<br/>0046507E |. |03C2 |ADD EAX,EDX<br/>00465080 |. |8D55 DC |LEA EDX,DWORD PTR SS:[EBP-24]<br/>00465083 |. |E8 3441FAFF |CALL < QuickPas.SysUtils.IntToStr > <br/>00465088 |. |8B55 DC |MOV EDX,DWORD PTR SS:[EBP-24]<br/>0046508B |. |8D45 F4 |LEA EAX,DWORD PTR SS:[EBP-C]<br/>0046508E |. |E8 6D01FAFF |CALL < QuickPas.system. @LStrCat > <br/>00465093 |. |43 |INC EBX<br/>00465094 |. |83FB 04 |CMP EBX,4<br/>00465097 |.^\75 D9 \JNZ SHORT QuickPas.00465072<br/>00465099 |. 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]<br/>0046509C |. E8 93FEF9FF CALL < QuickPas.system. @LStrClr > <br/>004650A1 |. BB 01000000 MOV EBX,1<br/>004650A6 | > 8D45 D8 /LEA EAX,DWORD PTR SS:[EBP-28]<br/>004650A9 |. 8B55 F4 |MOV EDX,DWORD PTR SS:[EBP-C]<br/>004650AC |. 0FB6541A FF |MOVZX EDX,BYTE PTR DS:[EDX+EBX-1]<br/>004650B1 |. E8 6600FAFF |CALL < QuickPas.system. @LStrFromChar > <br/>004650B6 |. 8B55 D8 |MOV EDX,DWORD PTR SS:[EBP-28]<br/>004650B9 |. 8D45 F8 |LEA EAX,DWORD PTR SS:[EBP-8]<br/>004650BC |. E8 3F01FAFF |CALL < QuickPas.system. @LStrCat > <br/>004650C1 |. 43 |INC EBX<br/>004650C2 |. 83FB 06 |CMP EBX,6<br/>004650C5 |.^ 75 DF \JNZ SHORT QuickPas.004650A6 <br/>
рдпрд╣рд╛рдВ, рдкрд╣рд▓реЗ 3 рд╡рд░реНрдгреЛрдВ рдХреЗ рдХреЛрдб рд▓рд┐рдП рдЧрдП рд╣реИрдВ, + 2 рд╕реЗ рд▓реВрдк рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдЧреБрдгрд╛ рдХрд░рдХреЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ 5 рдХреЛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (SystemBiosDate рдкреИрд░рд╛рдореАрдЯрд░, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╣реИрд╢ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ: HKEY_LOCAL_MACHINE \ HARDWARE \ DESCRIPT) \ рдкреНрд░рдгрд╛рд▓реА)

рдкрд╛рд╕реНрдХрд▓ рдореЗрдВ, рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
Copy Source | Copy HTML<br/>md5_sbd:=md5( SystemBiosDate)<br/> for i:=1 to 3 do<br/> begin <br/> result := result + IntToStr(ord(md5_sbd[i]) + i*2;);<br/> end ; <br/>
HWID рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдЧреЗ рдХрджрдо:
Copy Source | Copy HTML<br/>00465389 |> /8D45 F8 /LEA EAX,DWORD PTR SS:[EBP-8]<br/>0046538C |. |E8 BF00FAFF | CALL <QuickPas.system.@UniqueStringA><br/>00465391 |. |BA 06000000 |MOV EDX,6<br/>00465396 |. |2BD3 |SUB EDX,EBX<br/>00465398 |. |8B4D FC |MOV ECX,DWORD PTR SS:[EBP-4]<br/>0046539B |. |0FB64C19 FF |MOVZX ECX,BYTE PTR DS:[ECX+EBX-1]<br/>004653A0 |. |884C10 FF |MOV BYTE PTR DS:[EAX+EDX-1],CL<br/>004653A4 |. |43 |INC EBX<br/>004653A5 |. |83FB 06 |CMP EBX,6<br/>004653A8 |.^\75 DF \JNZ SHORT QuickPas.00465389<br/>004653AA |. BB 01000000 MOV EBX,1<br/>004653AF |> 8D45 F0 /LEA EAX,DWORD PTR SS:[EBP-10]<br/>004653B2 |. 8B55 F8 |MOV EDX,DWORD PTR SS:[EBP-8]<br/>004653B5 |. 0FB6541A FF |MOVZX EDX,BYTE PTR DS:[EDX+EBX-1]<br/>004653BA |. E8 5DFDF9FF | CALL <QuickPas.system.@LStrFromChar><br/>004653BF |. 8B45 F0 |MOV EAX,DWORD PTR SS:[EBP-10]<br/>004653C2 |. E8 313FFAFF | CALL <QuickPas.SysUtils.StrToInt><br/>004653C7 |. 8BF0 |MOV ESI,EAX<br/>004653C9 |. 33F3 |XOR ESI,EBX<br/>004653CB |. 8D55 F4 |LEA EDX,DWORD PTR SS:[EBP-C]<br/>004653CE |. 8BC6 |MOV EAX,ESI<br/>004653D0 |. E8 E73DFAFF | CALL <QuickPas.SysUtils.IntToStr><br/>004653D5 |. 8D45 F8 |LEA EAX,DWORD PTR SS:[EBP-8]<br/>004653D8 |. E8 7300FAFF | CALL <QuickPas.system.@UniqueStringA><br/>004653DD |. 8B55 F4 |MOV EDX,DWORD PTR SS:[EBP-C]<br/>004653E0 |. 0FB612 |MOVZX EDX,BYTE PTR DS:[EDX]<br/>004653E3 |. 885418 FF |MOV BYTE PTR DS:[EAX+EBX-1],DL<br/>004653E7 |. 43 |INC EBX<br/>004653E8 |. 83FB 06 |CMP EBX,6<br/>004653EB |.^ 75 C2 \JNZ SHORT QuickPas.004653AF <br/>
рдпрд╣рд╛рдБ рдХреБрдЫ рд░реВрдкрд╛рдВрддрд░рдг рд╣реИрдВ, рдЖрджрд┐ред рдлрд┐рд░, рдореИрдВ рдЗрд╕ рдХреЛрдб рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдкрд╛рд╕реНрдХрд▓ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рд╣реИ:
Copy Source | Copy HTML<br/>part_of_serial:=ReverseString(hwid);<br/>tmp:= '' ;<br/> for i:= 1 to 5 do<br/> begin <br/> tmp:=tmp + copy(IntToStr(StrToInt(part_of_serial[i]) xor i),1,1);<br/> end ;<br/>part_of_serial:=copy(tmp,1,5); <br/>
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо 41413 рд╣реИ
рдЖрдЧреЗ рдмрдврд╝реЗрдВ, рджреЗрдЦреЗрдВ ...

рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди md5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдЕрдкрдиреА рдзрд╛рд░рдгрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ:
md5 (41413) = FFA54840A3C240E0725C16C7FA48281C
рдпрд╣ рд╕реНрдЯреИрдХ рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ:

рд╣рдо рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ, рдЯреНрд░реЗрд╕ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рддрдм рд╣рдо рдкреНрд░рд╡реЗрд╢ рдХрд┐рдП рдЧрдП рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЗ рдкрд╣рд▓реЗ 5 рдкрд╛рддреНрд░реЛрдВ рд╕реЗ md5 рд╣реИрд╢ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдкрд╣рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдПрдХ (рдЖрджрд┐рдо, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рддрд░рд╣) рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред
md5 (abcde) = AB56B4D92B40713ACC5AF89985D4B786
рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╣реА рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЗ рдкрд╣рд▓реЗ рдЕрдХреНрд╖рд░ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ) 41413 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рдо рдПрдХ рдирдП рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдЙрдкрд░реЛрдХреНрдд рдмрд╛рддреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП:
41413abcdefghijklmnop, рдФрд░ рдИрдореЗрд▓ рдкрд╣рд▓реЗ рдЬреИрд╕рд╛ рд╣реА рд╣реИ (ds@mail.ru)ред
рдЕрдм рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рддреНрдпрд╛рдкрди рд╕реЗ рдЧреБрдЬрд░ рд░рд╣реЗ рд╣реИрдВ:
Copy Source | Copy HTML<br/>00465563 |. E8 DCFDF9FF CALL <QuickPas.system.@LStrCmp> <br/>
рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЕрдмрд╛рдЙрдЯ рд╡рд┐рдВрдбреЛ рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдлрдВрдХреНрд╢рди рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЕрдирд░рдЬрд┐рд╕реНрдЯрд░реНрдб рд╕рдВрд╕реНрдХрд░рдг рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рдЬрд╛рд░реА рд░рдЦреЗрдВ рдЬрд╣рд╛рдВ рд╕реЗ рд╣рдордиреЗ рдкрд░реАрдХреНрд╖рд╛ рдЙрддреНрддреАрд░реНрдг рдХреА рд╣реИред рд╣рдордиреЗ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдХреЛ 00465563 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдЖрдЧреЗ рдЯреНрд░реЗрд╕ рдХрд┐рдпрд╛ред
рд╣рдо рдХреЛрдб рдХреЗ рджреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдЯреБрдХрдбрд╝реЗ рджреЗрдЦрддреЗ рд╣реИрдВ:
Copy Source | Copy HTML<br/>00465595 |. BB 01000000 MOV EBX,1<br/>0046559A | > /8B45 EC /MOV EAX,DWORD PTR SS:[EBP-14]<br/>0046559D |. |0FB64418 FF |MOVZX EAX,BYTE PTR DS:[EAX+EBX-1]<br/>004655A2 |. |0145 E4 |ADD DWORD PTR SS:[EBP-1C],EAX<br/>004655A5 |. |43 |INC EBX<br/>004655A6 |. |83FB 06 |CMP EBX,6<br/>004655A9 |.^\75 EF \JNZ SHORT QuickPas.0046559A <br/>
Copy Source | Copy HTML<br/>004655BC |. BB 01000000 MOV EBX,1<br/>004655C1 | > 8B55 FC /MOV EDX,DWORD PTR SS:[EBP-4]<br/>004655C4 |. 0FB6541A FF |MOVZX EDX,BYTE PTR DS:[EDX+EBX-1]<br/>004655C9 |. 0155 E8 |ADD DWORD PTR SS:[EBP-18],EDX<br/>004655CC |. 43 |INC EBX<br/>004655CD |. 48 |DEC EAX<br/>004655CE |.^ 75 F1 \JNZ SHORT QuickPas.004655C1 <br/>
рдЙрдирдореЗрдВ рдХреБрдЫ рдЧрдгрдирд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (рдкрд╣рд▓реЗ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд╕реЗ 6 рд╕реЗ 10 рд╡реЗрдВ рдЕрдХреНрд╖рд░ рдХреЗ рд▓рд┐рдП), рдФрд░ рдлрд┐рд░ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдИ-рдореЗрд▓ рд╕реЗред
рдЗрд╕ рд╕рдм рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рдВрдЦреНрдпрд╛ 1353 рдФрд░ fghijklmnop рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдХрд┐ рдпрд╣ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдХрд╛ рддреАрд╕рд░рд╛ рднрд╛рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдирдпрд╛ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдЖрдЬрд╝рдорд╛рдирд╛: 41413abcde1353
рд╕рдм рдХреБрдЫ рдареАрдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдПрдХ рд╣реИ "рд▓реЗрдХрд┐рди"!
рдЬрдм рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЕрдЬреАрдм рдЕрдХреНрд╖рд░ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:

рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЗрдП рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ IDR рдореЗрдВ рдШрдЯрдирд╛ рдХреЛ рджреЗрдЦреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдж рдмреИрдЯ рдкрд╛рд╕рд╡рд░реНрдб рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗрдЯ рдХрд░реЗрдВред

рдлрд┐рд░ рд╣рдо 465250 рдкрддреЗ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдЯреИрдХ рд╡рд┐рдВрдбреЛ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде F8 рджрдмрд╛рддреЗ рд╣реИрдВ
рдпрд╣ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЗ рдкрд╣рд▓реЗ 5 рдЕрдХреНрд╖рд░ рдФрд░ рдПрдЪрдбрдмреНрд▓реНрдпреВрдЖрдИрдбреА рдПрдХ рд╕рд╛рде рдЪрд┐рдкрдХреЗ рд╣реБрдП рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдкреНрд░рд╛рдкреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ md5 рд╣реИрд╢ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
md5 (4141369735) = 3354B017EB74FB4DC20A1B484911431рдФрд░ рдлрд┐рд░ рдкреНрд░рд╛рдкреНрдд рд╣реИрд╢ рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░рд╛рд╢рд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
Copy Source | Copy HTML<br/> for i:=4 to 7 do<br/> begin <br/> tmp := tmp + IntToStr(ord(part2[i]));<br/> end ; <br/>
рдФрд░ рдкрд╣рд▓реЗ 5 рдЕрдХреНрд╖рд░ рдХреЙрдкреА рдХрд┐рдП рдЧрдП рд╣реИрдВ:
Copy Source | Copy HTML<br/> some := copy(tmp,1,5); <br/>
рдЧрдгрдирд╛рдУрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ 52664 рдорд┐рд▓рддреЗ рд╣реИрдВ (рд╣рдо рдЗрд╕ рдореВрд▓реНрдп рдкрд░ рд▓реМрдЯ рдЖрдПрдВрдЧреЗ)ред
рдЖрдЧреЗ рджрд┐рд▓рдЪрд╕реНрдк рдХреЙрд▓:
CALL 00467A44
рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╣реИ рдЬреЛ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ)ред
рд╣рдо рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рджреЗрдЦрддреЗ рд╣реИрдВ:
00470919 |. E8 FA4DFFFF CALL <QuickPas._Unit32.sub_00465718>
рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдмреНрд▓реЙрдХ:
Copy Source | Copy HTML<br/>0046577F |. BB 01000000 MOV EBX,1<br/>00465784 | > 8D45 FC /LEA EAX,DWORD PTR SS:[EBP-4]<br/>00465787 |. E8 C4FCF9FF |CALL < QuickPas.system. @UniqueStringA > <br/>0046578C |. 8D4418 FF |LEA EAX,DWORD PTR DS:[EAX+EBX-1]<br/>00465790 |. 50 |PUSH EAX<br/>00465791 |. 8BC3 |MOV EAX,EBX<br/>00465793 |. 99 |CDQ<br/>00465794 |. F7FF |IDIV EDI<br/>00465796 |. 8B45 F8 |MOV EAX,DWORD PTR SS:[EBP-8]<br/>00465799 |. 0FB60410 |MOVZX EAX,BYTE PTR DS:[EAX+EDX]<br/>0046579D |. 0FBE55 F3 |MOVSX EDX,BYTE PTR SS:[EBP-D]<br/>004657A1 |. F7EA |IMUL EDX<br/>004657A3 |. 8B55 FC |MOV EDX,DWORD PTR SS:[EBP-4]<br/>004657A6 |. 0FB6541A FF |MOVZX EDX,BYTE PTR DS:[EDX+EBX-1]<br/>004657AB |. 03C2 |ADD EAX,EDX<br/>004657AD |. 5A |POP EDX<br/>004657AE |. 8802 |MOV BYTE PTR DS:[EDX],AL<br/>004657B0 |. 43 |INC EBX<br/>004657B1 |. 4E |DEC ESI<br/>004657B2 |.^ 75 D0 \JNZ SHORT QuickPas.00465784 <br/>
рдбрдВрдк рд╡рд┐рдВрдбреЛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЖрджрд┐рдо рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рдордиреЗ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЬреЛрд░ рд╕реЗ рд╣реИ рдФрд░ рдкреВрд░реНрдг рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдо рдореЗрдВ рдХреБрдЫ рд╣реИ - рдпрд╣ рдПрдХ рд╕рдВрджреЗрд╢ рд╣реИ рдФрд░ рдЬрд┐рд╕ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд╕рд╛рде рдХреБрдВрдЬреА рдЪрд▓ рд░рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛) рдмреНрд▓реЙрдХ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди)ред

рдЖрдк рдЗрд╕ рдХреЛрдб рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп (рдХреЗрдЬреЗрди рд▓рд┐рдЦрдиреЗ) рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЖрдЧреЗ рдмрдврд╝реЛ рдФрд░ рджреЗрдЦреЛ:
Copy Source | Copy HTML<br/>0047093B |. E8 144DFFFF CALL < QuickPas._Unit32.sub_00465654 > <br/>
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЬреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдкрд░рд┐рдЪрд┐рдд рд╣реИ - рдпреЗ 6 рд╡реАрдВ рд╕реЗ 10 рд╡реАрдВ рддрдХ рдХреЗ рд╕реАрд░рд┐рдпрд▓ рдХреЗ рдкрд╛рддреНрд░ рд╣реИрдВред
рдЕрдВрддрд░реНрдЬреНрдЮрд╛рди рдореБрдЭреЗ рдЕрд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдЖ, рд╣рдо рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рдХреЛрдб рджреЗрдЦрддреЗ рд╣реИрдВ:
Copy Source | Copy HTML<br/>004656AC |. BB 01000000 MOV EBX,1<br/>004656B1 | > 8D45 FC /LEA EAX,DWORD PTR SS:[EBP-4]<br/>004656B4 |. E8 97FDF9FF |CALL < QuickPas.system. @UniqueStringA > <br/>004656B9 |. 8D4418 FF |LEA EAX,DWORD PTR DS:[EAX+EBX-1]<br/>004656BD |. 50 |PUSH EAX<br/>004656BE |. 8BC3 |MOV EAX,EBX<br/>004656C0 |. 99 |CDQ<br/>004656C1 |. F7FF |IDIV EDI<br/>004656C3 |. 8B45 F8 |MOV EAX,DWORD PTR SS:[EBP-8]<br/>004656C6 |. 0FB60410 |MOVZX EAX,BYTE PTR DS:[EAX+EDX]<br/>004656CA |. 0FBE55 F3 |MOVSX EDX,BYTE PTR SS:[EBP-D]<br/>004656CE |. F7EA |IMUL EDX<br/>004656D0 |. 8B55 FC |MOV EDX,DWORD PTR SS:[EBP-4]<br/>004656D3 |. 0FB6541A FF |MOVZX EDX,BYTE PTR DS:[EDX+EBX-1]<br/>004656D8 |. 03C2 |ADD EAX,EDX<br/>004656DA |. 5A |POP EDX<br/>004656DB |. 8802 |MOV BYTE PTR DS:[EDX],AL<br/>004656DD |. 43 |INC EBX<br/>004656DE |. 4E |DEC ESI<br/>004656DF |.^ 75 D0 \JNZ SHORT QuickPas.004656B1 <br/>
рд╕рдорд╛рди рдХреЛрдб, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╣ рд╕рдВрджреЗрд╢ рдХреЛ "рдЖрдЙрдЯрдкреБрдЯ" рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ "рдбрд┐рдХреНрд░рд┐рдкреНрдЯ" рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдХреЗ рд╕рдорд╛рди рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
true_key = 52664
our_key = abcde
рд╕рдВрджреЗрд╢ = рдбрд┐рдХреНрд░рд┐рдкреНрдЯ (рдХреНрд░рд┐рдкреНрдЯ (рд╕рдВрджреЗрд╢, true_key), our_key)рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ = рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП, true_key рдХреЛ рд╣рдорд╛рд░реЗ_ рд╕рдорд╛рди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ keygen рдХреЗ рд▓рд┐рдП рд╕рднреА рдбреЗрдЯрд╛ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред
рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдХреБрдЫ рдЧрдгрдирд╛рдУрдВ рдХреЗ рдЯреВрдЯрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП:
1.
рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп:Copy Source | Copy HTML<br/> function RegQueryStr(RootKey: HKEY; Key, Name: string ;<br/> Success: PBoolean = nil): string ;<br/> var <br/> Handle: HKEY;<br/> Res: LongInt;<br/> DataType, DataSize: DWORD;<br/>begin<br/> if Assigned(Success) then<br/> Success^ := False;<br/> Res := RegOpenKeyEx(RootKey, PChar(Key), 0 , KEY_QUERY_VALUE, Handle);<br/> if Res <> ERROR_SUCCESS then<br/> Exit;<br/> Res := RegQueryValueEx(Handle, PChar(Name), nil, @DataType, nil, @DataSize);<br/> if (Res <> ERROR_SUCCESS) or (DataType <> REG_SZ) then<br/> begin<br/> RegCloseKey(Handle);<br/> Exit;<br/> end;<br/> SetString(Result, nil, DataSize - 1 );<br/> Res := RegQueryValueEx(Handle, PChar(Name), nil, @DataType,<br/> PByte(@Result[ 1 ]), @DataSize);<br/> if Assigned(Success) then<br/> Success^ := Res = ERROR_SUCCESS;<br/> RegCloseKey(Handle);<br/>end; <br/>
2.
HWID рдЧрдгрдирд╛ рд╕рдорд╛рд░реЛрд╣:Copy Source | Copy HTML<br/> function GetHWID: string;<br/> var <br/>SystemBiosDate,md5_sbd:String;<br/>i: integer ;<br/>digest:pointer;<br/>dwSize:Cardinal;<br/> begin <br/> SystemBiosDate := RegQueryStr(HKEY_LOCAL_MACHINE, 'HARDWARE\DESCRIPTION\System' , 'SystemBiosDate' );<br/> md5_sbd:=SystemBiosDate;<br/> dwSize:=length(md5_sbd);<br/> digest:= GetHash(@md5_sbd[1],dwSize,ALG_MD5);<br/> if digest <> nil then <br/> try<br/> md5_sbd:=BinToHexStr(digest,dwSize);<br/> finally<br/> FreeMem(digest);<br/> end ;<br/> md5_sbd:=Uppercase(md5_sbd);<br/> result := '' ;<br/> for i:=1 to 3 do<br/> begin <br/> result := result + IntToStr(ord(md5_sbd[i]) + i*2);<br/> end ;<br/> result :=copy( Result ,1,5); <br/> End ; <br/>
3.
рд░рд┐рд╡рд░реНрд╕ (рд░рд┐рд╡рд░реНрд╕ рд▓рд╛рдЗрди) рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп:Copy Source | Copy HTML<br/> function ReverseString( const s: string ): string ;<br/> var <br/> i, len: Integer;<br/>begin<br/> len := Length(s);<br/> SetLength(Result, len);<br/> for i := len downto 1 do <br/> begin<br/> Result[len - i + 1 ] := s[i];<br/> end;<br/>end; <br/>
4.
рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП):Copy Source | Copy HTML<br/> function IsStrANumber( const S: string ): Boolean;<br/> var <br/> P: PChar;<br/>begin<br/> P := PChar(S);<br/> Result := False;<br/> while P^ <> # 0 do <br/> begin<br/> if not (P^ in [ '0' .. '9' ]) then Exit;<br/> Inc(P);<br/> end;<br/> Result := True;<br/>end; <br/>
рдмреБрдирд┐рдпрд╛рджреА рдкреАрдврд╝реА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛:Copy Source | Copy HTML<br/>procedure generate;<br/> var Serial,NameBuf: String ;<br/>len,len1: integer ;<br/>Textname,HWID: PChar ;<br/>hw: String ;<br/> i ,sum_name,sum_part2: integer ;<br/> part1,tmp,part2,part3: string ;<br/> digest: pointer ;<br/>dw Size : Cardinal ;<br/>begin<br/> len := GetWindowTextLengthA( TxtNameHwnd );<br/> len1 := GetWindowTextLengthA( txtHWID );<br/> if len > 1 then<br/> begin<br/> { Get text from name input }<br/> GetMem( Textname, len );<br/> GetWindowTextA( TxtNameHwnd,PAnsiChar(Textname ),len + 1 );<br/> GetMem( HWID, len1 );<br/> GetWindowTextA( TxtHWID,PAnsiChar(HWID ),len1 + 1 );<br/> HW:=String( HWID );<br/>if ( IsStrANumber(hw )) and ( length(hw )= 5 ) then<br/> begin<br/> { Generate Serial }<br/> NameBuf:=String( Textname );<br/> hw:=string( HWID );<br/>hw:=copy( hw,1,5 );<br/>part1:=ReverseString( hw );<br/>tmp:= '' ;<br/>for i := 1 to 5 do<br/> begin<br/> tmp:=tmp + copy( IntToStr(StrToInt(part1[i] ) xor i ), 1 , 1 );<br/> end;<br/>part1:=copy( tmp,1,5 );<br/> //--------------------- <br/>tmp:= '' ;<br/>part2 :=part1+hw;<br/> dw Size :=length( part2 );<br/> digest:= GetHash( @part2[1],dwSize,ALG_MD5 );<br/> if digest <> nil then<br/> try<br/> part2:=BinToHexStr( digest,dwSize );<br/> finally<br/> FreeMem( digest );<br/> end;<br/>part2 := UpperCase ( part2 );<br/>for i := 4 to 7 do<br/> begin<br/> tmp := tmp + IntToStr( ord(part2[i] ));<br/> end;<br/>part2 := copy( tmp,1,5 );;<br/> //--------------------- <br/>sum_name:= 0 ;<br/>sum_part2:= 0 ;<br/>for i := 1 to length( NameBuf )- 1 do<br/> begin<br/> sum_name:=sum_name + ord( NameBuf[i] );<br/> end;<br/>for i := 1 to length( part2 ) do<br/> begin<br/> sum_part2:=sum_part2 + ord( part2[i] );<br/> end;<br/>part3:=IntToStr( sum_name+sum_part2 );<br/>Serial:=part1 + part2 + part3;<br/> end<br/> else // if hwid not numeric or <> 5 <br/> Serial:= 'Invalid HWID' ;<br/> { Display The Results }<br/> SetWindowTextA( TxtSerialHwnd,PChar(Serial ));<br/> FreeMem ( HWID, len1 + 1 );<br/> FreeMem ( Textname, len+1 );<br/> end<br/> Else<br/> { Display Error }<br/> SetWindowText( TxtSerialHwnd,'Not Enough Characters..' );<br/>end; <br/>
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рд╕рднреА рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХреЛрдб рдХреЗ рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рд╢реНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
Copy Source | Copy HTML<br/>dwSize:=length(part2);<br/>digest:= GetHash(@part2[1],dwSize,ALG_MD5);<br/> if digest <> nil then <br/> try<br/> part2:=BinToHexStr(digest,dwSize);<br/> finally<br/> FreeMem(digest);<br/> end ; <br/>
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ HashCryptoAPILib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ md5 рд╣реИрд╢ рдЧрдгрдирд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдорд╛рдирдХ рд╡рд┐рдВрдбреЛрдЬ рдЯреВрд▓ (CryptoApi) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЦреБрдж рдХреЗрдЬреЗрди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕реЗ "рдбрд╛рдЙрдирд▓реЛрдб" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ tport.org рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдХрд┐рд╕реА рднреА рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрд░рд┐рдпрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрдВрдЬреАрдХреГрдд рд╣реИ, рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рд╕рдм рд╣реИред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рд╕рд╛рдордЧреНрд░реА рджрд┐рд▓рдЪрд╕реНрдк рдереА рдФрд░ рдХрд┐рд╕реА рдХреЛ рдЕрдкрдиреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдорд┐рд▓реЗрдЧрд╛ред