рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рддрд░реНрдХ рдХреЗ рд╕рд╛рде NtQuerySystemInformation рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ

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

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

рддреЛ рдХреНрдпрд╛ рд╣реБрдЖ

рдХрд╛рдлреА рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ (рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА) рд╣рдордиреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SystemHandleInformation рддрд░реНрдХ рдХреЗ рд╕рд╛рде NtQuerySystemInformation рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╣рд╛рдВ, рдпрд╣ рддрд░реНрдХ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдвреВрдВрдврдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╕рднреА рд╡рд┐рдВрдбреЛрдЬрд╝ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕рднреА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдХреИрд╕реЗ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ NtQuerySystemInformation + SystemHandleInformation рдХрд╛ рд╕рдВрдпреЛрдЬрди рд╕рдмрд╕реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ред рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рдВрдбреЛрдЬ рдПрдирдЯреА рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдУрдПрд╕ рдкрд░ред

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

рдореИрдВ рдпрд╣рд╛рдБ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдХреА рдЧрдгрдирд╛ рдХрд╛ рдкреВрд░рд╛ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рджреВрдВрдЧрд╛, рдореИрдВ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рдХрд╣реВрдБрдЧрд╛ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рдорд╛рди рдерд╛, рдЬреИрд╕реЗ:

while ((status = NtQuerySystemInformation( SystemHandleInformation, handleInfo, handleInfoSize, NULL )) == STATUS_INFO_LENGTH_MISMATCH) handleInfo = (PSYSTEM_HANDLE_INFORMATION)realloc(handleInfo, handleInfoSize *= 2); // NtQuerySystemInformation stopped giving us STATUS_INFO_LENGTH_MISMATCH. if (!NT_SUCCESS(status)) { printf("NtQuerySystemInformation failed!\n"); return 1; } for (i = 0; i < handleInfo->HandleCount; i++) { ... } 

рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореИрдВ рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реВрдВ - рдФрд░ рдЕрдЪрд╛рдирдХ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЬрд┐рд╕ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ (рдФрд░ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ!) NtQuerySystemInformation () рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯреА рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдпрд╣реА рд╣реИ, рд╡реЗ рдЖрдП - "рдЕрдЧрд░ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ"ред

рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдЕрдиреНрдп рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдкрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреБрдЫ рдкрд░ рдпрд╣ рдкреБрди: рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╣реБрдордд рдкрд░ - рдирд╣реАрдВред рд╣рдо рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЬрд┐рди рдкрд░ рдпрд╣ рдкреНрд░рдЬрдирди рдХрд░рддрд╛ рд╣реИ, рд╡реЗ рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВ рдЬрд┐рди рдкрд░ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рд╣реИред рд╡рд┐рдВрдбреЛрдЬ рд╕рдВрд╕реНрдХрд░рдг рд╣рд░ рдЬрдЧрд╣ рдПрдХ рд╣реА рд╣реИ, рдЕрдкрдбреЗрдЯ, рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг - рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИред рдЕрдЪрд╛рдирдХ, рдХрд┐рд╕реА рдиреЗ рдиреЛрдЯрд┐рд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╕рднреА рд▓реИрдкрдЯреЙрдк рдЬрд┐рд╕ рдкрд░ рд╕рдорд╕реНрдпрд╛ рдкреБрди: рдкреЗрд╢ рдХреА рдЧрдИ рдереА, рдПрдХ рд╣реА рдореЙрдбрд▓ рдХреЗ рд╣реИрдВред рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЕрд╕рдВрдЧрддрд┐? рд▓реЗрдХрд┐рди рдЕрдм рдЕрдЪрд╛рдирдХ рдХреНрдпреЛрдВ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ ... рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдЙрд╕реА рдореЙрдбрд▓ рдХреЗ рдЕрдиреНрдп рд▓реИрдкрдЯреЙрдк рд╣реИрдВ рдЬреЛ рдЕрдм рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреА рдЧрдИ - рд╕рдм рдХреБрдЫ рдПрдХ рдЬреИрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдХреБрдЫ рд▓реИрдкрдЯреЙрдк рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЛрдВ рдкрд░ рдирд╣реАрдВред

рд╕рд┐рд░ рдкрд░ рдмрд╛рд▓ рдЦреАрдВрдЪрдирд╛ рд▓рдЧрднрдЧ рдЖрдзреЗ рджрд┐рди рддрдХ рдЪрд▓рд╛, рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ рджреЛ рдЪреАрдЬреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛:

  1. PIDs, рдЬреЛ рдХрд┐ рдЖрдорддреМрд░ рдкрд░ рддреАрди-рдЪрд╛рд░, рдпрд╛ рдкрд╛рдБрдЪ-рдЕрдВрдХреАрдп рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИрдВ, рдЬреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореЗрд░реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЫрд╣ рдЕрдВрдХреЛрдВ рдХреА рд╣реЛ рдЧрдИ рд╣реИрдВред 780936 рдкреНрд░рдХрд╛рд░ рдХреА рдкреАрдЖрдИрдбреА тАЛтАЛрджреЗрдЦрдирд╛ рдХрд╛рдлреА рдЕрдЬреАрдм рдерд╛ред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЗрди рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рдереА (рд╕реМ рддрдХ)ред
  2. рд╕реАрдкреАрдпреВ рдЯреИрдм рдкрд░ рдХрд╛рд░реНрдп рдкреНрд░рдмрдВрдзрдХ рдиреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреБрд▓ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд┐рдЦрд╛рдИ - рдФрд░ рдпрд╣ рд╡рд┐рд╢рд╛рд▓, 800,000 рд╕реЗ рдЕрдзрд┐рдХ рдерд╛ред

рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реМ рдпрд╛ рджреЛ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдЦреЛрд▓рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рдЦреИрд░, рдПрдХ рд╣рдЬрд╛рд░ред рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде, рдХреНрд░реЛрдо 2000 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реИ, рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ 3000 рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди 800 000 рдХреЛ рдХрд┐рд╕рдиреЗ рдЦреЛрд▓рд╛? рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдкрд╣рд▓реЗ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИрдХрд░ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред

рдФрд░ рд╣рдо рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ? рдФрд░ рд╣рдо рдЗрд╕ рддрд╕реНрд╡реАрд░ рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ:



рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЕрднреА рдЙрдкрд░реЛрдХреНрдд рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдмрдирд╛рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реВрдЪреА рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ "рдХреЗрд╡рд▓" рд▓рдЧрднрдЧ 20,000 рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рд╣реИрдВред рдФрд░ рдлрд┐рд░, рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЗрдЦрд╛, рддреЛ рд╡рд╣рд╛рдБ рд▓рдЧрднрдЧ 650,000 рдереЗред рдФрд░ рд╣рдорд╛рд░рд╛ рд╣реАрд░реЛ рдХреМрди рдерд╛? рдмрд┐рдВрдЧреЛ! рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ SynTPEnhService.exe рд╣реИред

рдФрд░ рдлрд┐рд░ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдкреВрд░реА рдкрд╣реЗрд▓реА рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреА рд╣реИред SynTPEnhService.exe Synaptics рдЯрдЪрдкреИрдб рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореЙрдбрд▓ рдХреЗ рд▓реИрдкрдЯреЙрдк рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕ рдкрд░ рд╕рдорд╕реНрдпрд╛ рд╣реБрдИред рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрди рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ 5 рд╕реЗрдХрдВрдб рдореЗрдВ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ SynTPEnh.exe рд╢реБрд░реВ рдХрд░рддреА рд╣реИ, рдЬреЛ 1-2 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдмрдВрдж рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕реА рд╕рдордп, рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдЪреНрдЪреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╡рд┐рд╡рд░рдгрдХ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡рд┐рд╡рд░рдгрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рд░рд┐рд╕рд╛рд╡ рд╣реЛрддрд╛ рд╣реИред рд╣рд░ 5 рд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рдмрд╛рд░ред рдпрд╣ рдкреНрд░рддрд┐ рджрд┐рди 17,280 рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рд╣реИред рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХреЗ рд▓рд┐рдП рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдФрд░ рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реМ рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВрдЧ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╣реИрдВред рдореЗрд░реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдПрдХ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдЗрд╕рд▓рд┐рдП рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдкреАрдЖрдИрдбреА тАЛтАЛрдЖрдзреЗ рдорд┐рд▓рд┐рдпрди рд╕реЗ рдКрдкрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рдеред рдЗрд╕рд╕реЗ рдпрд╣ рднреА рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдХреБрдЫ рд▓реИрдкрдЯреЙрдк рдкрд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдиреНрдп рд▓реИрдкрдЯреЙрдк рдкрд░ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реБрдЖ: рдореЗрд░реЗ рдХреБрдЫ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдиреЗ рд╣рд░ рджрд┐рди рдЕрдкрдиреЗ рдкреАрд╕реА рдХреЛ рд░рд┐рдмреВрдЯ рдХрд┐рдпрд╛, рдФрд░ рдореЗрд░реЗ рдЬреИрд╕реЗ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдиреЗ рдЙрдиреНрд╣реЗрдВ рд░рд╛рдд рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред ред

рд╡реИрд╕реЗ, рдЗрд╕ рдЬрдЧрд╣ рдореЗрдВ рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд┐рдиреИрдкреНрдЯрд┐рдХреНрд╕ рдЯрдЪрдкреИрдб рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рд╛ рдерд╛ред рдереЛрдбрд╝реА рдЦреБрджрд╛рдИ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдмреНрд░реВрд╕ рдбреЙрд╕рди рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд рдпрд╣ рд▓реЗрдЦ рдорд┐рд▓рд╛ (рдЙрдирдХреЗ рд▓реЗрдЦреЛрдВ рдХреЗ рдХрдИ рдЕрдиреБрд╡рд╛рдж рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдордп рдореЗрдВ рд╣реИрдмреЗ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдП, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ)ред рд╡рд╣рд╛рдБ рд╡рд╣ SynTPEnh.exe рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЗрд╕ рдЕрдВрддрд╣реАрди рдкреБрдирд░рд╛рд░рдВрдн рдХреЗ рдХрд╛рд░рдг рдореЗрдореЛрд░реА рд▓реАрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣реИрдВрдбрд▓ рд▓реАрдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдкрддрд╛ рдЕрднреА рднреА рдЗрд╕рд╕реЗ рдЕрд▓рдЧ рд╣реИред

рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░рдирд╛


рддреЛ, рдЯрдЪрдкреИрдб рдбреНрд░рд╛рдЗрд╡рд░ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ "рдЦрд╛рддрд╛ рд╣реИ" - рдФрд░ рдХреНрдпрд╛? рдФрд░ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди NTQuerySystemInformation (SystemHandleInformation, ...) Windows NT рдХреЗ рджрд┐рдиреЛрдВ рдореЗрдВ рд╡рд╛рдкрд╕ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ (рдФрд░ рд╣реИ) рдХреБрдЫ рдХрд╛рдлреА рд╕реАрдорд┐рдд рдЖрдВрддрд░рд┐рдХ рдмрдлрд░ред рдореБрдЭреЗ рдХрд╣реАрдВ рднреА рдЗрд╕рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рд╕рдЯреАрдХ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдПрдХ рд▓рд╛рдЦ рд╡рд░реНрдгрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдлрд╝рдВрдХреНрд╢рди рдЙрдиреНрд╣реЗрдВ "рдЬрд┐рддрдирд╛ рд╣реЛ рд╕рдХреЗ рдЙрддрдирд╛" рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдХреНрдпрд╛ рдХрд░реЗрдВ? рдЬреИрд╕рд╛ рдХрд┐ рдПрдирд┐рдореЗрдЯреЗрдб рд╢реНрд░реГрдВрдЦрд▓рд╛ "рд░рд┐рдХ рдПрдВрдб рдореЛрд░реНрдЯреА" рд╕реЗ рд░рд┐рдХ рдиреЗ рдХрд╣рд╛: "рдЬрдм рдЖрдк рдЯреЗрд▓реАрдкреЛрд░реНрдЯреЗрд╢рди рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рддреБрд░рдВрдд рдПрдХ рдЕрдкреНрд░рд┐рдп рдЪреАрдЬ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╣реИрдВ: рдЖрдк рдмреНрд░рд╣реНрдорд╛рдВрдб рдХреЗ рдЕрдВрддрд┐рдо рд╡реНрдпрдХреНрддрд┐ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдерд╛ред" рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, Microsoft рдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ 20 рд╕рд╛рд▓ рдкрд╣рд▓реЗ SystemHandleInformation рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп NtQuerySystemInformation рдореЗрдВ рд╕реАрдорд┐рдд рдмрдлрд░ рдХреЗ рд╕рд╛рде рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП, WindowsXP рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реБрдП, рдЙрдиреНрд╣реЛрдВрдиреЗ NtQuerySystemInformation рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдФрд░ (рдФрд░ undocumented) рддрд░реНрдХ SystemExtendedHandleInformation рдЬреЛрдбрд╝рд╛ред рдЬрдм рдЖрдк NtQuerySystemInformation (SystemExtendedHandleInformation, ...) рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рднреА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдВрдЧреЗ, рдЪрд╛рд╣реЗ рдХрд┐рддрдиреЗ рднреА рд╣реЛрдВред рдареАрдХ рд╣реИ, рдпрд╛ рдпреЛрдВ рдХрд╣реЗрдВ, рдореБрдЭреЗ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рддрд┐рдмрдВрдз рд╣реЛрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИ рдХрд┐ рд╡рд╣ рдПрдХ рд░рд╛рдЬреНрдп рдореЗрдВ 800,000 рд╡рд┐рд╡рд░рдгрдХ рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдпрд╣ рд╡рд┐рдбреЛ рдУрдПрд╕ рдХреЗ рдЕрдирдЬрд╛рдиреЗ рддрд░реНрдХреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╢рд┐рдХреНрд╖рд╛рдкреНрд░рдж рдХрд╣рд╛рдиреА рдереА, рдЬреЛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЧреИрд░-рдорд╛рдирдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкрд░реАрдХреНрд╖рдг рдФрд░ рддреИрдпрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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


All Articles