рдУрдПрд╕ рд▓реЗрдЦрди: рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ

рдЫрд╡рд┐
рдЕрдЪреНрдЫрд╛ рджрд┐рди, рдкреНрд░рд┐рдп рдкрд╛рдардХ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЖрдкрдиреЗ рдореЗрд░рд╛ рдкрд┐рдЫрд▓рд╛ рд▓реЗрдЦ рджреЗрдЦрд╛ рдерд╛ рдХрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рдХрд╛рдлреА рд╕рдордп рдореЗрдВ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ OS рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЦреИрд░, рдЖрдЬ рд╣рдо рдЕрдкрдиреЗ рдУрдПрд╕ рдореЗрдВ рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

рдареАрдХ рд╣реИ, рдЖрдк рд╢рд╛рдпрдж 2018 рдореЗрдВ рд╕рд┐рдВрдЧрд▓-рдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдУрдПрд╕ рдХреА рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдУрдПрд╕ рдореЗрдВ рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдФрд░ рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реА рдмрд╛рдд - рдЖрдкрдХреЛ рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдкреНрд░реАрдореЗрдкреНрдЯрд┐рд╡ рдЪреБрдирд╛ред
рд╡рд╣ рдХреНрдпрд╛ рд╣реИ? рдкреНрд░реАрдореЗрдкреНрдЯрд┐рд╡ рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдкрд╛рд╡рд░ рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдгрд╛рд▓реА рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдХреА рдЕрдкрдиреА рдорд╛рддреНрд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдХреА рдЕрдкрдиреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдХреНрд╡рд╛рдВрдЯрдо рдХреЛ рд▓рдВрдмрд╛рдИ рдореЗрдВ рдЪреБрдирдирд╛ рд╣реИ, рдХреНрд╡рд╛рдВрдЯрдо рдХреА рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рдмрд╛рдж рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЪрд▓рдиреЗ рд╕реЗ рдХреИрд╕реЗ рд░реЛрдХреЗрдВ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рдХрд╣реАрдВ рдЬреНрдпрд╛рджрд╛ рдЖрд╕рд╛рди рд╣реИ! рд╣рдо рд╢реБрд░реВ рдореЗрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд░реБрдХрд╛рд╡рдЯ рдХреЗ рд╕рд╛рде 10026 рдХреА рдЖрд╡реГрддреНрддрд┐ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдкреАрдЖрдИрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд╡рд╣реАрдВ рд╣рдо рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреЗ рд╣реИрдВ: рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд┐рдЫрд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд░реЛрдХ рд░рд╣реЗ рд╣реИрдВред рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЪрд▓реЛ рдкреАрдЖрдИрдЯреА рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдЧрдбреНрдвреЗ


рдкреАрдЖрдИрдЯреА - рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдЗрдВрдЯрд░рд╡рд▓ рдЯрд╛рдЗрдорд░ - рдПрдХ рдХрд╛рдЙрдВрдЯрд░, рдЬреЛ рдХрд┐рд╕реА рднреА рдХреНрд░рдордмрджреНрдз рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░, рдПрдХ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдЯрд╛рдЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рдПрдХ рдЪреАрдЦрд╝ рдХреЛ рдХрд╛рдЯ рд╕рдХрддреЗ рд╣реИрдВ (рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЬреЛ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ)ред рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╡рд╣ 1193182 рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕реЗ 119 (1193182/119 рд▓рдЧрднрдЧ 10026 рдХреЗ рдмрд░рд╛рдмрд░) рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдЬрдирд░реЗрдЯрд░ рдХреЗ рдмрдВрджрд░рдЧрд╛рд╣ рдкрд░ 2 рдмрд╛рдЗрдЯ рднреЗрдЬреЗрдВ, рдкрд╣рд▓реЗ рдХрдо рдмрд╛рдЗрдЯ, рдФрд░ рдлрд┐рд░ рдЙрдЪреНрдЪ:

unsigned short hz = 119; outportb(0x43, 0x34); outportb(0x40, (unsigned char)hz & 0xFF); //Low outportb(0x40, (unsigned char)(hz >> 8) & 0xFF); //Hight, about 10026 times per second 


рдЕрдм рдпрд╣ PIT рд╕реЗ рд╡реНрдпрд╡рдзрд╛рди рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдЗрд╕рдореЗрдВ 0 рдХрд╛ IRQ рд╣реИ, рдФрд░ PIC рдХреЗ рд░реАрдореИрдк рдХреЗ рдмрд╛рдж рдпрд╣ 0x20m рд╣реЛрдЧрд╛ред рдкрд╣рд▓реЗ PIC рдХреЗ IRQ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдпрд╣ рдореИрдХреНрд░реЛ рд▓рд┐рдЦрд╛ рд╣реИ:

 //PIC#0; port 0x20 #define IRQ_HANDLER(func) char func = 0x90;\ __asm__(#func ": \npusha \n call __"#func " \n movb $0x20,\ %al \n outb %al, $0x20 \n popa \n iret \n");\ void _## func() 


рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ


рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд░рдЪрдирд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдПрдХ рдРрд╕реА рд╕рдВрд░рдЪрдирд╛ рдЬреЛ рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕рднреА рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди рдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
рдпрд╣рд╛рдБ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ:
 typedef struct _pralloc { void * addr; struct _pralloc * next; } processAlloc; typedef struct { void * entry; processAlloc *allocs; } ELF_Process; typedef struct __attribute__((packed)) _E { unsigned int eax;//4 unsigned int ebx;//8 unsigned int ecx;//12 unsigned int edx;//16 unsigned int ebp;//20 unsigned int esp;//24 unsigned int esi;//28 unsigned int edi;//32 unsigned int eflags;//36 unsigned int state;//40 void * startAddr;//44 void * currentAddr;//48 void * stack;//52 unsigned int sse[4 * 8];// unsigned int mmx[2 * 8];//244 unsigned int priority;//248 unsigned int priorityL;//252 void * elf_process;//256 char ** argv;//260 unsigned int argc;//264 unsigned int runnedFrom;//268 char * workingDir;//272 unsigned int cs;//276 - pop is 4 byte in IRET unsigned int ds;//280 } Process; 


рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рд╣рдо рд╡реИрд╢реНрд╡рд┐рдХ рдкрддреЗ рдкрд░ рдХрд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 0xDEAD рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореЙрд▓реЙрдХ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рджреМрд░рд╛рди, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕рдХреЛ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдХреЗ рдкрддреЗ рдХреЛ рддреБрд░рдВрдд рдСрд▓реЛрдХ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
 void addProcessAlloc(ELF_Process * p, void * addr) { void * z = p->allocs; p->allocs = malloc_wo_adding_to_process(sizeof(processAlloc)); p->allocs->addr = addr; p->allocs->next = z; } 


рдареАрдХ рд╣реИ, рд╣рдордиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рд▓рд┐рдЦреА, рдЖрдЧреЗ рдХреНрдпрд╛, рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рдП?
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, рд╕реНрдерд╛рдиреАрдп рдЪрд░ рд╕реНрдЯреИрдХ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХрдВрдкрд╛рдЗрд▓рд░ рд╣рдорд╛рд░реЗ esp рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджреЗрддрд╛ рд╣реИред рдРрд╕рд╛ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреВрд░реНрдг рдкрддреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд░ рдмрдирд╛рдПрдВ, рдФрд░ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╡рд╣рд╛рдВ рдИрдПрд╕рдкреА рдбрд╛рд▓реЗрдВрдЧреЗред рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, рд╣рдореЗрдВ рдИрдУрдЖрдИ рдХреЛ рдкрд╣рд▓реЗ рдкреАрдЖрдИрд╕реА рдореЗрдВ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдвреВрдВрдврдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдореИрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рддрдВрддреНрд░ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛: рдпрд╣ рд╕рд░рд▓ рд╣реИ, рдЯреНрд░реИрдлрд┐рдХ рдЬрд╛рдо рдХреА рддрд░рд╣)ред рдЕрдЧрд▓рд╛ - рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рднреА рд░рдЬрд┐рд╕реНрдЯрд░ рдФрд░ рдЭрдВрдбреЗ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдИрдПрд╕рдкреА рдХреЛ рдПрдХ рдЪрд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ, рд╣рдо рд╕рднреА рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ (рдЦрдВрдб рд╡рд╛рд▓реЗ рд╕рд╣рд┐рдд) рдХреЛ рд╕реНрдЯреИрдХ рдкрд░ рд╕рд╣реЗрдЬ рд▓реЗрдВрдЧреЗред рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд╣реА, рд╣рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╕реНрдЯреИрдХ рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрдмрдХрд┐ рдЭрдВрдбреЗ рдФрд░ рд░рд┐рдЯрд░реНрди рдПрдбреНрд░реЗрд╕ рдХреЛ рднреА рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╕реНрдЯреИрдХ рдмрдбрд╝рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛рдиреА, рдИрдПрд╕рдкреА рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ), рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕реНрдЯреИрдХ рдкрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдЪрд╛рдпрд╛ рдЧрдпрд╛ рдЕрдВрддрд┐рдо рд░рдЬрд┐рд╕реНрдЯрд░ рдИрдПрд╕рдкреА рдкрд░ рд╣реЛрдЧрд╛, рдкреЗрдирд╕реЗрд▓реНрдЯ рдИрдПрд╕рдкреА +4 рд╣реЛрдЧрд╛, рдЖрджрд┐:
рдЫрд╡рд┐
рдЕрдм рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдордиреЗ IRET рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ред рд▓рд╛рдн!

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ


рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕рдореЗрдВ argc рдФрд░ argv рдбрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрддрд╛ рдЬрд┐рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдирд┐рдпрдВрддреНрд░рдг рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЭрдВрдбреЗ рдХреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдореВрд▓реНрдп рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ 0x216 рд╣реИ, рдЖрдк рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдзреНрд╡рдЬ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

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

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


All Articles