
рдЕрдзреНрдпрд╛рдп 1. рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдЕрддрд┐рдерд┐
рдпрд╣ рд╕рдм рдЙрд╕ рдмреАрдорд╛рд░ рд╕реБрдмрд╣ рд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ рдЬрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдмрдВрдзрдХ рдиреЗ рдШреЛрд╖рдгрд╛ рдХреА рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╕рдордп рд╕реАрдорд╛ рдЬрд▓реНрджреА рдФрд░ рдирд┐рд░реНрдгрд╛рдпрдХ рд░реВрдк рд╕реЗ рдПрдХ рдорд╣реАрдиреЗ рдХрдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдкрд░рд┐рдпреЛрдЬрдирд╛ 4 рджрд┐рдиреЛрдВ рдореЗрдВ рддреИрдпрд╛рд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдирд╣реАрдВ, рд╣рдорд╛рд░рд╛ рдкреАрдУ рдХреЛрдИ рдЬрд╛рдирд╡рд░ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╕рднреА
рдЙрд▓реНрд▓реВ рдХреА рддрд░рд╣ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдХреМрд╡рд╛ рдХреА рддрд░рд╣ рдереЛрдбрд╝рд╛ рд╕рд╛), рдпрд╣ рдмрд╕ рд╣реБрдЖред рдареАрдХ рд╣реИ, рдпрджрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдЯреАрдо (рдФрд░ рдореИрдВ "рд╕реА" рдЯреАрдо рдХрд╛ рдкреНрд░рдореБрдЦ рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ) рдиреЗ рдмрд╣реБрдд рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ред рдШрдбрд╝реА рдФрд░ рдХреИрд▓реЗрдВрдбрд░ рдЧреБрд░реБрд╡рд╛рд░ рдерд╛, 11:00, рд╕реЛрдорд╡рд╛рд░ рддрдХ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рддреИрдпрд╛рд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдо рд╕рд┐рдиреЗрдорд╛рдШрд░реЛрдВ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рди рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рд╣реИрдВ - рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдФрд░ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓, рдлрд┐рд▓реНрдо рд╕реНрдХреНрд░реАрдирд┐рдВрдЧ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рди, рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрд╡реАрдбрд┐рдпреЛ рдкреИрдирд▓, рдФрд░ рдЕрдм рдЯрд┐рдХрдЯ рдФрд░ рдмрд╛рд░ рдХреА рдмрд┐рдХреНрд░реА рдХреЗ рд▓рд┐рдП рдЯрд░реНрдорд┐рдирд▓ рднреАред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЕрдВрддрд┐рдо рдЕрдиреБрдЪреНрдЫреЗрдж рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИред
рд╕реНрд╡рдпрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдЬрд┐рд╕реЗ рд╕реЛрдорд╡рд╛рд░ рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛, рд╕реНрдХрд╛рд▓рд╛ рдФрд░ рдЖрдпрд░рди рдкреЗрдореЗрдВрдЯ рдЯрд░реНрдорд┐рдирд▓ рд╡реЗрд░рд┐рдлрд╝реЛрди рд╡реАрдПрдХреНрд╕ 820 рдкрд░ рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдПрдХ рддрд░рд╣ рдХреА рдкрд░рдд рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдзрд┐рдХ рдЯрд░реНрдорд┐рдирд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдВ)ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рд╣рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЗрдирджреЗрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП Sberbank / Arcus рдФрд░ UCS рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХреА рдпреЛрдЬрдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

рдмрд╛рд╣реНрдп рд░реВрдк рд╕реЗ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рд╕рд╛рде рд╣реА, рдЗрд╕ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдирдХ рдХреИрд╢ рд░рдЬрд┐рд╕реНрдЯрд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕рднреА рдиреЗ рдХреИрд╢рд┐рдпрд░ рдХреЗ рдХрд┐рд╕реА рднреА рдлрд┐рд▓реНрдо рдерд┐рдпреЗрдЯрд░ рдореЗрдВ рджреЗрдЦрд╛ рд╣реЛред
рдЖрдВрддрд░рд┐рдХ рдкрд░рдВрдкрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рдЕрдкрдиреА рдЯреАрдо рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдУрд▓реНрдб рдиреЙрд░реНрд╕ рдкреМрд░рд╛рдгрд┐рдХ рдХрдерд╛рдУрдВ рд╕реЗ рдПрдХ рдирд╛рдо рдХрд╣рддреЗ рд╣реИрдВ, рдЗрд╕ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЬрд┐рдлрдЬреЙрди рдирд╛рдо рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ - рдкреНрд░рдЬрдирди рдХреНрд╖рдорддрд╛ рдФрд░ рдЙрд░реНрд╡рд░рддрд╛ рдХреА рджреЗрд╡реА рдХрд╛ рдирд╛рдо (рдПрдХ рднреБрдЧрддрд╛рди рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд╛рдо, рдпрд╣ рдирд╣реАрдВ рд╣реИ? рдЦреИрд░, рджреНрд╡реАрдк рд╕реЗ рдХрдЯрдиреЗ рд╡рд╛рд▓реЗ рдмреИрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рдВрд╡рджрдВрддреА рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдлрд┐рдЯ рдХрд░рддреА рд╣реИ) рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛ рд╕реЗ рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд╛рдЯрдирд╛)ред
рдЗрдирдХрдорд┐рдВрдЧ рдФрд░ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдПрдХ HTTP рд╕рд░реНрд╡рд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ JSON рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╕реНрдХрд╛рд▓рд╛ рдХреЗ рдмреАрдЪ рдЗрд╖реНрдЯрддрдо рд╕рдордЭреМрддрд╛ рд╣реИ, рдЬреЛ рд╕реЙрдХреЗрдЯ рдзрд╛рд░рд╛рдУрдВ рдФрд░ рд╕реА рд╕реЗ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдбреЗрдЯрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЙрддрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдардирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рдСрдкрд░реЗрд╢рди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рди рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ: рднреБрдЧрддрд╛рди, рд░рджреНрдж рдХрд░рдирд╛, рд╡рд╛рдкрд╕реА, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд░рд┐рдкреЛрд░реНрдЯ, рд╕реЗрд╡рд╛ рдореЗрдиреВ рдЦреЛрд▓рдирд╛ рдФрд░ рдкрд┐рдВрдЧ рдХрд░рдирд╛ред рдпрд╣ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рддреАрди рдмреИрдВрдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╣реИрдВ (рдФрд░ рдмрд╛рдж рдореЗрдВ рдкрд░рд┐рд╡рд╛рд░ рдХреА рдкреБрдирдГрдкреВрд░реНрддрд┐ рдХреА рдЙрдореНрдореАрдж рд╣реИ), рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛:

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

(рдлреЛрдЯреЛ: heaclub.ru)
... рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдЙрд╕ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд╛ рдХреЛрдб, рдЬреЛ рдХрдИ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рддрд╛рдХрд┐ рд╕рднреА рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХреЗ рдХрд┐ рд╣рдо рдмреИрдВрдХрд┐рдВрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЗрдЦрд╛ред
char buf[BUF_KB * 2]; char * null; char * grep; #ifdef _WIN32_WINNT char * ptr; null = "nul"; grep = "findstr"; #else null = "/dev/null"; grep = "grep"; #endif sprintf(buf, "%s %"PRIi32"= %sops.ini >%s 2>%s || " "echo %"PRIi32"=9,6,PINPAD_TEST >> %sops.ini", grep, TERM_ARCUS_TEST_PINPAD, TERM_PATH, null, null, TERM_ARCUS_TEST_PINPAD, TERM_PATH); #ifdef _WIN32_WINNT ptr = buf; while (*ptr) { if (*ptr == '/') *ptr = '\\'; ptr++; } #endif
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдЙрддреНрдкрд╛рджрди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред
рдкреНрд░рддреНрдпреЗрдХ рдмреИрдВрдХ рдЬреЛ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рджреЛ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рд░реНрдпреЛрдВ (.so / .dll) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рдПрдХ рддреИрдпрд╛рд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ рджреЛ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рд░рд╛рд╢рд┐ (рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░)ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ, рдмрд╕ рдХреБрдЫ
char buffer[100]; sprintf(buffer, "%d %d", atoi(argv[1]), atoi(argv[2])); system(buffer);
рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо "рдИ" рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдлрд╝рд╛рдЗрд▓ "рдкреА" рдореЗрдВ рд╕реНрд▓рд┐рдк-рдЪреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рд┐рд░реНрдл JSON рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬреЗрдВ, рддрд╛рдХрд┐ HTTP рд╕рд░реНрд╡рд░ рд╕рд┐рд░реНрдл рдЙрдиреНрд╣реЗрдВ рдкреЗрд▓реЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд┐рдирд╛ред
рд▓реЗрдХрд┐рди рдпрд╣ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реЛрддрд╛ рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рд╣реЛрддрд╛ред
рдЕрдзреНрдпрд╛рдп 4. рдкрд╣рд╛рдбрд╝ рдХреЗ рдиреАрдЪреЗ рдФрд░ рдкрд╣рд╛рдбрд╝ рдХреЗ рдиреАрдЪреЗ
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрд▓ рдерд╛ - HTTP рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХреАрдХреГрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рдЖрд╡рд░рдг рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХреНрд╕-рд░рд┐рдкреЛрд░реНрдЯ 4 рд╣реИ), рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП gfj_pilot, рдиреЗ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде sb_pilot рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХреНрд╕-рд░рд┐рдкреЛрд░реНрдЯ 9)ред ред рдлрд┐рд░ рд░реИрдкрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдИ-рдлрд╛рдЗрд▓ рд╕реЗ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкрдврд╝рддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 2000 - "рднреБрдЧрддрд╛рди рдиреЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛, рдСрдкрд░реЗрд╢рди рджреЛрд╣рд░рд╛рдПрдВ") рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рддреНрд░реБрдЯрд┐ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 3 - "рдХрд╛рд░реНрдб / рдЦрд╛рддреЗ рдХреЛ рдкрдврд╝рдиреЗ рдпрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐, рдСрдкрд░реЗрд╢рди рдХреЛ рджреЛрд╣рд░рд╛рдПрдВ")ред рдЙрд╕рдХреЗ рдмрд╛рдж, "p" рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрд╡рд░реВрдкрдг рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП base64 рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ JSON рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рднреЗрдЬрд╛ рдЧрдпрд╛ред
рдпрд╣ рд╕рдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрдм рддрдХ рдХрд┐ рдПрдХ рдареАрдХ рдХреНрд╖рдг рдореЗрдВ рд╣рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ ...
... рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдареАрдХ рд╣реИ, рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рдЦреБрдж рдХреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ (рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╕реНрд▓рд┐рдк Cp-1251 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ, рдФрд░ рдХрдВрд╕реЛрд▓ CP866 рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред "рдИ" рдлрд╝рд╛рдЗрд▓ рдмрд╕ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реБрдИ рдереАред рд╕реАрдзреЗ рдмреИрдВрдХрд┐рдВрдЧ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╢реБрд░реВ рдХреА:
C:\banks\sber\sb_pilot>dir C . : B401-6B9D C:\banks\sber\sb_pilot 04.02.2019 12:28 <DIR> . 04.02.2019 12:28 <DIR> .. 31.01.2019 17:12 10 832 F12X24.BIN 31.01.2019 17:12 128 000 gate.dll 31.01.2019 17:12 72 192 loadparm.exe 31.01.2019 17:12 36 204 OPT0.R 31.01.2019 17:12 20 716 OPT1.R 31.01.2019 17:12 1 806 OPT3.R 31.01.2019 17:12 388 608 pilot_nt.dll 31.01.2019 23:06 463 pinpad.ini 31.01.2019 17:12 91 136 posScheduler.exe 31.01.2019 17:12 418 printers.ini 01.02.2019 16:51 91 646 sbkernel1902.log 31.01.2019 17:12 653 312 sbrf.dll 31.01.2019 17:12 840 192 SBRFCOM.dll 31.01.2019 17:12 3 142 656 sb_kernel.dll 01.02.2019 16:51 9 SESS.D 01.02.2019 16:51 715 SPLC.D 31.01.2019 17:12 72 192 upwin.exe 20 5 659 718 2 37 567 004 672 # (1) 10 (1000 ) C:\banks\sber\sb_pilot>loadparm.exe 1 1000 C:\banks\sber\sb_pilot>dir C . : B401-6B9D C:\banks\sber\sb_pilot 04.02.2019 12:28 <DIR> . 04.02.2019 12:28 <DIR> .. 04.02.2019 12:28 216 commerr.log 31.01.2019 17:12 10 832 F12X24.BIN 31.01.2019 17:12 128 000 gate.dll 31.01.2019 17:12 72 192 loadparm.exe 31.01.2019 17:12 36 204 OPT0.R 31.01.2019 17:12 20 716 OPT1.R 31.01.2019 17:12 1 806 OPT3.R 01.02.2019 18:51 1 349 p 31.01.2019 17:12 388 608 pilot_nt.dll 31.01.2019 23:06 463 pinpad.ini 31.01.2019 17:12 91 136 posScheduler.exe 31.01.2019 17:12 418 printers.ini 04.02.2019 12:28 92 218 sbkernel1902.log 31.01.2019 17:12 653 312 sbrf.dll 31.01.2019 17:12 840 192 SBRFCOM.dll 31.01.2019 17:12 3 142 656 sb_kernel.dll 01.02.2019 16:51 9 SESS.D 01.02.2019 16:51 715 SPLC.D 31.01.2019 17:12 72 192 upwin.exe 19 5 659 029 2 37 567 008 768 C:\banks\sber\sb_pilot>
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЛрдИ "рдИ" рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИред Sberbank # 1 рдХреА рдУрд░ рдкрддреНрдерд░ред рд╣рдо Sberbank рдХреЛ рдПрдХ рдкрддреНрд░ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ (рд╣рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдПрдХ рдЙрддреНрддрд░ рдорд┐рд▓рд╛ рдХрд┐ рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП), рдФрд░ рдЪреВрдВрдХрд┐ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХрд╛ рдХреЛрдИ рд╕рдордп рдирд╣реАрдВ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЕрднреА рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
04.02 12:28:55 SBKRNL: Failed to open device \\.\COM1, err 2 04.02 12:28:56 SBKRNL: Failed to open device \\.\COM1, err 2 04.02 12:28:56 SBKRNL: Result = 0 04.02 12:28:56 GATE: unlock:'00000054' 04.02 12:28:56 GATE: lock:'00000054' 'UPOSWINMUTEX2' 04.02 12:28:56 GATE: unlock:'00000054' 04.02 12:28:56 LOADPARM: Unloading GATE.DLL... 04.02 12:28:56 GATE: SB_KERNEL.DLL is unloaded 04.02 12:28:56 LOADPARM: GATE.DLL unloaded
рд╣рд╛рдБ, рдкрд░рд┐рдгрд╛рдо рд▓реЙрдЧ sbkernel.log рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдирдХреНрд╢рд╛ рд╣реИрд╢ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдмрд╛рдж рдореЗрдВ рд╕реНрдХреНрд░реИрдм рд╕реЗ "рдереИрдВрдХреНрдпреВ" рдкреЗрдВрдЪ рд╣реИред рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред
рдЖрдкрдХреЛ pil_nt.dll рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрд╕рд╕реЗ рдЖрдпрд╛рдд рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди ... Sberbank # 2 рдХреА рдУрд░ рдПрдХ рдкрддреНрдерд░: рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдРрд╕реА рдХреЛрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рд╣реЛрдВрдЧреЗ - рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП, sb_pilot рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ (loadparm.exe рдХреЗ рд╕рдорд╛рди), рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рддрд╣рдд рдПрдХ рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдкрддреНрдерд░ # 3ред ), рд╡рд┐рдиреНрдбреЛрдЬрд╝ рдХреЗ рддрд╣рдд рдкрд╛рдпрд▓рдЯ_nt.dll рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВред
рдЕрдзреНрдпрд╛рдп 5. рдЕрдВрдзреЗрд░реЗ рдореЗрдВ рдкрд╣реЗрд▓рд┐рдпреЛрдВ
19:00 рдмрдЬреЗред
Sberbank рдПрдХ рдмрдбрд╝реА рдХрдВрдкрдиреА рд╣реИ, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕рдорд╛рдзрд╛рди GOSTs рдФрд░ рдФрдкрдЪрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрддреНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдо рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ Sberbank рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИ:
Sberbank$ ls -l Docs 30160 drwx------ 2 alex alex 4096 17 19:31 FAQ -rw-rw-r-- 1 alex alex 3398465 9 2018 UPOS ().docx -rw-rw-r-- 1 alex alex 1182078 9 2018 UPOS .docx -rw-rw-r-- 1 alex alex 853504 9 2018 .doc drwx------ 3 alex alex 4096 31 17:11 -rw-rw-r-- 1 alex alex 5280787 9 2018 POS-.docx -rw-rw-r-- 1 alex alex 1149640 9 2018 .docx drwx------ 2 alex alex 4096 28 2018 UPOS drwx------ 2 alex alex 4096 28 2018 -rw-rw-r-- 1 alex alex 3451601 9 2018 ().docx -rw-rw-r-- 1 alex alex 1956196 9 2018 .docx -rw-rw-r-- 1 alex alex 1043161 9 2018 ()_().docx -rw-rw-r-- 1 alex alex 4348157 9 2018 POS-.docx -rw-rw-r-- 1 alex alex 3970267 9 2018 .docx drwx------ 3 alex alex 4096 28 2018 -rw-rw-r-- 1 alex alex 2644702 9 2018 POS-.docx drwx------ 2 alex alex 4096 28 2018 -rw-rw-r-- 1 alex alex 1558211 9 2018 .png
рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдЪреНрдЫреЗ, рд▓реЗрдХрд┐рди рд╣рдо рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:
Sberbank$ ls -l Docs/\ \ \ / 8704 -rw-rw-r-- 1 alex alex 47105 9 2018 1C.docx -rw-rw-r-- 1 alex alex 1824 9 2018 cardtype.h -rw-rw-r-- 1 alex alex 2590378 9 2018 cr_ttk_protocol_ru.rtf -rw-rw-r-- 1 alex alex 208 9 2018 deprtmnt.h -rw-rw-r-- 1 alex alex 16681 9 2018 errors.h drwx------ 6 alex alex 4096 28 2018 examples -rw-rw-r-- 1 alex alex 58575 9 2018 gate.h -rw-rw-r-- 1 alex alex 4218 9 2018 paramsln.h -rw-rw-r-- 1 alex alex 61693 9 2018 pilot_nt.h -rw-rw-r-- 1 alex alex 28160 9 2018 ReadTrack2.doc -rw-rw-r-- 1 alex alex 7417 9 2018 sbkernel.h -rw-rw-r-- 1 alex alex 144896 9 2018 sb_pilot.doc -rw-rw-r-- 1 alex alex 3525323 9 2018 ole- sbrf.dll.rtf -rw-rw-r-- 1 alex alex 46683 9 2018 gate.dll.chi -rw-rw-r-- 1 alex alex 255414 9 2018 gate.dll.chm -rw-rw-r-- 1 alex alex 814653 9 2018 gate.dll.pdf -rw-rw-r-- 1 alex alex 41618 9 2018 pilot_nt.chi -rw-rw-r-- 1 alex alex 241716 9 2018 pilot_nt.chm -rw-rw-r-- 1 alex alex 968753 9 2018 pilot_nt.pdf -rw-rw-r-- 1 alex alex 81 9 2018 .txt
рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмреЗрдХрд╛рд░ рдХрд╛рдЧрдЬ, рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлрд┐рд░ рд╕реЗ рдкрдврд╝реЗрдВ рдкрд╛рдпрд▓рдЯ_рдирд╣реАрдВ, рдЬрд┐рд╕рд╕реЗ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реАрдЦрддреЗ рд╣реИрдВ:
рддрд╛рд▓рд┐рдХрд╛ 1. рд╕рдорд░реНрдерд┐рдд sb_pilot OSред
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдЕрднреА рднреА sb_pilot рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЦреИрд░, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдХреА рдЕрд╕рдВрдЧрддрд┐ рдХреЗ рд▓рд┐рдП Sberbank # 4 рдХреА рдУрд░ рдПрдХ рдкрддреНрдерд░ред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдгред
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЕрдВрдд рдореЗрдВ, рджреЛ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╛рдЗрд▓реЗрдВ рдмрдирддреА рд╣реИрдВ - рдПрдХреНрд╕рдЪреЗрдВрдЬ рдлрд╛рдЗрд▓ рдФрд░ рдЪреЗрдХ рдлрд╛рдЗрд▓ред
рдкрд╣рд▓реЗ рдХрд╛ рдирд╛рдо рдИ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЙрд▓рд┐рдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХрджрдо рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдХреЛрдб рдФрд░ рдкрд╛рда рд╕рдВрджреЗрд╢ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рдкрд╛рда рд╣реИред рдХреЛрдб 0 рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕рдлрд▓ рднреБрдЧрддрд╛рди, рдХреЛрдИ рдЕрдиреНрдп рдореВрд▓реНрдп - рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ рдпрд╛ рдЕрдХреНрд╖рдорддрд╛ред

рдЖрд▓рд╕реНрдп рд╕реЗ рд╣рдо рдПрдХ рдФрд░ рдкрддреНрдерд░ рдлреЗрдВрдХрддреЗ рд╣реИрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕реАрдзреЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛
рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб рд╕реЗ рдЦрд░реАрджрд╛рд░реА рдХрд░рддреЗ рд╕рдордп (рд▓реМрдЯрддреЗ рд╕рдордп), рдХреИрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЯреА-рдЯрд╛рдЗрдк рдФрд░ рдЕрдорд╛рдЙрдВрдЯ рдлреАрд▓реНрдб рдореЗрдВ рднрд░рдХрд░ рдФрд░ рд╢реЗрд╖ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╢реВрдиреНрдп рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ Sberbank рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ card_authorize () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ RCode рдлрд╝реАрд▓реНрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕рдореЗрдВ рдорд╛рди "0" рдпрд╛ "00" рд╣реИ, рддреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░реНрдг рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдЪреЗрдХ рдлрд╝реАрд▓реНрдб рдХреЗ рдореВрд▓реНрдп рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдпрд╣ NULL рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЧреИрд░-рд░рд╛рдЬрдХреЛрд╖реАрдп рдореЛрдб рдореЗрдВ) рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░
GlobalFree () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╣рдЯрд╛рдПрдВред рд╢рд┐рдлреНрдЯ рдХреЛ рдмрдВрдж рдХрд░рддреЗ рд╕рдордп, рдХреИрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЯреАрдмреА рдЯрд╛рдЗрдк = 7 рдлрд╝реАрд▓реНрдб рдХреЛ рднрд░рдХрд░ рдФрд░ рд╢реЗрд╖ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╢реВрдиреНрдп рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ Sberbank рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдХреНрд▓реЛрдЬрд╝_рдбреЗ () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрдд рдореЗрдВ, рдЪреЗрдХ рдлрд╝реАрд▓реНрдб рдХрд╛ рдорд╛рди рдЬрд╛рдВрдЪреЗрдВред
рдпрджрд┐ рдЪреЗрдХ рдлрд╝реАрд▓реНрдб NULL рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрд╕реЗ рдкреНрд░рд┐рдВрдЯ (рдЧреИрд░-рд░рд╛рдЬрдХреЛрд╖реАрдп рдореЛрдб) рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ GlobaFree () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рднреА рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред рдЦреИрд░, рдЗрд╕реЗ рдкреНрд▓рдЧ рдЗрди рдХрд░реЗрдВ, рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ ...
$ cat main.c && i686-w64-mingw32-gcc main.c -o main.a #include "pilot_nt.h" int main(void) { return 0; } In file included from main.c:1:0: pilot_nt.h:525:3: error: unknown type name 'auth_answer' auth_answer ans; ^ pilot_nt.h:544:3: error: unknown type name 'auth_answer' auth_answer ans; ^ pilot_nt.h:567:3: error: unknown type name 'auth_answer' auth_answer ans; ^ pilot_nt.h:590:3: error: unknown type name 'auth_answer' auth_answer ans; ^ pilot_nt.h:627:3: error: unknown type name 'auth_answer' auth_answer ans; ^ pilot_nt.h:668:3: error: unknown type name 'auth_answer' auth_answer ans;
рдЙрдореНрдореНрдореНрдотАж рдХреНрдпрд╛? рдЦреБрд▓реЗ рдкрд╛рдпрд▓рдЯ_рд╣реИрдВред
#ifdef __cplusplus extern "C"{ #endif <...> /** * * , . */ struct auth_answer{ int TType; /**< [in] . ::OpetationTypes */ unsigned long Amount; /**< [in] */ char RCode[3]; /**< [out] */ char AMessage[16]; /**< [out] */ int CType; /**< [in,out] */ char* Check; /**< [out] , GlobalFree */ }; <...> struct auth_answer7{ auth_answer auth_answ; /**< [in, out] . . ::auth_answer */ <---- THIS char AuthCode[MAX_AUTHCODE]; /**< [out] . 7 . */ char CardID [CARD_ID_LEN]; /**< [out] . 25 . */ int SberOwnCard; /**< [out] */ };
рддреБрд░рдВрдд, рдХреЛрдбрд┐рдВрдЧ CP1251 рдореЗрдВ рд░реВрд╕реА рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрддреНрдерд░ рдХреЛ рджреЗрдЦреЗ рдмрд┐рдирд╛ред
рдЦреИрд░, рд╕рдмрд╕реЗ рдЧрдВрднреАрд░ рдкрддреНрдерд░: рдкреНрд░рд┐рдп рд╕реА ++ рдбреЗрд╡рд▓рдкрд░реНрд╕ред рдпрджрд┐ рдЖрдк рдмрд╛рд╣рд░реА "C" рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдХреЛрдб рдХреЛ рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдиреЗ рдХрд┐рд╕реА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ `рдЯрд╛рдЗрдкрдлрд╝реЗрдб` рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рд╣реИ, рддреЛ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕реЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреАрд╡рд░реНрдб` рд╕реНрдЯреНрд░рдХреНрдЪрд░` рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреИрдЪ рдХрд░реЗрдВ, рдЬрд╣рд╛рдБ рднреА рдЬрд╝рд░реВрд░рдд рд╣реЛ, рд╢рдмреНрдж `рд╕реНрдЯреНрд░рдХреНрдЪрд░` рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ред `Pil_nt.dll` рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдирд╛ред рд╡рд┐рдЬрдп, рдирд╣реАрдВ? рд╣рдордиреЗ рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред
рдЕрдзреНрдпрд╛рдп 6. рдЖрдЧ рд╕реЗ рдЖрдЧ рдХреА рд▓рдкрдЯреЛрдВ рддрдХ
рдареАрдХ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рд╣реИ рдирд╛? рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЦреНрдп рддрдХ рд╕рд╣реАред рдзреНрдпрд╛рди рджреЗрдВ, рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рдлрд╝рдВрдХреНрд╢рди рдХрд╛ NIH рдПрдирд╛рд▓реЙрдЧ рдЬреЛрдбрд╝реЗрдВ: GetLastError (Microsoft рдХреА рдУрд░ рдкрддреНрдерд░ # 3, рдкрд╣рд▓реЗ рджреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣реИрдВ)ред
C:\banks\sber\WIN>sb_pilot.exe 1 1000 E: !g_sblibrary (0xc0000096)
0xc0000096? GetLastError рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рддреНрд░реБрдЯрд┐ рдХреЛрдб рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП?
рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХреА рдкреВрд░реА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЛрдб рджреЗрдЦреЗрдВред
рд╣рд╛рдБ,
рдпрд╣рд╛рдБ рд▓реЗрдЦ рдЦреЛрд▓реЗрдВ:
рдирд┐рдореНрди рд╡рд┐рд╖рдп рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХреА рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрди рдорд╛рдиреЛрдВ рдХреЛ WinError.h рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЛрдб (0-499) (0x0-0x1f3)
- рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЛрдб (500-999) (0x1f4-0x3e7)
- рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЛрдб (1000-1299) (0x3e8-0x513)
- рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЛрдб (1300-1699) (0x514-0x6a3)
- рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЛрдб (1700-3999) (0x6a4-0xf9f)
- рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЛрдб (4000-5999) (0xfa0-0x176f)
- рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЛрдб (6000-8199) (0x1770-0x2007)
- рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЛрдб (8200-8999) (0x2008-0x2327)
- рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЛрдб (9000-11999) (0x2328-0x2edf)
- рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЛрдб (12000-15999) (0x2ee0-0x3e7f)
рдареАрдХ рд╣реИ, рд╣рдореЗрдВ рдПрдХ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА, рд╣рдо рдПрдХ рдкрддреНрдерд░ рдлреЗрдВрдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рд░реНрд╡рдЬреНрдЮ рдЧреВрдЧрд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВ:
рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдмрд░реВрдЯреАрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
- _inp ()
- _inpw ()
- _inpd ()
- _outp ()
- _outpw ()
- _outpd ()
рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ NT рдХреЛрд░ рдХреЗ рддрд╣рдд рдирд┐рд╖рд┐рджреНрдз рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕реАрдзреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдмрдВрджрд░рдЧрд╛рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕ рдХреЛрдб рдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди NT рдХрд░реНрдиреЗрд▓ рдХреЛ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдмреЗрдХрд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐?
рдЕрдзреНрдпрд╛рдп 8. рдордХрдбрд╝рд┐рдпреЛрдВ рдФрд░ рдордХреНрдЦрд┐рдпреЛрдВ
рд░рд╛рдд 10 рдмрдЬреЗред рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдарддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдорд┐рдВрдЧрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд╕рд╛рде рдХреНрд░реЙрд╕-рд╕рдВрдХрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ Sberbank рдХреЗрд╡рд▓ 32-рдмрд┐рдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ 64-рдмрд┐рдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╣рдо 2019 рдореЗрдВ 32-рдХреЗрд╡рд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП Sberbank рдХреА рдУрд░ рдПрдХ рдкрддреНрдерд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВрдЧреЗред
рджрд┐рдпрд╛ рдЧрдпрд╛ : рд╡рд░реНрдЪреБрдЕрд▓рдмреЙрдХреНрд╕ рд╡рд┐рдВрдбреЛрдЬрд╝ 7 рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд;
рдЖрд╡рд╢реНрдпрдХ : рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ MVP рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБред
рд╣рдо Microsoft рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2017 рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рд▓реЗрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рд▓реЗрддреЗ рд╣реИрдВ, рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдпрд╣ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдЦрд░реАрджрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреБрдЫ рд╕реМ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ...
рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдУрдПрд╕ (рд╡рд┐рдВрдбреЛрдЬ 7) рдХрд╛ рд╣рдорд╛рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред
рдареАрдХ рд╣реИ, рд╣рдо рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЕрд╢реНрд▓реАрд▓ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рд╣рдо рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2008 рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдлрд┐рд░ рд╕реЗ рдХреБрдЫ рд╕реМ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ...
рд╣рдореЗрдВ iso рдлрд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИред
рдареАрдХ рд╣реИ, рдЖрдЗрдП рдЗрд╕ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╕реНрдХ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдорди рдЯреВрд▓реНрд╕ 10 рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╣ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рд╕рд╛рдЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ)ред
рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдмрд┐рдирд╛рд░ рдХреЛ рдЪрд▓рд╛рдПрдВред рдорд┐рд╕рдлрд╛рдпрд░, .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 4.5 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдбрд╛рдЙрдирд▓реЛрдб, рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред
рд╣рдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдмрд┐рдирд╛рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рд╕реНрдерд╛рдкрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдИ рд╣реИ, рдмреВрдЯрд▓реЛрдбрд░ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ 4.5.2 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред
рд╣рдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдмрд┐рдирд╛рд░ рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдмреВрдЯрд▓реЛрдбрд░ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ рдЬрдм рддрдХ рд╣рдо рд╕реБрд░рдХреНрд╖рд╛ рдЕрдкрдбреЗрдЯ KB3033929, рдбрд╛рдЙрдирд▓реЛрдб, рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдФрд░ рд╣рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╕реЗ рдЪреЗрд╣рд░реЗ рдкрд░ рдПрдХ рдердкреНрдкрдбрд╝ рдорд┐рд▓рддрд╛ рд╣реИ:

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

рд╣рдо рдХреЛрдб рдХреЛ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╕рдВрджрд┐рдЧреНрдз рд░реВрдк рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВред рдХреЛрдб рд╕рдорд╛рди рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ C ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рди рдХрд┐ Cред
рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рднрд╛рд╖рд╛ рдХрд╛ рдЗрд╕рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рд╣рдо Sberbank рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдХреЛрдб рдЦреАрдВрдЪрддрд╛ рд╣реИред
рд╣рдо рдЖрдЦрд┐рд░реА рдХрдорд┐рдЯрдореЗрдВрдЯ рджреЗрдЦрддреЗ рд╣реИрдВред
рдФрд░ рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдФрд░ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ Sberbank рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдмрджреНрдз рд╕рдВрд╕реНрдХрд░рдг 23 рд╕реЗ 27 рд╡реЗрдВ рддрдХ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рдЧреАрддрд╛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ - рдХрд╛рд░реНрдп рдХрд░реЗрдВ!
рд╣рдо Sberbank рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЧрдП рд╕рднреА рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЯреИрдмрд▓реЗрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ:
рдорд╣рд╛рди, рдЕрдм рдЪрд▓реЛ рдЪрдВрдЧрд╛ред рдЙрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рдЬрд╣рд╛рдВ рдЗрд╕рдХреА рд▓рд╛рдЧрдд 26 рд╣реИ, 29 рдпрд╛ 27 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рд╣реЛрддреА рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рд╣рдо NT рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП Sberbank рдХреА рдУрд░ рдкрддреНрдерд░ # 9 рдлреЗрдВрдХрддреЗ рд╣реИрдВред
рдЕрдзреНрдпрд╛рдп 12. рдЙрдирдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рдерд╛
рдкрд░реНрдпрд╛рдкреНрдд рдИ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ? рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ, рд╣рдо рдкреИрдХреНрдб рд╣реЗрдбрд┐рдВрдЧ рд▓реЗрддреЗ рд╣реИрдВ, рдбрд╛рдпрдирд╛рдорд┐рдХрд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд░рд┐рдЯрд░реНрди рдХреЛрдб рдХреЛ "рдИ" рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЪрд▓реЛ biner sb_pilot.exe рдФрд░ ...
рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдпрд╣ "рдХреНрд░рд┐рдкреНрдЯреЛрд░" рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рд╕рдВрд╕реНрдХрд░рдг "рдкреА" рдлрд╛рдЗрд▓ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИред
рд╣рдо рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдкреЛрд░ рдкрд░ рдЯрдкрдХрдиреЗ рд╡рд╛рд▓реЗ рдЦреВрди рдФрд░ рджреАрд╡рд╛рд░ рдореЗрдВ рд╕реЗрдВрдз рдкрд░редрд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдХреНрд░рд┐рдкреНрдЯреЛрдХрд░рдВрд╕реА рдХреНрдпрд╛ рд╣реИред
рдХреНрд░рд╛рдпрдкрд░реНрдЯрд╛ рдПрдХ рдбреЗрдирд┐рд╢ рдХрдВрдкрдиреА рд╣реИ рдЬреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдЙрдкрдХрд░рдг / рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрдХрд░рдг / рдЪрд╛рдмрд┐рдпрд╛рдБ рдЖрджрд┐ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреА рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рднреА рдиреЗ рдЙрдирдХреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рдкреНрд░рддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рджреЗрдЦрд╛:

рддреЛ, рд╕рд░реНрдмреИрдВрдХ рдкрд┐рдирдкреИрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХреНрд░рд┐рдкреНрдЯреЛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ "рдкреИрдЪреЗрдб" рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдордЭрддреЗ рд╣реИрдВ, "рдкреА" рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЗрд░реНрдмреИрдВрдХ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рд╣рдореЗрдВ рдЬрд╡рд╛рдм рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛ рдХрд┐ "рдореВрд▓ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рддрд╣рдд," рдкреА "рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА, рд▓реЗрдХрд┐рди рдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреИрдЪ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рддрд╣рдд рдпрд╣ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред" рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ # 10 рдкрддреНрдерд░ рджреЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЕрднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рдпрд╛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬрд┐рди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╣рдо рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ:
struct auth_answer{ int TType; unsigned long Amount; char RCode[3]; char AMessage[16]; int CType; char* Check; };
рдУрд╣, рдареАрдХ рд╣реИ, рдЪреЗрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ, рд╣рдо рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рддреБрд░рдВрдд JSON рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...
printf("%s\n", answer.Check);
рдФрд░ рд╣рдо рдПрдХ рдЕрдорд╛рдиреНрдп рдкреЙрдЗрдВрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рдХрд╛рд░рдг рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
рдЕрдзреНрдпрд╛рдп 14. рдЖрдЧ рдФрд░ рдкрд╛рдиреА
рд╕реБрдмрд╣ 4 рдмрдЬреЗред рд╣рдо рд╕реЗрда рдмрдиреНрдзреБ рд╕рд░реНрд╡рд╛рдВрдЧрд╛рд╕рди рдХреЛ рд╢рд╛рдВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдзреНрдпрд╛рди рд╕реЗ рдореИрдиреБрдЕрд▓ рдкрдврд╝рддреЗ рд╣реИрдВ:
[рдмрд╛рд╣рд░] рдЪреЗрдХ рдХреА рдЫрд╡рд┐, рдЧреНрд▓реЛрдмрд▓рдлреНрд░реА рджреНрд╡рд╛рд░рд╛ рдХреЙрд▓рд┐рдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдореБрдХреНрдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП
рдпрд╣ рд╣рдореЗрдВ рдХреНрдпрд╛ рджреЗрддрд╛ рд╣реИ? рдмрд╣реБрдд рдХреБрдЫред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЪреВрдВрдХрд┐ рд╕реВрдЪрдХ рдХреЛ GlobalFree рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдл рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП GlobalAlloc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕реЗрд▓реЛрдХреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдореЗрдореЛрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 16-рдмрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд╕реНрддреБ рдХреНрд░рдорд╛рдВрдХ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде HGLOBAL рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЧрдП рдмреНрд▓реЙрдХ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GlobalSize рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЦрд┐рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ GlobalLock рдХреЛ рдореЗрдореЛрд░реА рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдореВрд▓ рдкреЙрдЗрдВрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд╡реИрд╕реЗ, NIH рдореЙрд▓реЙрдХ рдФрд░ рдореБрдлреНрдд рдХреЗ рд▓рд┐рдП Microsoft рдХреА рдУрд░ рдкрддреНрдерд░ # 6, рдЬреЛ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╣реИрдВред
printf("%s\n", GlobalLock(answer.Check));
рдФрд░ рдЕрднреА рднреА рдПрдХ рдмреВрдВрдж рдорд┐рд▓рддрд╛ рд╣реИред рдареАрдХ рд╣реИ, GlobalSize рдХреНрдпрд╛ рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ? рд╢реВрдиреНрдп? рдХрд┐рд╕реА рддрд░рд╣ рдЕрдЬреАрдмред
рд╣рдо рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдкрд░реНрдЪреА рднреА рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП - рд╣рдо рдПрдХ рд╣реА рддрд╕реНрд╡реАрд░ рджреЗрдЦрддреЗ рд╣реИрдВред
рдпрд╣ рдХреЗрд╡рд▓ рдореЗрд░реЗ рд╕рд┐рд░ рдкрд░ рдЖрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдбреЗрдЯрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдиреЗ рдЖрдк рдПрдХ рдкрд░реНрдЪреА рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рднреБрдЧрддрд╛рди рдлрд╝рдВрдХреНрд╢рди рджреЗ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рдВ, Sberbank рдХреЗ рдкрд╛рд╕ card_authorize2..14 рдирд╛рдордХ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ, рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкрддреНрдерд░ рдирд╣реАрдВ рдбрд╛рд▓рд╛ рд╣реИ)
struct auth_answer14 { auth_answer ans; char AuthCode[MAX_AUTHCODE]; char CardID[CARD_ID_LEN]; int ErrorCode; char TransDate[TRANSDATE_LEN]; int TransNumber; int SberOwnCard; char Hash[CARD_HASH_LEN]; char Track3[CARD_TRACK3_LEN]; DWORD RequestID; DWORD Department; char RRN[MAX_REFNUM]; DWORD CurrencyCode; char CardEntryMode; char CardName[MAX_CARD_NAME_LEN]; char AID[MAX_AID_ASCII_LEN]; char FullErrorText[MAX_FULL_ERROR_TEXT]; DWORD GoodsPrice; DWORD GoodsVolume; char GoodsCode[MAX_GOODS_CODE+1]; char GoodsName[MAX_GOODS_NAME]; }; PILOT_NT_API int card_authorize14( char *track2, struct auth_answer14 *auth_answer, struct payment_info_item *payinfo );
рд╣рдо рдЦреЗрддреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ ... рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдиреЗ рд╣рдореЗрдВ рдЦреБрд╢реА рд╕реЗ рдЕрд▓рдЧ рдХрд░ рджрд┐рдпрд╛ - рдХрд╛рд░реНрдб рдзрд╛рд░рдХ рдХрд╛ рдЙрдкрдирд╛рдо рдФрд░ рдирд╛рдоред рдЙрдирдХреЗ рдмрд┐рдирд╛, рдПрдХ рдкрд░реНрдЪреА рдХреЛ рдХрд╛рдиреВрдиреА рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ :рд╡рд┐рд╡рд░рдг: рднреБрдЧрддрд╛рди рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдЯреАрдПрдо, рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдЯрд░реНрдорд┐рдирд▓ рдпрд╛ рдЕрдиреНрдп рддрдХрдиреАрдХреА рд╕рд╛рдзрдиреЛрдВ рдХреА рдкрд╣рдЪрд╛рди; рдСрдкрд░реЗрд╢рди рдХрд╛ рдкреНрд░рдХрд╛рд░; рд▓реЗрди-рджреЗрди рдХреА рддрд╛рд░реАрдЦ; рд▓реЗрдирджреЗрди рд░рд╛рд╢рд┐; рд▓реЗрдирджреЗрди рдореБрджреНрд░рд╛; рдХрдореАрд╢рди рд░рд╛рд╢рд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛрдб; рднреБрдЧрддрд╛рди рдХрд╛рд░реНрдб рд╡рд┐рд╡рд░рдгред
рдпрд╣ рдЕрдлрд╝рд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рдиреВрдиреА рдкрд░реНрдЪреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПредрдЪрд▓реЛ рдлрд┐рд░ рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░реЗрдВредрд╣рдореЗрдВ рд╡рд╣ рдЙрджрд╛рд╣рд░рдг рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ Sberbank "рдЙрджрд╛рд╣рд░рдг" рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ std::cout << "Authorization completion finished with code '" << result << "'" << std::endl; std::ofstream file(CHEQUE_FILENAME); file << argument.auth_answ.Check; file.close(); if (argument.auth_answ.Check) { std::cout << "Cheque saved to file " << CHEQUE_FILENAME << std::endl;
рдпрд╣ рдХреЗрд╡рд▓ рдкреЙрдЗрдВрдЯрд░ рдкрд░ рд╕реНрдерд┐рдд рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЙрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ ... рдмрд╕ рдЕрдЧрд░ рд╣рдо рдЗрд╕рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВрдЧреЗред рд▓рд╛рдЗрди рдкрд░ рдкреНрд░рд╕реНрдерд╛рди `рдлрд╝рд╛рдЗрд▓ << рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ.рдСрде_рдирд╕реНрд╡рд╛.рдЪреЗрдХ;`, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рд╕реЗрд░реНрдмреИрдВрдХ, рдЧреИрд░-рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП # 11 рдкрддреНрдерд░ рд░рдЦреЗрдВредрд╕реБрдмрд╣ 7 рдмрдЬреЗред рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдФрд░ рд░реИрдкрд░ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдбреЗрд▓реНрдлреА рдореЗрдВ рдХрдИ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рдореЗрдВ рдЬрд╡рд╛рдм рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдЙрдирдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЙрдирдХреЗ рд░реИрдкрд░ рдХреЗ рдЖрдзрд╛рд░ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЧрд┐рдердм рдкрд░ рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВ : TAuthAnswer = packed record TType: integer; Amount: UINT;
рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдмрд┐рдирд╛ рд╕реВрдЪрдХ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдкреНрд░рдХрд╛рд░редрд╣рдо рдмреБрд░реА рдЖрддреНрдорд╛рдУрдВ рдкрд░ рд╢рдХ рдХрд░рдиреЗ рд▓рдЧрддреЗ рд╣реИрдВредрдЕрдзреНрдпрд╛рдп 17. рдердВрдбрд░рд╕реНрдЯреЙрд░реНрдо рдХрд╛ рд╡рд┐рд╕реНрдлреЛрдЯ рд╣реБрдЖ
рд▓реЛрдЧ рдЕрдкрдиреЗ рд╕рд┐рд░ рд╕рд╣рд╛рдиреБрднреВрддрд┐рдкреВрд░реНрд╡рдХ рд╕рд┐рд░ рд╣рд┐рд▓рд╛рддреЗ рд╣реБрдП, рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рд▓реМрдЯрдиреЗ рд▓рдЧрддреЗ рд╣реИрдВред PO рдирд╡реАрдирддрдо рд╕рдорд╛рдЪрд╛рд░реЛрдВ рдХреЛ рдЬрд╛рдирдХрд░ рдмрд╣реБрдд рдЦреБрд╢ рдирд╣реАрдВ рд╣реЛрдЧрд╛редрдпрд╣рд╛рдБ рдореБрдЭреЗ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдпрд╛рдж рд╣реИред рдЬрдм рд╣рдордиреЗ рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛ # 14 рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХрд╛ рдПрдХ рдмрд╛рдЗрдЯ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдПрдХ рддрд░рдл, рджреВрд╕рд░реА рддрд░рдлрдЪреЗрддрд╛рд╡рдиреА!Cort_answer14 рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ, рдЙрддреНрдкрд╛рдж рдХрд╛ рдирд╛рдо рдЧреЗрдЯред TGoodsData рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЫреЛрдЯрд╛ рдПрдХ рд╡рд░реНрдг рд╣реИред рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдорд╛рдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рдареАрдХ рдХрд░реЗрдВ
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ ... рдПрдХрднрдпрд╛рдирдХ рдЕрдиреБрдорд╛рди рдмрд┐рдЬрд▓реА рдХреА рддрд░рд╣ рдорд╕реНрддрд┐рд╖реНрдХ рдкрд░ рдЪрдврд╝рддрд╛ рд╣реИред рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд░рдЪрдирд╛ рдХреА рдШреЛрд╖рдгрд╛ typedef struct __attribute__((packed)) { int TType; unsigned long Amount; char RCode[3]; char AMessage[16]; int CType; char* Check; };
рдФрд░ ...рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИредрд╕реНрдЯрд┐рд▓ рд╕рд╛рдЗрдЬрд╝ = 0, рд╕реНрдЯрд┐рд▓ рд▓реЙрдХ = NULLредрджрд░реНрджредрдХреНрд╖рдпредрдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдЖрдк рдЫрдд рдкрд░ рдПрдХ рдЖрд░рд╛рдорджрд╛рдпрдХ рдмреАрдо рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЖрдБрдЦреЛрдВ рд╕реЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рд╡рдЬрди рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдзреНрдпрдпрди рдФрд░ рдЕрдзреНрдпрдпрди рдХреЗ рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдиреЙрди-рд╕реНрдЯреЙрдк рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж, рдмрд╛рдЗрдЯреНрд╕ рдХреА рдкрддрд▓реА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣рдорд╛рд░реА рдЖрдБрдЦреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рддреИрд░рддреА рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдмрд╛рдЗрдЯреНрд╕ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВ? u32 i; for (i = 0; i < sizeof(answ); i++) { printf("%02x ", *((u8 *)&answ + i)); } printf("\n"); C:\banks\sber\sb_pilot>sb_pilot.exe 1 1000 01 00 00 00 e8 03 00 00 30 00 00 ce e4 ee e1 f0 e5 ed ee 00 00 00 00 00 00 00 00 02 00 00 00 f8 6c 7a 00 00
`30 00 00 CE` - рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ Sberbank рдЕрднреА рднреА рдкреИрдХреНрдб рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣реЗрдбрд░ рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╢рдмреНрдж рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдЕрдВрдд рдореЗрдВ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ - рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 1 рдмрд╛рдЗрдЯ рдХреА рд╢рд┐рдлреНрдЯ рдХреЗ рдХрд╛рд░рдг рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред рд╡рд┐рд╢рд╛рд▓ рдФрд░ рдХрд╛рдВрдЯреЗрджрд╛рд░ рдкрддреНрдерд░ Sberbank рдХреА рдУрд░!рдФрд░ рдлрд┐рд░ рдПрдХ maaaalenky рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдореЗрд░реА рдирдЬрд╝рд░ рдкрдХрдбрд╝рд╛ред 4 + 4 + 3 + 16 + 4 + 4 = 35. рдФрд░ рдпрд╣рд╛рдВ 36 рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВ, рдУрдмреЗрд▓рд┐рдХреНрд╕редрдпрджрд┐ 36 рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВ, рддреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдЕрднреА рднреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рддреЛ RCode рдФрд░ AMessage рдХреЗ рдмреАрдЪ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рдЗрдЯ рдЕрднреА рднреА рдбрд╛рд▓реА рдЧрдИ рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ? рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдордиреЗ '__packed__` рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛!рдЕрдзреНрдпрд╛рдп 18. рд╡рд╛рдкрд╕реА рдХреА рдпрд╛рддреНрд░рд╛
рдПрд▓рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рдХрд╛рд░рдг рдЕрднреА рднреА 2012 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52991 ред рдПрдХ рдмрдЧ рдХреЗрд╡рд▓ рдЬреАрд╕реАрд╕реА 8 (6 рд╕рд╛рд▓ рдХреА рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рдХреЗ рд▓рд┐рдП рдПрдХ рдкрддреНрдерд░) рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЕрднреА рддрдХ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╡рд╣рд╛рдБ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ: -mno-ms-bitfields
рдЕрдм рд╣рдо рдЗрд╕ рдЭрдВрдбреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рддрдВрддреНрд░ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдмрд╕ рдЗрд╕реЗ рд╕рдВрдХрд▓рдХ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВ:
рд╕реНрд▓рд┐рдк! Rodnenky! рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛, рдореИрдВ рднреА krakozyabry рдХреА рд╡рдЬрд╣ рд╕реЗ рдХрд╕рдо рдирд╣реАрдВ рдЦрд╛рддрд╛ рдерд╛, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкрддреНрдерд░ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдерд╛редрдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо Microsoft рдХреЛ рдПрдХ рдкрддреНрдерд░ рдЦрд┐рд▓рд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ GlobalSize / Lock рдЕрдорд╛рдиреНрдп рд╕рдВрдХреЗрддрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╢реВрдиреНрдп рджреЗрддрд╛ рд╣реИредрдЕрдзреНрдпрд╛рдп 19. рдЕрдВрддрд┐рдо рдЕрдзреНрдпрд╛рдп
Sb_pilot рд▓реЗрдпрд░ рдХреЗ рд▓рд┐рдП ifdefs рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рдЕрд▓рдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрд╛ рдЬреЛ sb_pilot рдХреЗ рд▓рд┐рдирдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдХрд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд░рдд рдХреЛрдб # 1 рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐ рдЫреЛрдбрд╝рдХрд░: #if defined(BXI_OS_GLX) #define GFJ_PILOT_EXECUTABLE "./sb_pilot" #elif defined(BXI_OS_WIN) #define GFJ_PILOT_EXECUTABLE "./sb_pilot.exe" #endif
рд▓рдбрд╝рд╛рдИ рдХреЗ рдкрд░рд┐рдгрд╛рдо:- Sberbank: 12 рдкрддреНрдерд░
- рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ: 7 рдкрддреНрдерд░
- рдЬреАрд╕реАрд╕реА: 1 рдкрддреНрдерд░
рд╣рдорд╛рд░реЗ рдХрдорд╛рдВрдб рдмреЛрд░реНрдб рдкрд░ рдЙрдкрд▓рдмреНрдзрд┐-рд╕реНрдорд░рдг: