{"id":257144,"date":"2015-05-13T22:36:03","date_gmt":"2015-05-13T18:36:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=257144"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=257144","title":{"rendered":"\u041a\u0430\u043a \u00ab\u0440\u0443\u0441\u0441\u043a\u0438\u0435 \u0445\u0430\u043a\u0435\u0440\u044b\u00bb \u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u0443\u0437\u043d\u0430\u0442\u044c \u043e \u043d\u043e\u0432\u044b\u0445 \u0441\u0430\u043d\u043a\u0446\u0438\u044f\u0445 \u043f\u0440\u043e\u0442\u0438\u0432 \u0420\u043e\u0441\u0441\u0438\u0438: \u0438\u0437\u0443\u0447\u0430\u0435\u043c CVE-2015-1701"},"content":{"rendered":"<p>     \t\u041e\u0431 \u044d\u0442\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0434\u043d\u044f \u0432 Windows \u0441\u0442\u0430\u043b\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0435\u0449\u0435 20 \u0430\u043f\u0440\u0435\u043b\u044f, \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f FireEye \u0438 \u0430\u0433\u0435\u043d\u0442\u0441\u0442\u0432\u043e Bloomberg \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0438 \u043e \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0439 \u043a\u0438\u0431\u0435\u0440\u0430\u0442\u0430\u043a\u0435 \u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0432\u0435\u0434\u043e\u043c\u0441\u0442\u0432\u043e \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u043e\u0433\u043e \u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0430, \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u0432\u0448\u0435\u0435 \u0441 \u0421\u0428\u0410 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u0441\u0430\u043d\u043a\u0446\u0438\u0439 \u043f\u0440\u043e\u0442\u0438\u0432 \u0420\u043e\u0441\u0441\u0438\u0438. \u0412 \u043f\u0440\u0438\u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u043a \u0441\u043e\u0434\u0435\u044f\u043d\u043d\u043e\u043c\u0443, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432 \u043f\u043e\u043f\u044b\u0442\u043a\u0430\u0445 \u0432\u0437\u043b\u043e\u043c\u0430 \u0441\u043f\u0435\u0446\u0441\u043b\u0443\u0436\u0431 \u041d\u0410\u0422\u041e, \u0433\u043e\u0441\u043e\u0440\u0433\u0430\u043d\u043e\u0432 \u0413\u0440\u0443\u0437\u0438\u0438, \u041f\u043e\u043b\u044c\u0448\u0438, \u0412\u0435\u043d\u0433\u0440\u0438\u0438 \u0432 FireEye \u043e\u0431\u0432\u0438\u043d\u0438\u043b\u0438 \u00ab\u0440\u0443\u0441\u0441\u043a\u0438\u0445 \u0445\u0430\u043a\u0435\u0440\u043e\u0432\u00bb \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438 APT28. <\/p>\n<p>  \u0410\u0442\u0430\u043a\u0430 \u0431\u044b\u043b\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0430\u043d\u0435\u0435 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 CVE-2015-3043 \u0432 Adobe Flash \u0438 CVE-2015-1701 \u0432 Windows. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u0438 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0430 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0439 \u0441\u0430\u0439\u0442, \u0433\u0434\u0435 \u0441\u043a\u0440\u0438\u043f\u0442 JavaScript \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Flash-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u043b \u0432 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u0434\u044b\u0440\u044b CVE-2015-1701 \u0432 Windows \u043f\u043e\u0432\u044b\u0448\u0430\u043b \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 \u0438 \u043f\u043e\u0445\u0438\u0449\u0430\u043b \u043a\u043b\u044e\u0447\u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f. <\/p>\n<p>  \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Adobe \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0445 \u0447\u0430\u0441\u043e\u0432 \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u043b\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u043e Flash, \u043d\u043e \u0432 Microsoft \u043d\u0435 \u0442\u043e\u0440\u043e\u043f\u0438\u043b\u0438\u0441\u044c \u0438 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0438 <a href=\"https:\/\/technet.microsoft.com\/library\/security\/MS15-051\">\u043f\u0430\u0442\u0447<\/a> \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u043a\u0430\u043d\u0443\u043d\u0435. \u0412 \u044d\u0442\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u043e\u0431 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u0430\u0433\u0430. <\/p>\n<h4>\u0426\u0435\u043d\u043d\u0430\u044f gSharedInfo<\/h4>\n<p>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 CVE-2015-1701 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438. \u0411\u0435\u0437 <a href=\"http:\/\/www.securitylab.ru\/news\/472188.php\">\u043f\u0435\u0447\u0430\u043b\u044c\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439<\/a> <code>win32k.sys<\/code> \u043d\u0435 \u043e\u0431\u043e\u0448\u043b\u043e\u0441\u044c \u0438 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0441\u044f \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 <code>win32k!tagSHAREDINFO<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b <code>win32k!gSharedInfo<\/code>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430 \u0442\u0438\u043f\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 <code>HWND<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441 \u043d\u0435\u0439 \u043e\u0447\u0435\u043d\u044c \u0442\u0435\u0441\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u043d.<\/p>\n<p>  <a href=\"http:\/\/habrahabr.ru\/company\/pt\/blog\/257879\/\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/2f9\/e01\/d11\/2f9e01d11ae14fb1968afc035b733cd5.png\"\/><\/a> <\/p>\n<p>  \u041d\u0430\u0448\u0430 <code>gSharedInfo<\/code> \u0445\u0440\u0430\u043d\u0438\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043e\u043a\u043d\u0430\u043c\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438, \u0447\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435, \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u044b \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e (\u0441\u043c\u0430\u043f\u043b\u0435\u043d\u044b \u0432 \u044e\u0437\u0435\u0440-\u043c\u043e\u0434, \u043f\u043e-\u043d\u0430\u0448\u0435\u043c\u0443), \u043f\u0440\u0438\u0447\u0451\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u0438\u043c\u0432\u043e\u043b <code>user32!gSharedInfo<\/code> \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0440 (\u043b\u0438\u0431\u043e \u0441 \u0432\u0438\u0441\u0442\u044b, \u043b\u0438\u0431\u043e \u0441 \u0441\u0435\u043c\u0451\u0440\u043a\u0438) \u0441\u0442\u0430\u043b \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u043c.<a name=\"habracut\"><\/a><\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/079\/786\/b9c\/079786b9c96a4f16b9fb8552e9854648.png\"\/> <\/p>\n<p>  \u041d\u0430\u0441 \u0437\u0434\u0435\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u0434\u0432\u0430 \u043f\u043e\u043b\u044f:<\/p>\n<ul>\n<li><code>aheList<\/code> \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0442\u0438\u043f\u0430 <code>win32k!_HANDLEENTRY<\/code>;<\/li>\n<li><code>HeEntrySize<\/code> \u2014 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>win32k!_HANDLEENTRY<\/code>.<\/li>\n<\/ul>\n<p>  \u0422\u0430\u043a \u0432\u043e\u0442, \u043c\u043b\u0430\u0434\u0448\u0438\u0435 16 \u0431\u0438\u0442 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430 \u043e\u043a\u043d\u0430 <code>HWND<\/code> \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 <code>gSharedInfo-&gt;aheList<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <code>window<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 <code>HWND<\/code> \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/a9d\/9f0\/ff3\/a9d9f0ff33f34b489b87b5bba1cd9d94.png\"\/><\/p>\n<p>  \u0438 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0432 \u044f\u0434\u0440\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/c3f\/75f\/6b9\/c3f75f6b907d4cefb3f5553bda8689b5.png\"\/> <\/p>\n<p>  \u041f\u043e\u043b\u0435 <code>wUniq<\/code> \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b <code>win32k!_HANDLEENTRY<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0435\u0440\u0445\u043d\u0438\u0435 16 \u0431\u0438\u0442 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430 <code>HWND<\/code> \u0438, \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u0441\u043b\u0443\u0436\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0446\u0435\u043b\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0445 \u0432 \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0430\u0434\u0440\u0435\u0441 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0451\u043d \u0438 \u043f\u043e\u0437\u0436\u0435 \u0435\u0433\u043e \u043c\u0435\u0441\u0442\u043e \u0437\u0430\u0439\u043c\u0451\u0442, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u043d\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441 <code>wUniq = 0x12<\/code>, \u0442\u043e \u043f\u043e \u0441\u0442\u0430\u0440\u043e\u043c\u0443 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0443 <code>0x0011024c<\/code> \u043a \u043d\u0435\u043c\u0443 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0443\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043b\u044c\u0437\u044f.<\/p>\n<p>  \u041f\u043e\u043b\u044f <code>bFlags<\/code> \u0438 <code>bType<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0444\u043b\u0430\u0433\u0438 \u0438 \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u043c phead, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u044b\u0435 \u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 <a href=\"https:\/\/www.reactos.org\/wiki\/Techwiki:Win32k\/HANDLEENTRY\">ReactOS<\/a>.<\/p>\n<p>  \u041d\u0430\u0441 \u0436\u0435 \u0437\u0434\u0435\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>bType<\/code>:<\/p>\n<p>  <code>TYPE_WINDOW = 1<\/code><\/p>\n<p>  \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0435\u0435, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043a\u043d\u043e\u043c, \u0430 \u043f\u043e\u043b\u0435 <code>phead<\/code> \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 <code>win32k!tagWND<\/code>.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/1fe\/a51\/c56\/1fea51c567034ff0a995b859bb63f420.png\"\/> <\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 <code>user32!gSharedInfo-&gt;aheList[\u2026].phead<\/code> \u0445\u0440\u0430\u043d\u0438\u0442 \u0430\u0434\u0440\u0435\u0441, \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u0439 \u044f\u0434\u0440\u0443. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043d\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u0434\u0440\u0443\u0433\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043e\u0442\u0441\u044b\u043b\u0430\u044e \u0432\u0430\u0441 \u043a \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u0439 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u043e\u043a\u043d\u0430 <code>HWND<\/code> \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0435\u0439 <code>tagWND*<\/code> \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435 <code>user32!ValidateHWND<\/code>, \u0430 \u0442\u043e\u0447\u043d\u0435\u0435 \u043a \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u0435\u044e <code>user32!HMValidateHandle<\/code>.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043d\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u043b\u0435 <code>pOwner<\/code> \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b <code>win32k!_HANDLEENTRY<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 <code>win32k!_W32THREAD<\/code> \u043f\u043e\u0442\u043e\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043e\u0431\u044a\u0435\u043a\u0442. \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0445\u0440\u0430\u043d\u0438\u0442 \u044d\u0442\u043e\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0432 <code>win32k!_KTHREAD-&gt;Win32Thread<\/code> (\u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0432 <code>_ETHREAD<\/code>), \u0430 \u0442\u0430\u043a\u0436\u0435, \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0432\u0430\u0436\u043d\u0435\u0435, \u0432 <code>TEB!Win32ThreadInfo<\/code>.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/d78\/0bc\/129\/d780bc129c6a423ca3f44cc05540b3e7.png\"\/> <\/p>\n<p>  \u041f\u043e\u043b\u044c\u0437\u0443\u044f\u0441\u044c \u0432\u0441\u0435\u0439 \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043a\u0430\u0442\u044c \u043e\u043a\u043d\u0430, \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0443 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0442\u0430\u043a\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 <code>user32!gSharedInfo-&gt;aheList[\u2026]<\/code>, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e:<\/p>\n<ul>\n<li><code>bType == TYPE_WINDOW<\/code>;<\/li>\n<li><code>pOwner == TEB!Win32ThreadInfo<\/code>.<\/li>\n<\/ul>\n<p>  \u0418\u043d\u0434\u0435\u043a\u0441 \u0442\u0430\u043a\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d \u043c\u043b\u0430\u0434\u0448\u0438\u043c 16 \u0431\u0438\u0442\u0430\u043c \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430, \u0430 \u0441\u0442\u0430\u0440\u0448\u0438\u0435 16 \u0431\u0438\u0442 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u043e\u043b\u0435 <code>wUniq<\/code>.<\/p>\n<p>  \u041f\u043e\u0447\u0435\u043c\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <code>user32!FindWindow<\/code>? \u0412 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u044d\u0442\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u0443 \u043e\u043a\u043d\u0430 \u0435\u0449\u0451 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u043d\u0438 \u0438\u043c\u044f, \u043d\u0438 \u043a\u043b\u0430\u0441\u0441.<\/p>\n<h4>KernelCallbackTable<\/h4>\n<p>  \u0414\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043d\u0446\u0435\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c, \u0442\u0435\u0441\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u043f\u043e\u043b\u0435\u043c <code>PEB!KernelCallbackTable<\/code>.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/f06\/bc6\/33f\/f06bc633f5584524a9291a9fcd80f209.png\"\/> <\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u0437\u0434\u0435\u0441\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0431\u0435\u043a\u0438, \u043d\u043e \u043e\u043d\u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043d\u0435 <code>kernel<\/code>, \u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0432\u043e\u0451 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043e\u0442\u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c \u043e\u0431\u044b\u0447\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>win32k.sys<\/code>, \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043a \u043d\u0438\u043c, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435. \u0412\u044b\u0437\u043e\u0432 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 <code>ntdll!KiUserCallbackDispatcher<\/code> \u0441\u0445\u043e\u0434\u043d\u044b\u043c \u0441 <a href=\"http:\/\/www.nynaeve.net\/?p=200\">\u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043e\u0431\u0440\u0430\u0437\u043e\u043c<\/a>. <\/p>\n<p>  \u0412 \u044f\u0434\u0440\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u044b\u0437\u043e\u0432\u0430 \u044d\u0442\u0438\u0445 \u043a\u043e\u043b\u043b\u0431\u0435\u043a\u043e\u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>nt!KeUserModeCallback<\/code>. \u0412\u044b\u0437\u043e\u0432 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u043a\u043e\u043b\u043b\u0431\u0435\u043a\u0430. \u0420\u0435\u0437\u043e\u043b\u0432\u0438\u043d\u0433 \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0443\u0436\u0435 \u0432 <code>ntdll!KiUserCallbackDispatcher<\/code>.<\/p>\n<h4>SetWindowLongPtr<\/h4>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043d\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 <code>user32!SetWindowLongPtr<\/code>, \u0430 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u2014 \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0432 \u0432\u0438\u0434\u0435 <code>win32k!xxxSetWindowData<\/code>. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u043c \u043d\u0430\u0441 \u0441\u043b\u0443\u0447\u0430\u0435\u043c \u2014 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <code>GWLP_WNDPROC<\/code>.<\/p>\n<p>  <code>win32k!xxxSetWindowData<\/code> \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043b\u0438 \u043e\u043a\u043d\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443, \u043f\u043e\u0442\u043e\u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c <code>WndProc<\/code>, \u0430 \u0442\u0430\u043a\u0436\u0435, \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u044d\u0442\u043e \u043e\u043a\u043d\u043e \u0443\u0436\u0435 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u043d\u044b\u043c (<code>FNID_DELETED_BIT<\/code> \u0431\u0438\u0442).<\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u0430\u044f \u0434\u043b\u044f \u043d\u0430\u0441 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/277\/2e9\/377\/2772e93778534d4aabf3829d885189f7.png\"\/> <\/p>\n<p>  \u041d\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>WndProc<\/code> (<code>value_<\/code> \u0432 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435) \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>MapClientToServerPfn<\/code>. \u042d\u0442\u0430 \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0430\u044f \u0438 \u0432 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0447\u0440\u0435\u0437\u0432\u044b\u0447\u0430\u0439\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 <code>win32k!gpsi-&gt;apfnClientW<\/code> \u0438 <code>win32k!gpsi-&gt;apfnClientA<\/code> \u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 <code>win32k!gpsi-&gt; aStoCidPfn<\/code>:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/88b\/134\/2b6\/88b1342b64d84d3fb3cc4ab4136d6597.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/d0f\/684\/a7f\/d0f684a7f8ec40bdb67e9efc7ecd487f.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/1d9\/1e2\/5fb\/1d91e25fbe80413daf5de5be467d3bd2.png\"\/> <\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0433\u043e <code>WndProc&lt;code&gt; \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442\u043e \u0432\u044b\u0437\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043e\u0431\u0440\u0430\u0449\u0430\u044f\u0441\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043a \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u044f\u0434\u0440\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, &lt;code&gt;win32k!xxxDefWindowProc<\/code>, \u043d\u0435 \u0442\u0440\u0430\u0442\u044f \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0440\u0435\u0436\u0438\u043c \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043e\u0431\u0451\u0440\u0442\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>ntdll!NtdllDefWindowProc_A<\/code>, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e <code>user32!DefWindowProcA<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043a\u0432\u043e\u0437\u043d\u044b\u043c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u043e\u043c.<\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430, \u0435\u0441\u043b\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0443\u0434\u0430\u0447\u043d\u043e, \u0442\u043e \u0443 \u043e\u043a\u043d\u0430 \u0432\u043e\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0444\u043b\u0430\u0433 <code>WFSERVERSIDEPROC<\/code>, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0451\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u0435\u0433\u043e \u043f\u043e\u043b\u0435 <code>win32k!tagWND-&gt;lpfnWndProc<\/code>.<\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0435\u0441\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 <code>user32!SetWindowLongPtr<\/code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440, \u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0435\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0438\u0437 <code>win32k.sys<\/code> \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u044f\u0434\u0440\u0430.<\/p>\n<h4>xxxCreateWindowEx<\/h4>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u043a\u043d\u0430. \u0417\u0430 \u044d\u0442\u043e, \u0433\u0440\u0443\u0431\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 <code>win32k!xxxCreateWindowEx<\/code>. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0437\u043e\u0432\u043e\u043c <code>win32k!HMAllocObject<\/code> \u0430\u043b\u043b\u043e\u0446\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 <code>tagWND<\/code> \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043d\u0451\u043c \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 <code>gSharedInfo-&gt;aheList<\/code>:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/659\/81f\/b12\/65981fb124904d77ace04a676204281f.png\"\/><\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043e\u043a\u043d\u0430. \u0412\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0434\u0430\u0436\u0435 \u0432 <code>hex-rays<\/code> \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0430\u0440\u0443 \u0442\u044b\u0441\u044f\u0447 \u0441\u0442\u0440\u043e\u043a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0441\u0435\u0445 \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0435\u043c\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u0445 \u043d\u0435\u0442 \u043d\u0438 \u0441\u043c\u044b\u0441\u043b\u0430, \u043d\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438.<\/p>\n<h4>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438<\/h4>\n<p>  \u0412\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441: \u0447\u0442\u043e \u0441\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u0432\u044b\u0437\u0432\u0430\u0442\u044c <code>SetWindowLongPtr(hwnd, GWLP_WNDPROC, DefWindowProc)<\/code> \u043d\u0430 \u043e\u043a\u043d\u043e \u0432 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u043e \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043e, \u043d\u043e \u0443 \u043d\u0435\u0433\u043e \u0435\u0449\u0451 \u043d\u0430 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u043f\u043e\u043b\u0435 <code>lpfnWndProc<\/code>. \u0412\u0435\u0434\u044c \u044d\u0442\u043e \u043f\u043e\u043b\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0438\u0437 \u043f\u043e\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d\u043e, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0443\u0436\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0451\u043d\u043d\u044b\u043c \u043f\u043e <code>MapClientToServerPfn<\/code>, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.<\/p>\n<p>  \u0418 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u043e\u043c <code>SetWindowLongPtr<\/code> \u0432\u043e\u0437\u0432\u0435\u0441\u0442\u0438 \u0444\u043b\u0430\u0433 <code>WFSERVERSIDEPROC<\/code> \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0430\u0434\u0440\u0435\u0441 <code>WndProc<\/code> \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0438\u0437 \u043f\u043e\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u0434\u0430\u043d\u043d\u044b\u0439 \u0444\u043b\u0430\u0433 \u043d\u0435 \u0441\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043f\u043e\u043b\u044f <code>WndProc<\/code>, \u0442\u0430\u043a \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d. \u041f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u043e\u0433\u0438\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0444\u043b\u0430\u0433\u0430 \u0434\u043b\u044f \u043e\u043a\u043d\u0430, \u0435\u0441\u043b\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0444\u043b\u0430\u0433 \u043a\u043b\u0430\u0441\u0441\u0430 \u0432\u043e\u0437\u0432\u0435\u0434\u0451\u043d.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/6a1\/193\/e96\/6a1193e96a6e4acfb6828489cc096ecd.png\"\/> <\/p>\n<p>  \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0444\u043b\u0430\u0433\u0430 \u0438\u0437 \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u0432\u044b\u0437\u043e\u0432\u043e\u043c <code>SetWindowLongPtr<\/code> \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f <code>CreateWindowEx<\/code> \u043d\u0438\u0447\u0442\u043e\u0436\u043d\u0430, \u0432\u0435\u0434\u044c \u043d\u0443\u0436\u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0442\u044b\u0441\u043a\u0430\u0442\u044c <code>HWND<\/code> \u043e\u043a\u043d\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 <code>user32!gSharedInfo-&gt;aheList<\/code>, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 <code>user32!SetWindowLongPtr -&gt; \u2026 -&gt; win32k!xxxSetWindowData<\/code> \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u0435\u0439 <code>tagWND<\/code> \u0432 <code>win32k!xxxCreateWindowEx<\/code>. \u041c\u043e\u0436\u043d\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c \u0441 <code>processor affinity<\/code> \u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430\u043c\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432. \u041e\u0434\u043d\u0430\u043a\u043e, \u0434\u043b\u044f Windows 7 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0443\u0442\u044c.<\/p>\n<h4>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043b\u044f Windows 7<\/h4>\n<p>  \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0433\u0440\u043e\u043c\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>win32k!xxxCreateWindowEx<\/code>, \u0432\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0430\u044f \u043d\u0430\u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e hex-rays \u0441\u0442\u0440\u043e\u043a:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/f8a\/eda\/f13\/f8aedaf133504a57b1b2a66f2d667e98.png\"\/> <\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 \u043e\u043a\u043d\u0430 \u0443 \u043d\u0435\u0433\u043e \u0431\u044b\u043b\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0438\u043a\u043e\u043d\u043a\u0438 <code>hIcon<\/code>, \u043d\u043e \u043d\u0435 \u0431\u044b\u043b\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u0434\u043b\u044f \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0439 \u0438\u043a\u043e\u043d\u043a\u0438 <code>hIconSm<\/code>, \u0442\u043e <code>win32k!xxxCreateWindowEx<\/code> \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043e\u043a\u043d\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442, \u0430 \u0442\u043e\u0447\u043d\u0435\u0435 \u2013 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u0442, \u0438\u043a\u043e\u043d\u043a\u0443 \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044f <code>win32k!tagCLS-&gt;spicnSm<\/code>. \u042d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <code>win32k!xxxCreateClassSmIcon<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0435\u0440\u0435\u043f\u043e\u0440\u0443\u0447\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0437 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0445 <code>kernel callbacks<\/code>:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/40c\/50d\/61c\/40c50d61c8d949b1b81b8ee15a5b19e0.png\"\/> <\/p>\n<p>  \u041f\u043e\u0434 0x36-\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0438\u0434\u0451\u0442 <code>user32!_ClientCopyImage<\/code>. \u041e\u043d \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/d6a\/f84\/702\/d6af8470292b4e268aac42e94883329a.png\"\/> <\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043a\u043e\u043d\u043a\u0438 \u0432 <code>win32k!xxxCreateWindowEx<\/code> \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f <code>WndProc<\/code> \u043e\u043a\u043d\u0430 \u0438\u0437 <code>WndProc<\/code> \u043a\u043b\u0430\u0441\u0441\u0430. \u0417\u0430\u0442\u0435\u043c, \u043a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u0435\u0441\u043b\u0438 \u0444\u043b\u0430\u0433 <code>WFSERVERSIDEPROC<\/code> \u0432\u043e\u0437\u0432\u0435\u0434\u0451\u043d \u0432 \u043a\u043b\u0430\u0441\u0441\u0435, \u043e\u043d \u0432\u043e\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0438 \u0434\u043b\u044f \u043e\u043a\u043d\u0430.<\/p>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b<\/h4>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0438\u043a\u043e\u043d\u043a\u0438, \u043d\u043e \u0431\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0439:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/db2\/736\/7e9\/db27367e96df4c7394c124d36f4802a0.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/907\/d42\/684\/907d426841a340ae8e4d3e9af6d4ae8e.png\"\/> <\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043d\u0443\u0436\u0435\u043d \u0445\u0443\u043a \u043d\u0430 <code>user32!_ClientCopyImage<\/code>:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/abb\/4a1\/dc1\/abb4a1dc13b04b548d820010ab2ece28.png\"\/> <\/p>\n<p>  \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c <code>SetWindowLongPtr<\/code> \u0434\u043b\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u043a\u043d\u0430:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/87d\/ccd\/be5\/87dccdbe5b164914859fc2efaf6adaa0.png\"\/> <\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e, \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u043a\u043d\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0440\u0430\u043d\u0435\u0435 \u0445\u0443\u043a.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/a6d\/174\/ffa\/a6d174ffa47749e4baa02074a1f0b9ad.png\"\/> <\/p>\n<p>  \u041e\u043a\u043d\u043e \u0432 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0443\u0436\u0435 \u0437\u0430\u043d\u0435\u0441\u0435\u043d\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u043d\u043e \u0435\u0449\u0451 \u043d\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/9d9\/5f8\/99e\/9d95f899e97b481094c1b296e243265a.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/89c\/6fa\/d02\/89c6fad029214bd3a2f9a6b429d8b8e2.png\"\/> <\/p>\n<p>  \u0425\u0443\u043a \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <code>SetWindowLongPtr<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0437\u0432\u043e\u0434\u0438\u0442 \u0444\u043b\u0430\u0433 <code>bServerSideWindowProc<\/code> \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043e\u043a\u043d\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/226\/b6a\/958\/226b6a958b9540589e09c7213f844916.png\"\/> <\/p>\n<p>  \u0410 \u043f\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u0438\u0437 \u043a\u043e\u043b\u043b\u0431\u0435\u043a\u0430, <code>win32k!xxxCreateWindowEx<\/code> \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 <code>lpfnWndProc<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0438\u0437 \u043f\u043e\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/4af\/0db\/78e\/4af0db78e66747e99eb543121cdfe8b3.png\"\/> <\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043e\u043a\u043e\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0430\u044f \u043f\u0440\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0430, \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u044f\u0434\u0440\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/f04\/5b2\/348\/f045b2348ab242f8a753cc6ab7a716a6.png\"\/> <\/p>\n<p>  \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0441\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u2014 \u044d\u0442\u043e \u0432\u043e\u0440\u043e\u0432\u0441\u0442\u0432\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u043e\u043a\u0435\u043d\u0430 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0448\u0435\u043b\u043b\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/e5c\/e21\/21f\/e5ce2121f9b148e09994ac491d860fed.png\"\/> <\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/574\/b7c\/e57\/574b7ce572824941bce62eb51ed3e5e7.png\"\/> <\/p>\n<p>  P.S. \u0411\u0435\u0433\u043b\u044b\u0439 \u043e\u0441\u043c\u043e\u0442\u0440 Windows 8.1 \u043f\u043e\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u0432 <code>win32k!xxxCreateWindowEx<\/code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 <code>tagWND-&gt;lpfnWndProc<\/code> \u0438 \u0432\u044b\u0437\u043e\u0432 <code>win32k!xxxCreateClassSmIcon<\/code> \u0438\u0434\u0443\u0442 \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u0438\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0445\u0443\u043a \u043d\u0430 <code>user32!_ClientCopyImage<\/code> \u0443\u0436\u0435 \u043d\u0435 \u043f\u043e\u043c\u043e\u0436\u0435\u0442.<\/p>\n<p>  \u0415\u0441\u0442\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u0440\u0435\u0439\u0441 \u0432\u0441\u0451 \u0435\u0449\u0451 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u043e\u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0432\u044b\u0448\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0441 \u0434\u0432\u0443\u043c\u044f \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0441\u0447\u0451\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f.     \t<\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/257879\/\"> http:\/\/habrahabr.ru\/post\/257879\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \t\u041e\u0431 \u044d\u0442\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0434\u043d\u044f \u0432 Windows \u0441\u0442\u0430\u043b\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0435\u0449\u0435 20 \u0430\u043f\u0440\u0435\u043b\u044f, \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f FireEye \u0438 \u0430\u0433\u0435\u043d\u0442\u0441\u0442\u0432\u043e Bloomberg \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0438 \u043e \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0439 \u043a\u0438\u0431\u0435\u0440\u0430\u0442\u0430\u043a\u0435 \u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0432\u0435\u0434\u043e\u043c\u0441\u0442\u0432\u043e \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u043e\u0433\u043e \u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0430, \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u0432\u0448\u0435\u0435 \u0441 \u0421\u0428\u0410 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u0441\u0430\u043d\u043a\u0446\u0438\u0439 \u043f\u0440\u043e\u0442\u0438\u0432 \u0420\u043e\u0441\u0441\u0438\u0438. \u0412 \u043f\u0440\u0438\u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u043a \u0441\u043e\u0434\u0435\u044f\u043d\u043d\u043e\u043c\u0443, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432 \u043f\u043e\u043f\u044b\u0442\u043a\u0430\u0445 \u0432\u0437\u043b\u043e\u043c\u0430 \u0441\u043f\u0435\u0446\u0441\u043b\u0443\u0436\u0431 \u041d\u0410\u0422\u041e, \u0433\u043e\u0441\u043e\u0440\u0433\u0430\u043d\u043e\u0432 \u0413\u0440\u0443\u0437\u0438\u0438, \u041f\u043e\u043b\u044c\u0448\u0438, \u0412\u0435\u043d\u0433\u0440\u0438\u0438 \u0432 FireEye \u043e\u0431\u0432\u0438\u043d\u0438\u043b\u0438 \u00ab\u0440\u0443\u0441\u0441\u043a\u0438\u0445 \u0445\u0430\u043a\u0435\u0440\u043e\u0432\u00bb \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438 APT28. <\/p>\n<p>  \u0410\u0442\u0430\u043a\u0430 \u0431\u044b\u043b\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0430\u043d\u0435\u0435 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 CVE-2015-3043 \u0432 Adobe Flash \u0438 CVE-2015-1701 \u0432 Windows. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u0438 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0430 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0439 \u0441\u0430\u0439\u0442, \u0433\u0434\u0435 \u0441\u043a\u0440\u0438\u043f\u0442 JavaScript \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Flash-\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u043b \u0432 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u0434\u044b\u0440\u044b CVE-2015-1701 \u0432 Windows \u043f\u043e\u0432\u044b\u0448\u0430\u043b \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 \u0438 \u043f\u043e\u0445\u0438\u0449\u0430\u043b \u043a\u043b\u044e\u0447\u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f. <\/p>\n<p>  \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Adobe \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0445 \u0447\u0430\u0441\u043e\u0432 \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u043b\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u043e Flash, \u043d\u043e \u0432 Microsoft \u043d\u0435 \u0442\u043e\u0440\u043e\u043f\u0438\u043b\u0438\u0441\u044c \u0438 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0438 <a href=\"https:\/\/technet.microsoft.com\/library\/security\/MS15-051\">\u043f\u0430\u0442\u0447<\/a> \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u043a\u0430\u043d\u0443\u043d\u0435. \u0412 \u044d\u0442\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u043e\u0431 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u0430\u0433\u0430. <\/p>\n<h4>\u0426\u0435\u043d\u043d\u0430\u044f gSharedInfo<\/h4>\n<p>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 CVE-2015-1701 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438. \u0411\u0435\u0437 <a href=\"http:\/\/www.securitylab.ru\/news\/472188.php\">\u043f\u0435\u0447\u0430\u043b\u044c\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439<\/a> <code>win32k.sys<\/code> \u043d\u0435 \u043e\u0431\u043e\u0448\u043b\u043e\u0441\u044c \u0438 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0441\u044f \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 <code>win32k!tagSHAREDINFO<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b <code>win32k!gSharedInfo<\/code>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430 \u0442\u0438\u043f\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 <code>HWND<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441 \u043d\u0435\u0439 \u043e\u0447\u0435\u043d\u044c \u0442\u0435\u0441\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u043d.<\/p>\n<p>  <a href=\"http:\/\/habrahabr.ru\/company\/pt\/blog\/257879\/\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/2f9\/e01\/d11\/2f9e01d11ae14fb1968afc035b733cd5.png\"\/><\/a> <\/p>\n<p>  \u041d\u0430\u0448\u0430 <code>gSharedInfo<\/code> \u0445\u0440\u0430\u043d\u0438\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043e\u043a\u043d\u0430\u043c\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438, \u0447\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435, \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u044b \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e (\u0441\u043c\u0430\u043f\u043b\u0435\u043d\u044b \u0432 \u044e\u0437\u0435\u0440-\u043c\u043e\u0434, \u043f\u043e-\u043d\u0430\u0448\u0435\u043c\u0443), \u043f\u0440\u0438\u0447\u0451\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u0438\u043c\u0432\u043e\u043b <code>user32!gSharedInfo<\/code> \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0440 (\u043b\u0438\u0431\u043e \u0441 \u0432\u0438\u0441\u0442\u044b, \u043b\u0438\u0431\u043e \u0441 \u0441\u0435\u043c\u0451\u0440\u043a\u0438) \u0441\u0442\u0430\u043b \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u043c.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-257144","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/257144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=257144"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/257144\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=257144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=257144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=257144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}