Zeronights Crackme 2013 рд╕рдорд╛рдзрд╛рди рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╣рд╛рдБ рд╣реИ

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдЬрд╝реЗрдмрдирд╛рдЗрдЯреНрд╕ 2013 рд╕рдореНрдореЗрд▓рди рд╕реЗ рдХрд╛рд╕реНрдкреЗрд░реНрд╕реНрдХреА рд▓реИрдм рд╕реЗ рдПрдХ рджрд░рд╛рд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП рд╣реЗрдмреЗ рдкрд░ рдПрдХ рд▓реЗрдЦ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдореИрдВ рднреА рдЗрд╕ рджрд░рд╛рд░ рдХреЛ рджрд░рд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдбрд╛рд░реНрд╡рд┐рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЪрд╛рдмрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рджрд░рд╛рд░ рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИред рдбрд╛рд░реНрд╡рд┐рди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдУрд▓реАрдбрдмрдЧ рдХреЗ рд╕рд╛рде рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдорд╛рди рджрд░реНрдЬ рдХрд░реЗрдВред рд╡рд┐рдлрд▓ рдХреЗ рд╕рд╛рде рдореИрд╕реЗрдЬрдмреЙрдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

рдЫрд╡рд┐

рд╕рд╣рдпреЛрдЧреА рджрд▓реЛрдВ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд╡рд┐рдВрдбреЛ (рдмрдбрд╝реЗ рдПрдо) рдЦреЛрд▓реЗрдВред Ctrl + B (рдЦреЛрдЬ) рджрдмрд╛рдПрдБред ASCII рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╡рд┐рдлрд▓ рджрд░реНрдЬ рдХрд░реЗрдВред рдЦреЛрдЬ рд╣рд┐рдЯ - рдорд┐рд▓реА:

рдЫрд╡рд┐

рд╕рдВрджреЗрд╢ рдХреЗ рдкрд╣рд▓реЗ рдмрд╛рдЗрдЯ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдмреНрд░реЗрдХрдкрд┐рдЯ -> рдореЗрдореЛрд░реА -> рдПрдХреНрд╕реЗрд╕ рдкрд░ред

рд╣рдо рдбрд┐рдмрдЧрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдХреНрд░реИрдХрдореЗ рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╕рдорд╛рди рдорд╛рди рджрд░реНрдЬ рдХрд░реЗрдВред рд╣рдо рд╕рдВрджреЗрд╢ рдмреЙрдХреНрд╕ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

рдЫрд╡рд┐

рд╣рдорд╛рд░реА рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдкреБрд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд╢рд░реНрдд рдЬреЗрдПрдирдЬреЗрдб рд╕рдВрдХреНрд░рдордг рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдкрд╣рд▓реЗ TEST EAX, EAX рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ EAX рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреНрд░реИрд╢ рдХреЗ рд╕рд╛рде рдПрдХ MessageBox
рдЕрдЪреНрдЫрд╛ рдХрд╛рдо, рд╕реАрд░рд┐рдпрд▓ рд╡реИрдз рд╣реИ!
ред рд╣рдо рд╡рд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рд╣рдореЗрдВ EAX рдорд┐рд▓рддрд╛ рд╣реИред рддреБрд▓рдирд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдХреЙрд▓ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдХреБрдВрдЬреА рднреА рдХреБрдВрдЬреА рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЙрд╕реЗ рдХреНрдпрд╛ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╛рд╕рд╡рд░реНрдб рдХреА рд▓рдВрдмрд╛рдИ рд╕реНрдЯреИрдХ рдФрд░ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд╕реЗ рдореЗрд▓ рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рддрдХ рдЬрд╛рддреА рд╣реИред ECX рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ, рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдлрд╝рдВрдХреНрд╢рди рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ:

рдЫрд╡рд┐

рд╣рдо рдкрд╣рд▓реЗ рдЬреЗрдПрдирдЬреЗрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдкрд╛рд╕рд╡рд░реНрдб рдХреА рд▓рдВрдмрд╛рдИ 0x12 (рджрд╢рдорд▓рд╡ рдореЗрдВ 18) рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд╡рд┐рдлрд▓ред рдЕрдЧрд▓рд╛ рд▓реВрдк рдЖрддрд╛ рд╣реИ (рдЗрд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдХрд╛рд▓реЗ рдмреНрд░реИрдХреЗрдЯ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдЬрд┐рд╕рдореЗрдВ рдкрд╛рд╕рд╡рд░реНрдб рд╡рд░реНрдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рдЙрдиреНрд╣реЗрдВ рд╕реЗрдЯ 0-9, AZ рдФрд░ az рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рджрд╛рдИрдВ рдУрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ, рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд░рд┐рд╡рд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВред рдХреБрдЫ рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдпрд╛ рд╕рд░рдгреА рдЪрдпрди рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИрдВред рдЪрдХреНрд░ рдХреЗ рдмрд╛рдж рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдп рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ:

рдЫрд╡рд┐

рджреЛ рдЪрдХреНрд░ рддреБрд░рдВрдд рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред рдЙрдирдореЗрдВ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ? рдкрд╣рд▓реЗ рдореЗрдВ, рд╣рдо 0 рд╕реЗ 255 рддрдХ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд░рдгреА рдХреЛ рднрд░рддреЗ рд╣реИрдВред
рджреВрд╕рд░реЗ рдЪрдХреНрд░ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд▓рд┐рдпрд╛ рдЧрдпрд╛: рдкрд╣рд▓реЗ рд▓реВрдк рдореЗрдВ рднрд░реЗ рд╣реБрдП рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП, рдФрд░ рдореЗрд▓ рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рдореЗрдВред рдПрдХ рд╕рд░рдгреА рддрддреНрд╡ рд▓реВрдк рдирдВрдмрд░ рдФрд░ рдореЗрд▓ рдХреЗ рдПрдХ рдЪрд░рд┐рддреНрд░ рд▓реВрдк рдирдВрдмрд░ modulo рджреНрд╡рд╛рд░рд╛ рдореЗрд▓ рдХреА рд▓рдВрдмрд╛рдИ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рдмрд╛рдЗрдЯреНрд╕ рдХреЛ modulo 256 (AND EDI рдСрдкрд░реЗрд╢рди, 0xFF рдХреЛ C рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ __edi% 0x100 рдХреЗ рдмрд░рд╛рдмрд░) рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред 2 рддрддреНрд╡ рд╕рдВрдЦреНрдпрд╛рдПрдВ рдЪрдХреНрд░ рдХреЗ рдЪрд░рдг рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рдпреЗ 2 рддрддреНрд╡ рдЙрд▓рдЯ рд╣реИрдВред рдореЗрд▓ рд╡рд╣ рдХреБрдВрдЬреА рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ 0 рд╕реЗ 256 рддрдХ рддрддреНрд╡реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реЛрддрд╛ рд╣реИред рд╕рд░рдгреА рдХреЗрд╡рд▓ рдорд┐рд╢реНрд░рд┐рдд рд╣реЛрддреА рд╣реИред рд╣рдо рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдкрд░ рд╡рд╛рдкрд╕ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, 9 рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдкрд╣рд▓реЗ 9 рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдЗрд╕рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рд╣рдо "hHeap zabivajetsa" рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд▓рд┐рдкреНрдпрдВрддрд░рдг рдкрд░ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдЬрд╛рдПрдВрдЧреЗ:

рдЫрд╡рд┐

рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд░рд┐рдпрд╛рдПрдВ рджреЛрд╣рд░рд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЪрдХреНрд░ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдмрд╛рдХреА рд╕рдм рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред

9 рдмрд╛рдЗрдЯ рдХреА рдПрдХ рд╕рд░рдгреА рдХрд╛ рдкрд╣рд▓рд╛ рд╡рд░реНрдг EDX рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╛рдиреА рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдкрд╣рд▓рд╛ рдХреИрд░реЗрдХреНрдЯрд░ред рдЕрдЧрд▓рд╛ рдЬрд╛рджреВ:

MOV EAX, EDX
SHR EAX, рек
SHL EAX, 3
SUB EDX, EAX
рдФрд░ EDX, 0F

рд╕реА рдореЗрдВ, рдпрд╣ рд╣реЛрдЧрд╛:
EDX=(EDX- ((EDX >>4 )<<3))%16 


EDH рдирдВрдмрд░ рджреНрд╡рд╛рд░рд╛ рд╣рдорд╛рд░реЗ рдорд┐рд╢реНрд░рд┐рдд рд╕рд░рдгреА рд╕реЗ рдорд╛рди рдХреЗ рд╕рд╛рде hHeap рдореЗрдВ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рддреАрдХ рдмрджрд▓реЗрдВред рдЕрдиреНрдп рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рд╡рд╣реАред рд╕рдорд╛рд░реЛрд╣ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВред

9 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдФрд░ рд╕рд░рдгреА рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕рд░рдгреА рд╕реЗ рдорд╛рди рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░:

рдЫрд╡рд┐

рдореВрд╡рд┐рдВрдЧ MOV рдФрд░ MOVZX рдХрд╛ рдПрдХ рдмреНрд▓реЙрдХ рд╣реИред рдЪрд▓реЛ рдкрд╣рд▓реЗ рдП, рдФрд░ рджреВрд╕рд░рд╛ - рдмреА рдСрди рд╕реА:
 b[0]=a[0]; b[1]=a[1]; b[2]=a[2]; b[3]=a[5]; b[4]=a[3]; b[5]=a[4]; b[6]=a[8]; b[7]=a[6]; b[8]=a[7]; 


рдЙрд╕рдХреЗ рдмрд╛рдж, рджреВрд╕рд░реЗ рд╕реЗ рдкрд╣рд▓реА рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдмрд╕ рдорд┐рд╢реНрд░рд┐рддред

рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдиреМ рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рд░рдгреА рд╡рд╛рд▓реА рд╕рднреА рдХреНрд░рд┐рдпрд╛рдПрдВ рджреЛрд╣рд░рд╛рдИ рдЬрд╛рддреА рд╣реИрдВред рд╣рдореЗрдВ рджреЛ рд╕рд░рдгрд┐рдпрд╛рдБ рдорд┐рд▓рддреА рд╣реИрдВ:

рдЫрд╡рд┐

рд╣рдо рдЗрд╕ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ "рдореЛрд╢реНрдирд╛рдЬрд╛ obrabotka kuchi":

рдЫрд╡рд┐

рд╣рдо рджреВрд╕рд░реЗ рдРрд░реЗ рдХреЛ рд╕реНрдЯреИрдХ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рддреЗ рджреЗрдЦрддреЗ рд╣реИрдВред рд╕рд░рдгреА рдХреЛ B рд╕реЗ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬрд┐рд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣рдорд╛рд░рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╣реЛрддрд╛ рд╣реИ, рдЙрд╕рдХреА рд╢реБрд░реБрдЖрдд D рдкрд░ C рд╣реЛрддреА рд╣реИ:

 D[0]=B[0]; D[1]=B[3]; D[2]=B[6]; D[3]=B[1]; D[4]=B[4]; D[5]=B[7]; D[6]=B[2]; D[7]=B[5]; D[8]=B[8]; 


рдлрд┐рд░ рдПрдХ рд▓рдВрдмрд╛ рдЪрдХреНрд░ рдЬреЛ 3 рдмрд╛рд░ рдЪрд▓рддрд╛ рд╣реИ:

рдЫрд╡рд┐

рдЫрд╡рд┐
рд╣рд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдзреИрд░реНрдп рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕реА рдкрд░ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдЪрд▓реЛ рдкрд╣рд▓рд╛ рдП рд╕рд░рдгреА рд╣реЛ, рдбреА рд╕реНрдЯреИрдХ рдореЗрдВ рд╕рд░рдгреА рд╣реЛ, рдФрд░ рдИ рд╕рдм рдХреБрдЫ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╕рд░рдгреА рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдЪрд░ рд╣реИрдВ, рдФрд░ рдореИрдВ рдбрд┐рдХрдореНрдкрд╛рдЗрд▓рд░ рд╣реЛрдЧрд╛ред рддрдм:
 for(int i=0;i<3;i++){ X[0]=A[0+i*3]; X[1]=A[1+i*3]; X[2]=A[2+i*3]; E[0+i*3]=((X[0]*D[0])%7+(X[1]*D[1])%7+(X[2]*D[2])%7)%7; E[1+i*3]=((X[0]*D[3])%7+(X[1]*D[4])%7+(X[2]*D[5])%7)%7; E[2+i*3]=((X[0]*D[6])%7+(X[1]*D[7])%7+(X[2]*D[8])%7)%7; } 


рд╣рдо рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ, рдФрд░ E рдореЗрдВ рдорд╛рдиреЛрдВ рдХреА рд╕рд░рдгреА рдХреА рддреБрд▓рдирд╛ [1,0,0,0,1,0,0,0,0,1] рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛рддреА рд╣реИ:

рдЫрд╡рд┐

рдЕрдЧрд░ рдпрд╣ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд╕рд╣реА рд╣реИред

рддреЛ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдиреМ рддрддреНрд╡реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рд╕рд░рдгреА рдХреЛ 3 рджреНрд╡рд╛рд░рд╛ 3 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рджреЛ рд╣рд┐рд╕реНрд╕реЗ рджреЛ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рд╣реИрдВред рдпрд╛рдж рд░рдЦреЗрдВ рд╡рд╣ рдЕрдЬреАрдм рд╕рд╛ рдлреЗрд░рдмрджрд▓:

 b[0]=a[0]; b[1]=a[1]; b[2]=a[2]; b[3]=a[5]; b[4]=a[3]; b[5]=a[4]; b[6]=a[8]; b[7]=a[6]; b[8]=a[7]; 


рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдЙрд╕рдХреЗ рдирдВрдмрд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдм рджреВрд╕рд░реА рд╕рд░рдгреА рдХреЛ рд╕реНрдЯреИрдХ рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:

 D[0]=B[0]; D[1]=B[3]; D[2]=B[6]; D[3]=B[1]; D[4]=B[4]; D[5]=B[7]; D[6]=B[2]; D[7]=B[5]; D[8]=B[8]; 


рдФрд░ рдпрд╣ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рдХреНрд╖реЗрдк рд╣реИред рд╣рдореЗрдВ рдкреНрд░рдХреНрд╖реЗрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рд╣рд╛рдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдЗрдирдкреБрдЯ рдореЗрдВ рдиреМ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рджреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд▓реЗрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреБрдгрд╛ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХрд╛% 7 рдХреЛ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдпрд╣ рдЖрд╕рд╛рди рд╣реИред рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛрд╢рд┐рдХрд╛рдПрдБ рдХреНрд╖реЗрддреНрд░ 7 рдореЗрдВ рдореЙрдбреНрдпреВрд▓рд░ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред
рддрдм рд╕рд░рдгреА [1,0,0,0,1,0,0,0,1] рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ, рдпрд╣ рдкрд╣рдЪрд╛рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИред

рддреЛ, рд╣рдо рдЕрдкрдиреЗ рдореЗрд▓ рдХреА рдХреБрдВрдЬреА рдХреИрд╕реЗ рдЦреЛрдЬреЗрдВ? рдореИрдВрдиреЗ keygen рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рднреА рдореЗрд▓ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреБрдВрдЬреА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЕрдм рдЖрдк рд╕рдордЭреЗрдВрдЧреЗ рдХрд┐ рдХреНрдпреЛрдВред

рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╕рд░рдгреА рдХреЛ рдорд┐рд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ 16 рддрддреНрд╡ рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рд╣рдо рдЗрди рддрддреНрд╡реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рд╣рдорд╛рд░реЗ рджреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдХрд┐рд╕реА рднреА рд╕реЗрд▓ рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдХреЗрд╡рд▓ рдореЙрдбреНрдпреВрд▓рд░ рдЕрдВрдХрдЧрдгрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреАрдЪреЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрди рддрддреНрд╡реЛрдВ рдХреА рд╕рдорддреБрд▓реНрдпрддрд╛ рдХреЛ рдлреАрд▓реНрдб рдореЗрдВрдмрд░ рдореЙрдбреБрд▓реЛ 7. рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рддрддреНрд╡реЛрдВ рдореЗрдВ рд╕реЗ, рд╣рдореЗрдВ рджреЛ рд╡рд┐рдкрд░реАрдд рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдкрд░ рд╣рдореЗрдВ рдкрд╣рдЪрд╛рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рд╣реЛред рд╣рдо рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:

рдЫрд╡рд┐

рдореБрдЦреНрдп рдмрд╛рдд рд▓рд╛рдЗрди рдирдВрдмрд░ рджреНрд╡рд╛рд░рд╛ рдСрдлрд╕реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓рдирд╛ рд╣реИред

рд╣рдо рд╡рд┐рдкрд░реАрдд рдореЗрдЯреНрд░рд┐рд╕ рдХрд╛ рдЪрдпрди рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ:
рд╣рдо рдкреНрд░рддреАрдХ рдХреЛ 0 рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рджреЛ рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рд╡рд┐рдкрд░реАрдд рддрддреНрд╡реЛрдВ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реБрдП рдкрд╛рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг 4 рдФрд░ 2 рдХреЗ рд▓рд┐рдП)ред
рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 1 рд╣реИ, рддреЛ рд╣рдо рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВред

рдХреАрдЬреЗрди рдХреА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдРрд╕реЗ рддрддреНрд╡ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рд╣рдо рд╡рд┐рдкрд░реАрдд рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдХрд┐рд╕реА рднреА рд╕рд▓рд╛рд╣ рдФрд░ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рд╣реИред рдЕрдВрдд рддрдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In204698/


All Articles