CRACKL @ B рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ 2010. рдкрд╣рд▓реЗ рдХрд╛рд░реНрдп рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


2010 рд╕рдорд╛рдкреНрдд рд╣реЛ рд░рд╣рд╛ рдерд╛, рд╕рдВрд╕рд╛рдзрди рдкрд░ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реБрдзрд╛рд░ рдЪрд▓ рд░рд╣реЗ рдереЗред рдпреЗ рдкрд░реЗрд╢рд╛рди рд╕рдордп рдереЗред рдФрд░ рдЗрд╕ рдХрдареЛрд░ рд╕рдордп рдореЗрдВ, рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЙрднрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╕реНрдерд╛рдиреАрдп рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рдмрд╣реБрдд рдЦреБрд╢реА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреБрдЫ рд╕рдордп рдмрд╛рдж, 3 рдХрд╛рд░реНрдп рдмрдирд╛рдП рдЧрдП (рд╣рд╛рд▓рд╛рдВрдХрд┐ 5 рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереА), рдЬреВрд░реА рд╕рджрд╕реНрдпреЛрдВ рдФрд░ рд░реЗрдЯрд┐рдВрдЧ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛

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

рдореИрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред KeyGenMe рдЙрддрдирд╛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдпрд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддреБрдЪреНрдЫ рдирд╣реАрдВ
рдФрд░ рдПрдХ рдЧреИрд░-рдорд╛рдирдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдЫреЛрдЯрд╛ рдкреНрд▓рд╕ рдЕрдирдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
KeyGenMe рд╡рд┐рдХрд▓реНрдкред

рд╕реМрднрд╛рдЧреНрдп рд╣реИ


рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

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

рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреВрд░рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ .map рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред


рдФрд░ рд╣рдореЗрдВ рдмрдЯрди рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрддрд╛ рд╣реИред


OllyDbg рдореЗрдВ .map рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореИрдкрд┐рдореНрдк рдкреНрд▓рдЧрдЗрди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, .map рдлрд╝рд╛рдЗрд▓ рдЙрд╕реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реЗрдЬреА рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рдорд╛рди рдирд╛рдо рдХреЗ рд╕рд╛рде, рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкреНрд▓рдЧ-рдЗрди рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдЬрдм рдЖрдк рдУрд▓рдХ рдореЗрдВ рдХреАрдЬрди рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЖрдкрдХреЛ .map рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВрдЧреЗред "рд╣рд╛рдБ" рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред рдпрджрд┐ рдХреБрдЫ рдЧрд▓рдд рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдореБрдЦреНрдп рдореЗрдиреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреВрд░реА рддреИрдпрд╛рд░реА рдХреА рдЬрд╛рддреА рд╣реИред рдЪреЗрдХ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рд░реНрдп рдХреЗ рдкрддреЗ рдкрд░ рдСрд▓рд┐рд╡рдбрдЧ рдкрд░ рдЬрд╛рдПрдВ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдЖрдИрдбреАрдЖрд░ рдХреЗ рд╕рд╛рде рдпрд╛рдж рд░рдЦрдирд╛ / рд▓рд┐рдЦрдирд╛ / рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд╛рдо рдФрд░ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ (рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ), рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рдЪрд▓рддрд╛ рд╣реИред

рдЕрд░реНрдерд╛рддреН TKeyEngine.Create, TKyeEngine рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЪреАрдЬреЛрдВ рдХреЗ рддрд░реНрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рд╡рд░реНрдЧ рдкреВрд░реЗ рд╕рд░реНрдХрд┐рдЯ рдХрд╛ рджрд┐рд▓ рд╣реИред рджреЛ рдлрд╝рдВрдХреНрд╢рди рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рджреВрд╕рд░реЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЗрд╕рдХреЗ рдХреЙрд▓ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣рд╛рдВ рд╡реЗ рд╕рднреА рд╕рдВрдкрдиреНрди рд╣реБрдПред рддреЛ, рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ред

рдкрд╣рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рд╣рдо рдЕрднреА рддрдХ рдПрдХ рдФрд░ рдЕрд╕рдВрдЧрдд рдмрд╛рдд рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдпрд╣ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЖрдХреНрд╖реЗрдк рд╣реИ, рдЬреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдореБрдЦреМрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдмрд╛рд▓ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рднреА рдЖрдЧреЗ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд╕рд┐рд░реНрдл рдорд╛рд╕реНрдХ рдХреА рдЦреЛрдЬ рдХрд░рдХреЗ рдкрд╣рд▓реА рдмреИрдардХ рдХрд╛ рдкрддрд╛ рдорд┐рд▓рд╛ рдФрд░ рдпрд╣ рдкрддрд╛ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдмрди рдЧрдпрд╛ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рд╣рдо рдпрд╣рд╛рдВ рд╕реЗ рдЕрдВрдд рдХреА рд╕реБрдмрд╣ рддрдХ рдЦреЛрдЬ рдХрд░реЗрдВрдЧреЗ, рдЬрдм рддрдХ рдХрд┐ рдЗрди рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдмрд╛рдврд╝ рди рд╣реЛ рдЬрд╛рдП (рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рджрд┐рдЦрддрд╛ рд╣реИ, рдХреБрдЫ рдорд┐рдирдЯ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдПрдХрд▓ рдСрдкрд░реЗрд╢рди, рдЭреБрдХрд╛рд╡ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЧрдгрдирд╛ рдирд╣реАрдВ рдереАред)ред
MOV addr, 0046BED9 @loop: FIND addr, #EB033BC?7?# CMP $RESULT, 0 JE @exit MOV addr, $RESULT FILL addr, 5, 90 ADD addr, 5 JMP @loop @exit: RET 

рдЦреИрд░, рдЗрд╕ рдЖрдкрддреНрддрд┐ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдХреБрдЫ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реБрдИрдВ - рдпрд╣ рд╣реИ рдХрд┐ 16 рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ рдмрд╛рдж рдХреЗ "рд╕рд░рд▓" рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рд▓рд┐рдП рдирд╛рдо рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХрдордЬреЛрд░ рджрд┐рдорд╛рдЧ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдЬреЛ рдЗрддрдиреЗ рдХреЛрдб рдирд╣реАрдВ рджреЗрдЦрддреЗ рдереЗ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдЖрддрдВрдХред рд▓реЗрдХрд┐рди "рд╢реИрддрд╛рди рдЗрддрдирд╛ рднрдпрд╛рдирдХ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ рд╡рд╣ рдЪрд┐рддреНрд░рд┐рдд рд╣реИред" рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЧрд╣рд░реА рд╢рдмреНрджрд╛рд░реНрде рднрд╛рд░ рдирд╣реАрдВ рдЙрдард╛рддрд╛ рд╣реИред рдореИрдВ 10001 * 16 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рдЗрд╕ рдмрдбрд╝реЗ рд▓реВрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдпрд╣ рдЪреАрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпрд╣ рд╕рдЪ рд╣реИ, рдХреЛрдб рдХрд╛ рдпрд╣ рдЪреАрд░-рдлрд╛рдбрд╝ рдХрд╛ рдЯреБрдХрдбрд╝рд╛ 12k рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди 6k рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдереЛрдбрд╝рд╛ рдХрдо рд░рд╣рдиреЗ рдХреЗ рдмрд╛рдж рдиреЛрдбреНрд╕ рд╕реЗ рдЗрд╕реЗ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЪреАрд░ рджреЗрдВ, рдЖрдк рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╣реА рд░реВрдк рдореЗрдВ рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рдЪреВрдБрдХрд┐ рдкреВрд░рд╛ рд╕рд░реНрдХрд┐рдЯ рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕рд░рдгреА рд╕реВрдЪрдХ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ 5 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде рдХрд╣реАрдВ рдЕрдВрджрд░ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рддрд╛рдордЭрд╛рдо рдХреЗ рдмрд┐рдирд╛ рдХреЗрд╡рд▓ рдПрдХ рд╕рд░рдгреА рдХреЛ рд╣рдорд╛рд░реЗ рд░рд┐рдкреНрдб рдХреЛрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдпрд╣ рдкрдЯрдХрдерд╛ рд▓рд┐рдЦреАред
 MOV addr, 0046BED9 @loop: OPCODE addr CMP $RESULT_2, 3 JB @next MOV temp, addr ADD temp, $RESULT_2 SUB temp, 2 MOV val, [temp], 1 CMP val, 43, 1 JE @ok CMP val, 53, 1 JNE @next @ok: INC temp MOV val, [temp], 1 SUB val, 5 MOV [temp], val, 1 @next: ADD addr, $RESULT_2 CMP addr, 004707A1 JA @exit JMP @loop @exit: RET 

рддрдм рдЖрдк рдкреВрд░реА рдмрд╛рдд рдХреЛ рдЪреАрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдм рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ рдерд╛ asm рдбрд╛рд▓рдиреЗ рдХреА рдорджрдж рд╕реЗ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдкрд░реЗрд╢рд╛рдирд┐рдпрд╛рдБ рдереАрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕рдордп рдореЗрдВ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╕рднреА рдХреЛ asm рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрдиреЗ рдФрд░ рдЗрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдиреЗ рддреБрд░рдВрдд рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ред рдлрдЯ рдХреЛрдб рдкрд░ рджреЛ рдФрд░ рдареЛрдХрд░реЗрдВ рд╣реИрдВ, рдпрд╣ рдЖрдХрд╛рд░ рдореЗрдВ рдПрдХ рдмрд╛рдЗрдЯ рдХреЗ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдЯреИрдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдЧрд▓рдд рдЬрдЧрд╣ рдФрд░ рдпрд╣рд╛рдВ рдИрдмреАрдкреА -5 рдореЗрдВ, рдпрд╣ рд╕рдм рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ рдореИрдВ рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рдкрде рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ рдЧрдпрд╛ рдкреНрд░рддрд┐рд░реЛрдз рдиреЗ рд╕реНрдерд╛рдиреАрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ (рдЬреИрд╕реЗ рд╕рдВрд░реЗрдЦрдг) рдХреЗ рд▓рд┐рдП 8 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдвреЗрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ред рдФрд░ рджреВрд╕рд░реА рдЧрдбрд╝рдмрдбрд╝реА рдпрд╣ рд╣реИ рдХрд┐ рдЕрднреА рднреА рдПрдХ рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЫреЛрдЯреА 2 рдЯреАрдо рд╣реИ, рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд░рд┐рдк / рд░реАрд░рд╛рдЗрдЯ рдХрд░реЗрдВ (рдореБрдЭреЗ рдпрд╣ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреМрди рддреЗрдЬ рд╣реИ) рдФрд░ рдХреЙрд▓ рдирд╛рдореЛрдВ рдХреЛ рдЕрдкрдиреЗ рд╕рд╛рде рдмрджрд▓реЗрдВред рдпрд╣ рд╕рдм, рдкреАрдЫреЗ рдХреЗ рд░рд╛рд╕реНрддреЗ рдХрд╛ рдПрдХ рдЪреМрдерд╛рдИ рд╣реИред

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

рдкрд╣рд▓рд╛ рдЗрд╕рдореЗрдВ рд╣рд╛рдЗрдлрд╝рди рдХреА рд▓рдВрдмрд╛рдИ рдФрд░ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд╛рдВрдЪ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдХрд┐ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреНрдпрд╛ рд╣реИ:
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX


рдлрд┐рд░ рд╣рд╛рдЗрдлрд╝рди рдЗрд╕реЗ рд╕реЗ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдбрд┐рдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдорд╛рдирдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЬрд▓реНрджреА рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рд╣реИред рдореБрдЦреНрдп рд╕реБрд░рд╛рдЧ рдпрд╣ рд╣реИ рдХрд┐ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЗ рдкрд╛рддреНрд░реЛрдВ рдХреЛ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдмреЗрд╕ 32 рд╣реИ , рдПрдХ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╣реИред рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 25 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рд╣реИ, рдФрд░ рдЬрд┐рд╕реЗ рдлрд┐рд░ рддреАрди рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкрд╣рд▓рд╛ 16 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рд╕рд░рдгреА рд╣реИ, рджреВрд╕рд░рд╛ 1 рдмрд╛рдЗрдЯ рдХрд╛ рдорд╛рди рд╣реИ, рдФрд░ рддреАрд╕рд░рд╛ 8 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рд╕рд░рдгреА рд╣реИред

 typedef struct _KEY { unsigned char SomeBytes[16]; unsigned char SomeCount; unsigned int CipherText[2]; } KEY, *LPKEY; 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕рдВрд░рдЪрдирд╛ рдХреЗ рддреАрд╕рд░реЗ рддрддреНрд╡ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореЗрд░рд╛ рдПрдХ рд╕рд╛рд░реНрдердХ рдирд╛рдо рд╣реИ, рдЖрдЧреЗ рджреЗрдЦрдХрд░ рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдПрдХ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдХреА рддреБрд▓рдирд╛ рд╕рдмрд╕реЗ рд╣рд╛рд▓ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╕рдВрджрд░реНрдн рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреА рдЧрдИ рд╣реИред рддреЛ, рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдФрд░ рдШрдЯрдХреЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдЕрдкрдШрдЯрди рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╕рдордп, рдПрдХ рдЬрд╛рдВрдЪ рд╣реЛрдЧреА рдХрд┐ KEY.SomeCount 32 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рд╣рдо рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЪрдХреНрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реНрд╡реИрдк WORD'S KEY.SomeBytes рдФрд░ рдирд╛рдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╕рд░рдгреА рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХреЛрдб рдХреЛ рдлреИрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдХреЛрдИ рддрд╛рд░реНрдХрд┐рдХ рдЕрд░реНрде рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд▓рд╛ рдПрдХ рд╣реА рд╕рд░рдгреА рдФрд░ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдкрд╣рд▓рд╛ рдкрд╣рд▓реЗ рдХреЗ рд╕рд╛рде, рджреВрд╕рд░рд╛ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде, рдЖрджрд┐ред
рдФрд░ рдлрд┐рд░ рджреВрд╕рд░рд╛ рд╕реНрд╡рд┐рдЪ рдЖрддрд╛ рд╣реИред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдирдХреА рдкрд╣рд▓реА рдЗрдЪреНрдЫрд╛ рдкреВрд░реА рдирд╣реАрдВ рд╣реБрдИ, рджреВрд╕рд░реЗ рдиреЗ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рднреА рдорд╛рдд рджреАред рдЕрдкрдиреЗ рдЖрдк рд╕реЗ, рдпрд╣ рд╕рд░рд▓ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдорд╛рди рдХреЗ рд▓рд┐рдП, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рд╣реА рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдлрд╝рдВрдХреНрд╢рди рд╕рднреА рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВред

рдЗрд╕ рдЬрдЧрд╣ рд╕реЗ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗред рдЗрд╕рд▓рд┐рдП, рд╕рд░рдгреА рдЧреЗрдо рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдирд╛рдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдореИрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдореЗрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЖрдЧреЗ рднрд╛рдЧ рд▓реЗрдЧрд╛)ред рдпрд╣ рдПрдХ рддрд░рд╣ рдХреЗ рдкреАрд╕реАрдУрдбреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрд╛рдЗрдЯ рдХрд╛ рдореВрд▓реНрдп рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛рдПрдЧреАред рдФрд░ KEY.SomeBytes рд╕рд░рдгреА рдХреЗ рддрддреНрд╡ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдФрд░ рдЬрд┐рди рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдЗрд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдирдХреЗ рд╕рдорд╛рди рд╕рд░рд▓ рддрд░реНрдХ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдмрд╛рдЗрдЯ рдХреЛ рдЗрд╕рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рддреА рд╣реИ, рдЙрд╕реЗ рдмрд┐рдЯ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдпрд╛ рдЙрд╕ рдмрд┐рдЯ рдХреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдмрд╛рдЗрдЯ рдкрд░ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдПрдХ рдЫреЛрдЯреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реЛрддреА рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдп рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд┐рдЯ рд╣реИ, рддреЛ рдЗрди рд╕рднреА рдЬреЛрдбрд╝рддреЛрдбрд╝реЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо KEY.CIFTText рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЕрд▓рдЧ рдХрд╛рдЙрдВрдЯрд░ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╢рд░реНрддреЗ рдХрд┐ рдпрд╣ рдЖрда рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ (рдЯреА .eред 8 рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди KEY.CipherText рдореЗрдВ рдХрд┐рдП рдЧрдП рдереЗ) рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдФрд░ рдХрд╛рдЙрдВрдЯрд░ рднреА рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдмрдврд╝рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдпрджрд┐ рдереЛрдбрд╝рд╛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рд╣рдореЗрдВ рдПрдХ рдмрд╛рдЗрдЯ рдорд┐рд▓рддреА рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдпреЗ рд╕рднреА рдЗрд╢рд╛рд░реЗ рд╣реЛрддреЗ рд╣реИрдВред рдЗрди рд╕рднреА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп, рдПрдХ рднреЗрджреНрдпрддрд╛ рдкреНрд░рдХрдЯ рдХреА рдЧрдИ рдереА рдЬрд┐рд╕рдиреЗ рдЗрди рд╕рднреА рдЬреЛрдбрд╝рддреЛрдбрд╝реЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдереАред рдпрд╣ рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рдпрджрд┐ KEY.CipherText рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рдмрд┐рдЯ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ KEY.CipherText рдХрднреА рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛, рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдпрд╣ рдЖрдкрдХреЛ KEY.CipherText рдХреЛ рдЙрд╕рдХреЗ рдореВрд▓ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣рдордиреЗ рдЗрд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред

рдФрд░ рдпрд╣реА рд╣реИ, рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдорд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрдЦреМрдЯрд╛ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рдмрд┐рдЯ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХреЛ рдмрд┐рдЯ рдХреЛ рд╕реЗрдЯ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдмрд╛рдЗрдЯ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ, рдпрд╣ рджреВрд╕рд░реЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯреНрд╕ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рд╕реЗ рдЧрд┐рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рд╣рдореЗрдВ рдПрдХ рдЪреЗрдХ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдмрд┐рдЯреНрд╕ рдЦреЛрдЬрдиреЗ рдХреА рдЗрд╕ рджрд┐рдирдЪрд░реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдмрд┐рдЯреНрд╕ рдХреЛ рдвреВрдВрдврддреА рд╣реИ, рдЙрдирд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдорд╛рд╕реНрдХ рднреА рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реИред
 MOV addr, 004707FC ALLOC 100 CMP $RESULT, 0 JE @error MOV table, $RESULT PUSHA MOV c, 0 @loop: FIND addr, #751190909090900FB643260FB6440326884304# CMP $RESULT, 0 JE @exit MOV cl, [$RESULT - 1], 1 MOV addr, $RESULT ADD addr, 13 FIND addr, #751E90909090900FB643260FB65304885403269090909090FE4326# CMP $RESULT, 0 JE @exit MOV bl, [$RESULT - 1], 1 OR bl, cl NOT bl MOV [table + c], bl, 1 MOV addr, $RESULT ADD addr, 20 INC c CMP c, 100 JE @exit JMP @loop @exit: POPA DM table, 100, "table.bin" FREE table, 100 @error: RET 

рдЗрд╕ рдЪрдХреНрд░ рдХреЗ рдмрд╛рдж, рдмрд┐рдЯ рдХрд╛рдЙрдВрдЯрд░ рдХреА рддреБрд▓рдирд╛ KEY.SomeCount рдХреЗ рдорд╛рди рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ, рдпрджрд┐ рд╡реЗ рд╕рдорд╛рди рд╣реИрдВ, рддреЛ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдлрд┐рдирд┐рд╢ рд▓рд╛рдЗрди рдкрд░ рд╣реИрдВред рдЕрдЧрд▓рд╛ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдХреЙрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ KEY.CipherText рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдВрджрд░ рдХреБрдЫ рдФрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА рдЬрдм рддрдХ рдХрд┐ рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЯреАрдИрдП рдкрд░рд┐рд╡рд╛рд░ рд╕реЗ рдХреБрдЫ рдерд╛ред рдЬрд╣рд╛рдВ рдбреЗрд▓реНрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣рд╛рдВ XTEA рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╣реЛрдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдореВрд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдорд╛рдореВрд▓реА рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рдеред

рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдХреНрд░реАрди рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдХрд┐ рд╕рдВрд╢реЛрдзрди рдХрд╣рд╛рдБ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдерд╛ рдХрд┐ рдХреЛрд╖реНрдардХ рдХреА рд╕реНрдерд┐рддрд┐ рджреЛ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдмрджрд▓ рдЧрдИ рдереА, рдЕрд░реНрдерд╛рддреНред рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИред
рдореВрд▓:
 void xtea_decipher(unsigned int num_rounds, uint32_t *v, uint32_t const *k) { unsigned int i; uint32_t v0=v[0], v1=v[1], delta=0x9E3779B9, sum=delta*num_rounds; for (i=0; i < num_rounds; i++) { v1 -= (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]); sum -= delta; v0 -= (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]); } v[0]=v0; v[1]=v1; } 

рд╕рдВрд╢реЛрдзрд┐рдд:
 void xtea_decipher(unsigned int num_rounds, uint32_t *v, uint32_t const *k) { unsigned int i; uint32_t v0=v[0], v1=v[1], delta=0x9E3779B9, sum=delta*num_rounds; for (i=0; i < num_rounds; i++) { v1 -= ((((v0 << 4) ^ (v0 >> 5)) + v0) ^ sum) + k[(sum>>11) & 3]; sum -= delta; v0 -= ((((v1 << 4) ^ (v1 >> 5)) + v1) ^ sum) + k[sum & 3]; } v[0]=v0; v[1]=v1; } 


рддреЛ, рд╕рдм рдХреБрдЫ рдмреАрдд рдЪреБрдХрд╛ рд╣реИ, рдпрд╣ рдлрд┐рдирд┐рд╢ рд▓рд╛рдЗрди рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдЬрд┐рд╕рдХреЗ рд╕реНрдерд╛рди рдкрд░ CRACKLAB рд╢рдмреНрдж рдХреЗ рд╕рд╛рде рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдмрд╛рдж рдбреЗрдЯрд╛ рдХреА рддреБрд▓рдирд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕ рд╢рдмреНрдж рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдмрд╕ рдЗрддрдирд╛ рд╣реА, keygen рд▓рд┐рдЦреЗрдВред

рдкрд░рд┐рдгрд╛рдо

Keygen рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА: рдПрдХ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреНрдб рдХреЛрдб, Base32Encoding рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рд╕рдВрд╢реЛрдзрд┐рдд XTEA рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдПрдХ рдореБрдЦреМрдЯрд╛ рддрд╛рд▓рд┐рдХрд╛, рдФрд░ рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдХреЛрдб рдЬреЛрдбрд╝реЗрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдбрдВрдк рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдХреЛрдб рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд░ рдХреЛрдИ рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╡рд╣ рдлрд┐рдЯ рджреЗрдЦрддрд╛ рд╣реИред рдХреНрд░рдорд╛рдВрдХрди рдкреАрдврд╝реА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рд╣реИрдВ:
  1. рдирд╛рдо => name_array [16]
  2. рдореЛрд░реНрдл (name_array)
  3. KEY.SomeBytes [i] = рдпрд╛рджреГрдЪреНрдЫрд┐рдХ () рдФрд░ рддрд╛рд▓рд┐рдХрд╛ [name_array [i]]
  4. KEY.SomeCount = рдмрд┐рдЯреНрд╕рдХрд╛рдЙрдВрдЯ (KEY.SomeBytes)
  5. KEY.CipherText = xtea_encode ("CRACKLAB")
  6. SerialBase = Base32Encode (KEY)
  7. рд╕реАрд░рд┐рдпрд▓ = рдЗрдиреНрд╕рд░реНрдЯрдбреЗрдлрд╝рд┐рд╕ (рд╕реАрд░рд┐рдпрд▓рдмрд╕реЗ)


рдореЗрд░реА рдХреАрдЬрди: github.com/reu-res/CRACKLAB-Contest-2010

рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рджреВрд╕рд░реЗ рдХрд╛рд░реНрдп рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реВрдВрдЧрд╛, рдЬреЛ рд╢рд╛рдпрдж рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред рдзреНрдпрд╛рди рджреЗрдВ! рд╡рд╣рд╛рдВ рдЖрдкрдХреЛ рд╡реАрдПрдо (рдареАрдХ рд╣реИ, рд▓реЗрдЦрдХ рдиреЗ рдРрд╕рд╛ рдХрд╣рд╛) рдХреА рдЪрд░реНрдЪрд╛ рдорд┐рд▓реЗрдЧреА, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рднрд┐рдиреНрдирддрд╛ рд╣реИ рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВред рдЬрд▓реНрдж рдорд┐рд▓рддреЗ рд╣реИрдВред

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


All Articles