{"id":469834,"date":"2025-08-06T15:02:56","date_gmt":"2025-08-06T15:02:56","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=469834"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=469834","title":{"rendered":"<span>\u041e\u0442 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u0438 \u043a payload: \u0432\u0441\u043a\u0440\u044b\u0442\u0438\u0435 Snake Keylogger \u0448\u0430\u0433 \u0437\u0430 \u0448\u0430\u0433\u043e\u043c<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/46c\/f7e\/bb8\/46cf7ebb8c71fac4adf48b6ef0ab29c2.png\" width=\"1024\" height=\"1024\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/46c\/f7e\/bb8\/46cf7ebb8c71fac4adf48b6ef0ab29c2.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/46c\/f7e\/bb8\/46cf7ebb8c71fac4adf48b6ef0ab29c2.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>Snake Keylogger \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u0442\u0435\u0445 .NET-\u043e\u0431\u0440\u0430\u0437\u0446\u043e\u0432, \u0447\u0442\u043e \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043a\u0430\u0436\u0443\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438, \u043d\u043e \u043d\u0430 \u0434\u0435\u043b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u0412 \u044d\u0442\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0435 \u044f \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e \u0440\u0430\u0437\u0431\u0435\u0440\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438, \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044e\u0442\u0441\u044f \u0441\u043a\u0440\u044b\u0442\u044b\u0435 PE-\u0444\u0430\u0439\u043b\u044b, \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u044e, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0437\u043b\u043e\u0432\u0440\u0435\u0434 \u043f\u043e\u0441\u043b\u0435 \u0438\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c.  <\/p>\n<blockquote>\n<p>\u0412\u0410\u0416\u041d\u041e!<\/p>\n<p>\u0412\u0441\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u043d\u0430\u0434 \u0441\u0435\u043c\u043f\u043b\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432\u00a0\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 \u0441\u00a0\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043e\u043c. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u00a0\u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u0435!<\/p>\n<\/blockquote>\n<h3>\u041f\u043e\u0435\u0445\u0430\u043b\u0438!<\/h3>\n<p>\u041f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b ml.exe \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0435\u0441\u0438\u0442 \u0432\u0441\u0435\u0433\u043e 600\u041a\u0431. \u041e\u0442\u043f\u0440\u0430\u0432\u0438\u043c \u0435\u0433\u043e \u0432\u00a0\u0443\u0442\u0438\u043b\u0438\u0442\u0443 Detect It Easy (DIE) \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4df\/d37\/dac\/4dfd37dac5b46c638afe070246fdb738.png\" alt=\"\u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0444\u0430\u0439\u043b\u0435 ml.exe\" title=\"\u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0444\u0430\u0439\u043b\u0435 ml.exe\" width=\"991\" height=\"591\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4df\/d37\/dac\/4dfd37dac5b46c638afe070246fdb738.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4df\/d37\/dac\/4dfd37dac5b46c638afe070246fdb738.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u00a0\u0444\u0430\u0439\u043b\u0435 ml.exe<\/figcaption><\/div>\n<\/figure>\n<p>DIE \u0432\u044b\u0434\u0430\u043b \u043d\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438. \u0412\u043e\u00a0\u043f\u0435\u0440\u0432\u044b\u0445: \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u043a\u043e\u0434 \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u0435\u043c\u043f\u043b\u0430 \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d (\u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u044d\u0442\u043e \u043f\u043e\u0437\u0436\u0435). \u0412\u043e\u00a0\u0432\u0442\u043e\u0440\u044b\u0445: DIE \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0430, \u0447\u0442\u043e\u00a0\u0441\u0435\u043a\u0446\u0438\u044f.text \u0437\u0430\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u0430, \u0430\u00a0\u044d\u0442\u043e \u0432\u0430\u0436\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u0442.\u043a. \u0432\u00a0\u0441\u0435\u043a\u0446\u0438\u0438 .text \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0441\u0430\u043c \u043a\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e \u043d\u0435\u00a0\u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u0430\u043a), \u0430\u00a0\u0437\u0430\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043d\u0435\u00a0\u0440\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0444\u0430\u043a\u0442 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0430\u0441\u0447\u0435\u0442\u0430 <em>\u044d\u043d\u0442\u0440\u043e\u043f\u0438\u0438 \u0444\u0430\u0439\u043b\u0430<\/em>.<\/p>\n<blockquote>\n<p><strong>\u042d\u043d\u0442\u0440\u043e\u043f\u0438\u044f \u0444\u0430\u0439\u043b\u0430<\/strong>\u00a0\u2014 \u044d\u0442\u043e \u043c\u0435\u0440\u0430 \u0445\u0430\u043e\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u0438\/\u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u00a0\u0444\u0430\u0439\u043b\u0435. \u0427\u0435\u043c \u0432\u044b\u0448\u0435 \u044d\u043d\u0442\u0440\u043e\u043f\u0438\u044f, \u0442\u0435\u043c \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u0430\u0439\u0442\u043e\u0432. \u0412\u044b\u0441\u043e\u043a\u0430\u044f \u044d\u043d\u0442\u0440\u043e\u043f\u0438\u044f (&gt;7) \u0442\u0440\u0435\u0432\u043e\u0436\u043d\u044b\u0439 \u043f\u0440\u0438\u0437\u043d\u0430\u043a: \u043a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442\u00a0\u0431\u044b\u0442\u044c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d, \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d \u0438\u043b\u0438\u00a0\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d.<\/p>\n<\/blockquote>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/78f\/76b\/91c\/78f76b91c8ae08d4dcd1ead4804b1263.png\" alt=\"\u042d\u043d\u0442\u0440\u043e\u043f\u0438\u044f \u0444\u0430\u0439\u043b\u0430 ml.exe\" title=\"\u042d\u043d\u0442\u0440\u043e\u043f\u0438\u044f \u0444\u0430\u0439\u043b\u0430 ml.exe\" width=\"1380\" height=\"668\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/78f\/76b\/91c\/78f76b91c8ae08d4dcd1ead4804b1263.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/78f\/76b\/91c\/78f76b91c8ae08d4dcd1ead4804b1263.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u042d\u043d\u0442\u0440\u043e\u043f\u0438\u044f \u0444\u0430\u0439\u043b\u0430 ml.exe<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0430\u043a\u00a0\u0436\u0435 \u043e\u0434\u0438\u043d \u0438\u0437\u00a0\u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0437\u0430\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u0430\u00a0\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u00a0\u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 DLL\u2011\u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u041a\u0430\u043a\u00a0\u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432\u00a0\u0437\u0430\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0430\u044f, \u043f\u043e\u0440\u044f\u0434\u043a\u0430 2\u20133\u00a0\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u00a0\u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043d\u0435\u00a0\u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0\u0441\u0435\u043c\u043f\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430.NET, \u0430\u00a0\u043a\u0430\u043a\u00a0\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435.NET\u2011\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u044e\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438\u043c\u043f\u043e\u0440\u0442\u0430, \u0433\u0434\u0435 \u0447\u0430\u0441\u0442\u043e \u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e mscoree.dll (\u0438\u043d\u043e\u0433\u0434\u0430 \u0435\u0449\u0435 kernel32.dll \u0434\u043b\u044f\u00a0\u0431\u0430\u0437\u043e\u0432\u044b\u0445 WinAPI\u2011\u0432\u044b\u0437\u043e\u0432\u043e\u0432). <\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/425\/d75\/42a\/425d7542a888e0e9287f4684c1c9a56e.png\" alt=\"\u0418\u043c\u043f\u043e\u0440\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 mscoree.dll\" title=\"\u0418\u043c\u043f\u043e\u0440\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 mscoree.dll\" width=\"1134\" height=\"667\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/425\/d75\/42a\/425d7542a888e0e9287f4684c1c9a56e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/425\/d75\/42a\/425d7542a888e0e9287f4684c1c9a56e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u043c\u043f\u043e\u0440\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 mscoree.dll<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a? <br \/>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e .NET \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Windows. \u0412\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 DLL (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, user32.dll), .NET-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u043a \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c .NET, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u0415\u0441\u043b\u0438 \u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c P\/Invoke (Platform Invocation Services), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u043c\u0443 \u043a\u043e\u0434\u0443 (\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c\u0443 \u043d\u0430 C#, VB.NET \u0438 \u0434\u0440.) \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 DLL.  <\/p>\n<p>\u0418\u0442\u0430\u043a, \u043c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u00a0\u0444\u0430\u0439\u043b\u0435 \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a\u00a0\u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044e \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u041a\u0430\u043a\u00a0\u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u043e\u0441\u044c, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430.NET \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0434\u0430\u044e\u0442\u0441\u044f \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u0412\u00a0\u0441\u0435\u0442\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432, \u043d\u043e\u00a0\u044f \u0432\u044b\u0431\u0440\u0430\u043b dnSpy, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u0435\u0431\u044f \u0437\u0430\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043b. \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u0440\u0430\u0437\u0435\u0446 \u0432\u00a0dnSpy \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6bc\/b24\/18e\/6bcb2418ed01f6987174656ce09f239c.png\" alt=\"\u0414\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432 dnspy\" title=\"\u0414\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432 dnspy\" width=\"2346\" height=\"1232\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/6bc\/b24\/18e\/6bcb2418ed01f6987174656ce09f239c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6bc\/b24\/18e\/6bcb2418ed01f6987174656ce09f239c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432\u00a0dnspy<\/figcaption><\/div>\n<\/figure>\n<h3>ml.exe<\/h3>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0432\u0430\u043c\u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041a\u0440\u0430\u0441\u0438\u0432\u043e, \u043f\u0440\u0430\u0432\u0434\u0430? (\u0441\u0430\u0440\u043a\u0430\u0437\u043c)   \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0412\u041f\u041e, \u0434\u0430\u00a0\u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u041f\u041e\u00a0\u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f\u00a0\u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u043e\u0434\u0430. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0432\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430.NET, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0\u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u0434\u043e\u00a0\u043f\u043e\u0447\u0442\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e, \u0430\u00a0\u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043a\u043e\u0434 \u043e\u0442\u00a0\u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0445\u043e\u0447\u0435\u0442\u0441\u044f. \u0418 \u043a\u0430\u043a\u00a0\u0436\u0435 \u043d\u0430\u043c \u0442\u0430\u043a\u043e\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c? \u041d\u0430\u00a0\u043f\u043e\u043c\u043e\u0449\u044c \u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 <strong>\u0434\u0435\u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440\u044b<\/strong>.<\/p>\n<blockquote>\n<p><strong>\u0414\u0435\u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440\u044b<\/strong>\u00a0\u2014 \u044d\u0442\u043e \u043a\u043b\u0430\u0441\u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0434\u043b\u044f\u00a0\u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 (\u0438\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0445) \u0432\u00a0\u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0439 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0432\u0438\u0434.<\/p>\n<\/blockquote>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u0430\u0441\u0441\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u042f \u0440\u0435\u0448\u0438\u043b \u0432\u044b\u0431\u0440\u0430\u0442\u044c de4dot (\u0441\u0441\u044b\u043b\u043a\u0430 \u0432\u00a0\u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438). \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u0441\u0435\u043c\u043f\u043b \u0432\u00a0\u0434\u0435\u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/250\/656\/68c\/25065668cb9ac238eb45a4f3f78de2e4.png\" alt=\"\u0414\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434\" title=\"\u0414\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434\" width=\"2353\" height=\"1234\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/250\/656\/68c\/25065668cb9ac238eb45a4f3f78de2e4.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/250\/656\/68c\/25065668cb9ac238eb45a4f3f78de2e4.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0440\u0443\u0433\u043e\u0435 \u0434\u0435\u043b\u043e. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434. \u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0438\u043b\u0438 Windows (\u0442\u0435\u043c\u044b \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f). \u0412\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u0437\u043e\u0432 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u00a0\u043b\u0438 \u0434\u043b\u044f\u00a0\u0442\u0435\u043a\u0441\u0442\u0430 \u0432\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0445 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0440\u0443\u044e \u0438\u043b\u0438\u00a0\u043d\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 \u0442\u0435\u043a\u0441\u0442\u0430. \u0410\u00a0\u0432\u043e\u0442 \u0442\u0440\u0435\u0442\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u0443\u0436\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435. \u0417\u0434\u0435\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 <code>SuperAdventure<\/code> \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0432\u00a0\u043c\u0435\u0442\u043e\u0434 <code>Application.Run()<\/code> \u0434\u043b\u044f\u00a0\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0438\u0437\u0443\u0447\u0438\u043c \u044d\u0442\u043e\u0442 \u043a\u043b\u0430\u0441\u0441.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/277\/a56\/392\/277a56392c69451fa11abb2e4910aa98.png\" alt=\"\u041a\u043b\u0430\u0441\u0441 SuperAdventure\" title=\"\u041a\u043b\u0430\u0441\u0441 SuperAdventure\" width=\"2336\" height=\"942\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/277\/a56\/392\/277a56392c69451fa11abb2e4910aa98.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/277\/a56\/392\/277a56392c69451fa11abb2e4910aa98.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041a\u043b\u0430\u0441\u0441 SuperAdventure<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u043b\u0430\u0441\u0441 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 (\u0431\u043e\u043b\u0435\u0435 1000\u00a0\u0441\u0442\u0440\u043e\u043a), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0432\u044b\u0434\u0435\u043b\u044e \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0434\u043b\u044f\u00a0\u043d\u0430\u0441 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442. <code>this.InitializeComponent()<\/code>\u00a0\u2014 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u043e\u0440\u043c\u044b, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0442\u0430\u043a\u043e\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/16c\/cca\/77e\/16ccca77eebfa38e9764133b2460fef2.png\" width=\"2349\" height=\"957\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/16c\/cca\/77e\/16ccca77eebfa38e9764133b2460fef2.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/16c\/cca\/77e\/16ccca77eebfa38e9764133b2460fef2.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <code>smethod_62<\/code>\u00a0\u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u043a\u0438\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 componentResourceManager \u0438 \u0435\u0433\u043e \u0438\u043c\u044f \u00abCV\u00bb. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u00a0Bitmap. \u0414\u0430\u043b\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u0430\u0439\u0442\u043e\u0432 \u0441\u00a0\u0438\u043c\u0435\u043d\u0435\u043c list. \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <code>ArtifactScanning<\/code> \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f bitmap, list \u0438 \u043d\u0435\u043a\u043e\u0435 \u0447\u0438\u0441\u043b\u043e 68\u00a0608.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/255\/b1a\/7e2\/255b1a7e21dd63fd7a455906327f4e57.png\" alt=\"\u041c\u0435\u0442\u043e\u0434 ArtifactScanning\" title=\"\u041c\u0435\u0442\u043e\u0434 ArtifactScanning\" width=\"2350\" height=\"958\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/255\/b1a\/7e2\/255b1a7e21dd63fd7a455906327f4e57.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/255\/b1a\/7e2\/255b1a7e21dd63fd7a455906327f4e57.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041c\u0435\u0442\u043e\u0434 ArtifactScanning<\/figcaption><\/div>\n<\/figure>\n<p>\u0411\u0438\u043d\u0433\u043e! \u0417\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: <br \/>1) \u041f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u00a0\u0438\u043c\u0435\u043d\u0435\u043c CV. \u042d\u0442\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430.<br \/>2) \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0431\u0430\u0439\u0442\u044b \u0437\u0430\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0432\u00a0\u0441\u043f\u0438\u0441\u043e\u043a treasureData (list) \u043f\u043e\u043a\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0435\u00a0\u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0435\u0442 68\u00a0608\u00a0\u0431\u0430\u0439\u0442 (\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u0432\u00a0<code>ArtifactScanning<\/code>)<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cf4\/b8e\/0a2\/cf4b8e0a2936b40de0c3b5036abdd00a.png\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 CV\" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 CV\" width=\"2356\" height=\"492\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/cf4\/b8e\/0a2\/cf4b8e0a2936b40de0c3b5036abdd00a.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cf4\/b8e\/0a2\/cf4b8e0a2936b40de0c3b5036abdd00a.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 CV<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u00a0\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a list \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c 68\u00a0608\u00a0\u0431\u0430\u0439\u0442. \u0427\u0442\u043e\u00a0\u0436\u0435 \u044d\u0442\u043e \u0437\u0430\u00a0\u0441\u043f\u0438\u0441\u043e\u043a?<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1c4\/55e\/0a3\/1c455e0a38f975a54aef367f77e16ac9.png\" alt=\"\u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a list\" title=\"\u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a list\" width=\"2355\" height=\"1217\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/1c4\/55e\/0a3\/1c455e0a38f975a54aef367f77e16ac9.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1c4\/55e\/0a3\/1c455e0a38f975a54aef367f77e16ac9.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a list<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0435\u0440\u0432\u044b\u0435 2\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u044d\u0442\u043e \u0431\u0430\u0439\u0442\u044b 4D 5A. \u041f\u043e\u043d\u044f\u043b\u0438, \u0434\u0430?) \u0412\u00a0\u044d\u0442\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b. \u0427\u0442\u043e\u0431\u044b \u0432\u00a0\u044d\u0442\u043e\u043c \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u00a0\u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u00a0\u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6bf\/646\/21f\/6bf64621f3f88f045b4a8f75a97606f6.png\" alt=\"\u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438\" title=\"\u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438\" width=\"455\" height=\"210\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/6bf\/646\/21f\/6bf64621f3f88f045b4a8f75a97606f6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6bf\/646\/21f\/6bf64621f3f88f045b4a8f75a97606f6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u00a0\u043f\u0430\u043c\u044f\u0442\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0438\u0434\u0438\u043c \u0432\u0441\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0439 DOS\u2011header \u0438 \u0438\u043c\u0435\u043d\u0430 \u0441\u0435\u043a\u0446\u0438\u0439. \u041e\u0442\u0441\u044e\u0434\u0430 \u044f \u0434\u0435\u043b\u0430\u044e \u0432\u044b\u0432\u043e\u0434 \u0447\u0442\u043e\u00a0\u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u043c\u043f\u043b ml.exe \u044d\u0442\u043e \u0434\u0440\u043e\u043f\u043f\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0435\u0451. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u0442\u043e\u043c \u0432\u00a0\u043a\u043b\u0430\u0441\u0441\u0435 <code>SuperAdventure<\/code> \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u044b\u0437\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u0430 \u0438\u0437\u00a0\u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430. <\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/aa6\/13d\/173\/aa613d1733d5b64eba5a8117c9202680.png\" width=\"926\" height=\"97\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/aa6\/13d\/173\/aa613d1733d5b64eba5a8117c9202680.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/aa6\/13d\/173\/aa613d1733d5b64eba5a8117c9202680.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><code>SuperAdventure.smethod_1(methodInfo, null, \"Invoke\", new object[] { 0, array }, null, null);<\/code><\/p>\n<p>\u0433\u0434\u0435 methodInfo\u00a0\u2014 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u00a0\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0430. \u0418\u043c\u044f \u043c\u0435\u0442\u043e\u0434\u0430\u00a0\u2014 Justy, array\u00a0\u2014 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0432\u00a0\u043c\u0435\u0442\u043e\u0434 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0441\u0442\u0440\u043e\u043a\u0438: \u00ab64\u00a0444A56\u00bb, \u00ab727\u00a0163\u00bb, \u00abSuperAdventure\u00bb.<\/p>\n<p>\u041a\u0430\u043a\u00a0\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0430\u043c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<p>1) \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>smethod_1<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043e\u0431\u0451\u0440\u0442\u043a\u043e\u0439 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0432\u044b\u0437\u043e\u0432 \u0432\u00a0<code>LateBinding.LateCall<\/code>.<br \/>2) LateCall \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <code>InternalLateCall<\/code>, \u0433\u0434\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0432\u044b\u0431\u043e\u0440\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0432\u044b\u0437\u043e\u0432\u0430.<br \/>3) \u0412\u00a0<code>InternalLateCall<\/code> \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u0432\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>InvokeMember<\/code>\u00a0\u2014 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 \u00abInvoke\u00bb \u0443\u00a0\u043e\u0431\u044a\u0435\u043a\u0442\u0430 MethodInfo.<br \/>4) InvokeMember \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <code>MethodInfo.Invoke<\/code>, \u0442\u043e \u0435\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 Justy \u0441\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438.<\/p>\n<p>\u0421\u0445\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/caf\/2d9\/ac7\/caf2d9ac72bcd624e4e13975820d1cf8.png\" alt=\"\u0421\u0445\u0435\u043c\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 Justy\" title=\"\u0421\u0445\u0435\u043c\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 Justy\" width=\"307\" height=\"665\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/caf\/2d9\/ac7\/caf2d9ac72bcd624e4e13975820d1cf8.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/caf\/2d9\/ac7\/caf2d9ac72bcd624e4e13975820d1cf8.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u0445\u0435\u043c\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 Justy<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 \u043c\u0430\u0442\u0440\u0451\u0448\u043a\u0430, \u0446\u0435\u043b\u044c \u043a\u043e\u0442\u043e\u0440\u043e\u0439\u00a0\u2014 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0438\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437 \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 Justy \u0438\u0437\u00a0\u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0434\u0430\u043c\u043f \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0432\u00a0\u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043e\u0434 \u043d\u0430\u00a0python:<\/p>\n<pre><code>import ctypes  PROCESS_VM_READ = 0x0010 PROCESS_QUERY_INFORMATION = 0x0400  pid = 1234  # PID \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 base_address = 0x040A946C  # \u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 (4D) size = 0x0005B000 # \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430\/\u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0431\u0430\u0439\u0442  OpenProcess = ctypes.windll.kernel32.OpenProcess ReadProcessMemory = ctypes.windll.kernel32.ReadProcessMemory CloseHandle = ctypes.windll.kernel32.CloseHandle  process_handle = OpenProcess(PROCESS_VM_READ | PROCESS_QUERY_INFORMATION, False, pid) if not process_handle:   raise OSError(f\"[-] \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441 PID {pid}.\")  buffer = ctypes.create_string_buffer(size) bytes_read = ctypes.c_size_t()  success = ReadProcessMemory(   process_handle,   ctypes.c_void_p(base_address),   buffer,   size,   ctypes.byref(bytes_read)  )  if not success:   CloseHandle(process_handle)   raise OSError(\"[-] ReadProcessMemory \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c.\")  with open(\"payload_dump\", \"wb\") as f:   f.write(buffer.raw)  CloseHandle(process_handle) print(f\"[+] \u0423\u0441\u043f\u0435\u0448\u043d\u043e \u0434\u0430\u043c\u043f\u043d\u0443\u0442\u043e {bytes_read.value} \u0431\u0430\u0439\u0442 \u0432 \u0444\u0430\u0439\u043b\")<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0430\u043c\u043f payload_dump. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u0442\u0430\u043a\u00a0\u0436\u0435 \u0432\u00a0dnspy \u0438 \u0432\u0438\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d5e\/adb\/825\/d5eadb8256f40291f1a61deeb850701e.png\" alt=\"TL.dll\" title=\"TL.dll\" width=\"2540\" height=\"1107\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d5e\/adb\/825\/d5eadb8256f40291f1a61deeb850701e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d5e\/adb\/825\/d5eadb8256f40291f1a61deeb850701e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>TL.dll<\/figcaption><\/div>\n<\/figure>\n<h3>TL.dll<\/h3>\n<div class=\"floating-image\">\n<p>DnSpy \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0430 \u0435\u0433\u043e \u043a\u0430\u043a\u00a0\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 TL.dll, \u043f\u0440\u0438\u0447\u0435\u043c \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e. \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0451 \u0432\u00a0de4dot \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0439 \u043a\u043e\u0434. \u041d\u0430\u043f\u043e\u043c\u043d\u044e \u0447\u0442\u043e\u00a0\u0432\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u00a0\u043c\u0435\u0442\u043e\u0434 Justy \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f 3\u00a0\u0441\u0442\u0440\u043e\u043a\u0438: \u00ab64\u00a0444A56\u00bb, \u00ab727\u00a0163\u00bb \u0438 \u00abSuperAdventure\u00bb. <\/p>\n<\/div>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0f0\/246\/82b\/0f024682bb4f393a3e040da7e0565e52.png\" alt=\"\u0414\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f TL.dll\" title=\"\u0414\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f TL.dll\" width=\"2536\" height=\"1113\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/0f0\/246\/82b\/0f024682bb4f393a3e040da7e0565e52.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0f0\/246\/82b\/0f024682bb4f393a3e040da7e0565e52.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f TL.dll<\/figcaption><\/div>\n<\/figure>\n<p>\u0418\u0442\u0430\u043a, \u043c\u0435\u0442\u043e\u0434 Justy:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5e5\/cd6\/679\/5e5cd6679af9e38d47f154a5025358a4.png\" alt=\"Justy\" title=\"Justy\" width=\"1238\" height=\"343\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5e5\/cd6\/679\/5e5cd6679af9e38d47f154a5025358a4.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5e5\/cd6\/679\/5e5cd6679af9e38d47f154a5025358a4.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Justy<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0438\u0434\u0438\u043c \u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u043d\u043e\u00a0\u043a\u0430\u043a\u00a0\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0437\u00a0\u043d\u0438\u0445\u00a0\u043b\u0438\u0431\u043e \u043f\u0443\u0441\u0442\u044b\u0435\u00a0\u043b\u0438\u0431\u043e \u043d\u0435\u00a0\u0438\u043c\u0435\u044e\u0442 \u0441\u043c\u044b\u0441\u043b\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>smethod_9<\/code>\u00a0\u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e 2\u00a0\u0446\u0438\u043a\u043b\u0430 for, \u0430\u00a0<code>smethod_10<\/code>\u00a0\u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0443\u0441\u0442\u043e\u0439.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/24a\/d16\/498\/24ad16498ff71f13ec25fffc171d7674.png\" alt=\"\u0411\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0439 smethod_9\" title=\"\u0411\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0439 smethod_9\" width=\"838\" height=\"224\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/24a\/d16\/498\/24ad16498ff71f13ec25fffc171d7674.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/24a\/d16\/498\/24ad16498ff71f13ec25fffc171d7674.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0411\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0439 smethod_9<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f1f\/87b\/127\/f1f87b127ac273e61705c18fbabc2bc6.png\" alt=\"\u041f\u0443\u0441\u0442\u043e\u0439 smethod_10\" title=\"\u041f\u0443\u0441\u0442\u043e\u0439 smethod_10\" width=\"825\" height=\"86\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f1f\/87b\/127\/f1f87b127ac273e61705c18fbabc2bc6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f1f\/87b\/127\/f1f87b127ac273e61705c18fbabc2bc6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u0443\u0441\u0442\u043e\u0439 smethod_10<\/figcaption><\/div>\n<\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b\u00a0\u043b\u0438\u0448\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043d\u0430\u043c \u043d\u0435\u00a0\u043c\u0435\u0448\u0430\u043b\u0438 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0434\u0430\u043b\u0438\u043b \u0438\u0445. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/541\/79b\/37b\/54179b37bc3484afc9c475e14fd432e7.png\" alt=\"\u041e\u0447\u0438\u0449\u0435\u043d\u043d\u044b\u0439 Justy\" title=\"\u041e\u0447\u0438\u0449\u0435\u043d\u043d\u044b\u0439 Justy\" width=\"1578\" height=\"223\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/541\/79b\/37b\/54179b37bc3484afc9c475e14fd432e7.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/541\/79b\/37b\/54179b37bc3484afc9c475e14fd432e7.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041e\u0447\u0438\u0449\u0435\u043d\u043d\u044b\u0439 Justy<\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u0440\u0430\u0437\u0443 \u0441\u043a\u0430\u0436\u0443 \u0447\u0442\u043e\u00a0\u0432\u0441\u0435 smethod_* \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e\u00a0\u043b\u0438\u0448\u044c \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 smethod_1\u00a0\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 <code>CausalitySource<\/code>. \u0414\u0430\u043b\u0435\u0435 \u044f \u0441\u0440\u0430\u0437\u0443 \u0431\u0443\u0434\u0443 \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430. \u041f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u0435\u043b\u0430\u044e\u0442 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e\u00a0\u0436\u0435: \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u043c\u0435\u0442\u043e\u0434 CausalitySource \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0430\u00a0\u0432\u0445\u043e\u0434 \u043d\u0430\u0431\u043e\u0440 \u0431\u0430\u0439\u0442, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0435\u0433\u043e \u0432\u00a0\u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0451.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/292\/a45\/197\/292a45197e903062e9e000b96f4f9f72.png\" alt=\"CausalitySource\" title=\"CausalitySource\" width=\"542\" height=\"173\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/292\/a45\/197\/292a45197e903062e9e000b96f4f9f72.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/292\/a45\/197\/292a45197e903062e9e000b96f4f9f72.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>CausalitySource<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0432\u00a0\u043c\u0435\u0442\u043e\u0434\u0435 Justy \u0438\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u00a0\u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u044b\u0437\u043e\u0432\u0430\u043c\u0438. \u0418\u0437\u0443\u0447\u0430\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u043e (\u0438\u043c\u0435\u043d\u043d\u043e \u0432\u00a0\u0442\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043e\u043d\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f).<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/05f\/ce1\/aae\/05fce1aaed078801f76a0978b3b97eae.png\" alt=\"LowestBreakIteration\" title=\"LowestBreakIteration\" width=\"975\" height=\"70\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/05f\/ce1\/aae\/05fce1aaed078801f76a0978b3b97eae.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/05f\/ce1\/aae\/05fce1aaed078801f76a0978b3b97eae.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>LowestBreakIteration<\/figcaption><\/div>\n<\/figure>\n<p>\u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430: \u0441\u0442\u0440\u043e\u043a\u0443, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 <code>CausalitySource<\/code>, \u0438 \u0441\u0442\u0440\u043e\u043a\u0443, \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u0443\u044e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 <code>Justy<\/code><\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 <code>Assembly.GetEntryAssembly()<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0445\u043e\u0434\u043d\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u0444\u0430\u0439\u043b, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e <code>ml.exe<\/code>. \u0414\u0430\u043b\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 <code>ResourceManager<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u044d\u0442\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438. \u041f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u2014 \u044d\u0442\u043e \u0438\u043c\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u0430 (\u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0438\u0437 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d \u0438 \u0438\u043c\u0435\u043d\u0438 \u043a\u043b\u0430\u0441\u0441\u0430), \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 \u0438\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438. <\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <code>GetObject(x10)<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u0437 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043f\u043e \u0438\u043c\u0435\u043d\u0438, \u0445\u0440\u0430\u043d\u044f\u0449\u0435\u043c\u0443\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>x10<\/code>. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0442\u0438\u043f\u0443 <code>Bitmap<\/code>, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u0437\u0432\u043b\u0435\u0447\u0451\u043d\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435.  <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3cb\/868\/a7f\/3cb868a7f0b492331f8c52e1d384c0a4.png\" alt=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 dDJV\" title=\"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 dDJV\" width=\"463\" height=\"458\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/3cb\/868\/a7f\/3cb868a7f0b492331f8c52e1d384c0a4.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3cb\/868\/a7f\/3cb868a7f0b492331f8c52e1d384c0a4.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 dDJV<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u043c\u0435\u0442\u043e\u0434\u0443 <code>smethod_4(Bitmap bitmap_0)<\/code><\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/30b\/8ca\/4b4\/30b8ca4b42bde18a88fc210b1dbe457e.png\" alt=\"smethod_4\" title=\"smethod_4\" width=\"662\" height=\"67\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/30b\/8ca\/4b4\/30b8ca4b42bde18a88fc210b1dbe457e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/30b\/8ca\/4b4\/30b8ca4b42bde18a88fc210b1dbe457e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>smethod_4<\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f <code>RestoreOriginalBitmap(bitmap_0, 150, 150)<\/code>\u00a0\u2014 \u043c\u0435\u0442\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0435\u0440\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u043d\u0430\u00a0\u043f\u0440\u043e\u0448\u043b\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0440\u0435\u0441\u0443\u0440\u0441, \u043e\u0431\u0440\u0435\u0437\u0430\u0435\u0442 \u0435\u0433\u043e \u043f\u043e\u00a0\u0434\u043b\u0438\u043d\u0435 \u0438 \u0448\u0438\u0440\u0438\u043d\u0435 \u043d\u0430 150\u00a0\u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043d\u0430\u043c \u043e\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e\u00a0\u043d\u0438\u0436\u043d\u0438\u0435 150\u00a0\u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439\u00a0\u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0434\u043b\u044f\u00a0\u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u0438\u043b\u0438\u00a0\u043a\u0430\u043a\u00a0\u0448\u0443\u043c\/\u043f\u0430\u0434\u0434\u0438\u043d\u0433. <\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ba0\/e7a\/732\/ba0e7a7325d98b52581d5786431271d7.png\" alt=\"RestoreOriginalBitmap\" title=\"RestoreOriginalBitmap\" width=\"784\" height=\"256\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ba0\/e7a\/732\/ba0e7a7325d98b52581d5786431271d7.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ba0\/e7a\/732\/ba0e7a7325d98b52581d5786431271d7.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>RestoreOriginalBitmap<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u00a0\u0432\u0445\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0443 <code>smethod_13(Bitmap bitmap_0)<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u00a0\u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043f\u0438\u043a\u0441\u0435\u043b\u044e, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0435\u0433\u043e \u0432 4\u00a0\u0431\u0430\u0439\u0442\u0430 ARGB(int32) \u0438 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u043e\u0434\u0438\u043d \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 byte[]. \u0414\u0430\u043b\u0435\u0435 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0435 4\u00a0\u0431\u0430\u0439\u0442\u0430 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432\u00a0int. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e\u00a0\u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 5\u00a0\u0431\u0430\u0439\u0442\u0430 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f N \u0431\u0430\u0439\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430. \u041e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430\u00a0\u0442\u043e, \u0447\u0442\u043e\u00a0\u0431\u044b\u043b\u043e \u043f\u0440\u0438\u00a0\u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0438 TL.dll.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d33\/757\/02d\/d3375702d408e9cbdeef219d22310819.png\" alt=\"smethod_13\" title=\"smethod_13\" width=\"781\" height=\"293\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d33\/757\/02d\/d3375702d408e9cbdeef219d22310819.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d33\/757\/02d\/d3375702d408e9cbdeef219d22310819.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>smethod_13<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430\u00a0\u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043c\u0435\u0442\u043e\u0434 <code>smethod_5(byte[] byte_0, string string_0)<\/code>, \u043e\u043d\u00a0\u0436\u0435 <code>SearchResult(byte_0, string_0)<\/code>:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/436\/f6b\/687\/436f6b6875d9483902c58bd688853715.png\" alt=\"SearchResult  \" title=\"SearchResult  \" width=\"654\" height=\"474\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/436\/f6b\/687\/436f6b6875d9483902c58bd688853715.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/436\/f6b\/687\/436f6b6875d9483902c58bd688853715.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>SearchResult <\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0431\u0449\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430: \u0434\u0435\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0431\u0430\u0439\u0442\u043e\u0432 <code>BinaryCompatibility<\/code> \u0441\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u0432\u0443\u0445 \u043a\u043b\u044e\u0447\u0435\u0439:<br \/>1) <strong>\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043b\u044e\u0447<\/strong> \u2014 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <code>num<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0432\u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c\u0443 \u0431\u0430\u0439\u0442\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430, XOR \u0441 \u0447\u0438\u0441\u043b\u043e\u043c 112. \u042d\u0442\u043e\u0442 \u043a\u043b\u044e\u0447 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0434\u0435\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438.  <br \/>2) <strong>\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043b\u044e\u0447<\/strong> \u2014 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <code>num5<\/code>. \u0412 \u043a\u043e\u0434\u0435 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430 <code>Opcode<\/code> \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442\u043e\u0432 <code>bytes<\/code>. \u042d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u0435\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0439\u0442 \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 <code>num<\/code>. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e <code>num<\/code> \u0440\u0430\u0432\u0435\u043d 0, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u0430\u0439\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u0421 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0435\u0439 <code>num<\/code> \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 1, \u0430 \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 \u0434\u043b\u0438\u043d\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 0.  <\/p>\n<p>\u0426\u0438\u043a\u043b \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438:<br \/>1) \u0411\u0435\u0440\u0435\u0442\u0441\u044f \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0431\u0430\u0439\u0442 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u00a0<code>num4<\/code>\u00a0<br \/>2) \u0411\u0435\u0440\u0435\u0442\u0441\u044f \u043a\u043b\u044e\u0447 \u0438\u0437\u00a0\u043c\u0430\u0441\u0441\u0438\u0432\u0430 bytes \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u00a0<code>num5<\/code>\u00a0<br \/>3) \u0411\u0435\u0440\u0435\u0442\u0441\u044f \u043a\u043b\u044e\u0447 <code>num<\/code><br \/>4) \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f XOR \u0432\u0441\u0435\u0445 \u0442\u0440\u0435\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445\u00a0\u2014 num4\u00a0XOR num XOR num5\u00a0<br \/>5) \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u043c\u0430\u0441\u0441\u0438\u0432 array<br \/>6) \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>num3<\/code>: \u0415\u0441\u043b\u0438 \u043e\u043d\u0430 \u0440\u0430\u0432\u043d\u0430 \u0434\u043b\u0438\u043d\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 Opcode, \u0442\u043e <code>num3<\/code>\u00a0\u0440\u0430\u0432\u043d\u0430 0, \u0430\u00a0\u0438\u043d\u0430\u0447\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 1.<br \/>\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u00a0\u2014 \u043c\u0430\u0441\u0441\u0438\u0432 <code>array<\/code> \u0441\u00a0\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0431\u0430\u0439\u0442\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0430\u043c\u044f\u0442\u044c \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c \u0434\u043e\u00a0\u0431\u043e\u043b\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443:<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ce9\/487\/0e6\/ce94870e602062b5a06c1d47ca4d5aa4.png\" alt=\"\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 array\" title=\"\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 array\" width=\"425\" height=\"208\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ce9\/487\/0e6\/ce94870e602062b5a06c1d47ca4d5aa4.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ce9\/487\/0e6\/ce94870e602062b5a06c1d47ca4d5aa4.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 array<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0442\u043e\u00a0\u043c\u0435\u0442\u043e\u0434 <code>Justy<\/code> \u0432\u00a0\u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 TL.dll \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0443 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438\u0437\u00a0\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f <code>dDJV<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432\u00a0\u0440\u0435\u0441\u0443\u0440\u0441\u0430\u0445 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 ml.exe.<br \/>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a\u00a0\u0432\u044b\u0437\u043e\u0432\u0443 <code>smethod_12<\/code>. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d49\/04d\/ede\/d4904dede1f8972ce5a34763fad9a9b9.png\" alt=\"smethod_12\" title=\"smethod_12\" width=\"454\" height=\"68\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d49\/04d\/ede\/d4904dede1f8972ce5a34763fad9a9b9.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d49\/04d\/ede\/d4904dede1f8972ce5a34763fad9a9b9.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>smethod_12<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0430\u00a0\u0432\u0445\u043e\u0434 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <code>Assembly.Load<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0431\u0430\u0439\u0442\u044b \u0438\u0437\u00a0\u044d\u0442\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u00a0\u043f\u0430\u043c\u044f\u0442\u044c, \u0431\u0435\u0437\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u00a0\u0434\u0438\u0441\u043a. \u0421\u0434\u0435\u043b\u0430\u043d\u043e \u044d\u0442\u043e \u0434\u043b\u044f\u00a0\u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0430\u043d\u0442\u0438\u0432\u0438\u0440\u0443\u0441\u043e\u043c \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437\u00a0\u0441\u0435\u0431\u044f \u043d\u043e\u0432\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/610\/516\/244\/610516244cbbf4502237a17f857c8928.png\" alt=\"\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\" title=\"\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\" width=\"794\" height=\"183\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/610\/516\/244\/610516244cbbf4502237a17f857c8928.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/610\/516\/244\/610516244cbbf4502237a17f857c8928.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442<\/figcaption><\/div>\n<\/figure>\n<p>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043c\u0435\u0442\u043e\u0434\u00a0\u2014 <code>smethod_11<\/code><\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9fe\/c86\/a97\/9fec86a979000be34e8e6b7ea733ff50.png\" alt=\"smethod_11\" title=\"smethod_11\" width=\"605\" height=\"66\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/9fe\/c86\/a97\/9fec86a979000be34e8e6b7ea733ff50.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9fe\/c86\/a97\/9fec86a979000be34e8e6b7ea733ff50.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>smethod_11<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434:<br \/>1) \u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430\u00a0\u0432\u0445\u043e\u0434 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u0431\u043e\u0440\u043a\u0438<br \/>2) \u0418\u0437\u00a0\u044d\u0442\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0432\u0441\u0435 \u0442\u0438\u043f\u044b \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0445 \u0432\u00a0\u043c\u0430\u0441\u0441\u0438\u0432\u0435 Type<br \/>3) \u0411\u0435\u0440\u0435\u0442 21\u0439 \u0442\u0438\u043f \u0438\u0437\u00a0\u043c\u0430\u0441\u0441\u0438\u0432\u0430 Type \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0432\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430<br \/>4) \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442 30\u0439 \u043c\u0435\u0442\u043e\u0434<br \/>\u041d\u0430\u00a0\u0434\u0435\u043b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <code>ec9CTS9EMlrfJEdODQ<\/code> \u0438\u0437\u00a0\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0435\u043d <code>diS2MKGVhxCkt6IgIf<\/code> \u0441\u00a0\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c <code>K0qFnlEV<\/code> \u0432\u00a0Montero.dll. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430 TL.dll \u043e\u043a\u043e\u043d\u0447\u0435\u043d\u0430 \u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a\u00a0\u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044e Montero.dll<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/250\/c84\/933\/250c84933e68e0cb698a5df19676d270.png\" alt=\"Montero.dll\" title=\"Montero.dll\" width=\"1424\" height=\"703\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/250\/c84\/933\/250c84933e68e0cb698a5df19676d270.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/250\/c84\/933\/250c84933e68e0cb698a5df19676d270.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Montero.dll<\/figcaption><\/div>\n<\/figure>\n<h3>Montero.dll<\/h3>\n<p>\u041e\u043f\u044f\u0442\u044c \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u044f, \u043e\u043f\u044f\u0442\u044c \u043a\u0438\u0434\u0430\u0435\u043c \u0432\u00a0de4dot \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/564\/c7b\/984\/564c7b98490d98036509c08259eed552.png\" alt=\"\u0414\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f Montero.dll\" title=\"\u0414\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f Montero.dll\" width=\"1766\" height=\"1034\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/564\/c7b\/984\/564c7b98490d98036509c08259eed552.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/564\/c7b\/984\/564c7b98490d98036509c08259eed552.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f Montero.dll<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <code>smethod_0<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u00a0\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438. \u0421\u0442\u0440\u043e\u043a\u0430 <code>K0qFnlEV<\/code> \u044d\u0442\u043e \u0438\u043c\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u0432\u00a0Montero.dll. \u0412\u00a0\u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u044d\u0442\u043e \u043d\u0435\u00a0\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u0431\u0430\u0439\u0442)<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6bb\/6bf\/6c9\/6bb6bf6c9de9f2a7369833b9fe38510c.png\" alt=\"\u0420\u0435\u0441\u0443\u0440\u0441 K0qFnlEV\" title=\"\u0420\u0435\u0441\u0443\u0440\u0441 K0qFnlEV\" width=\"405\" height=\"192\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/6bb\/6bf\/6c9\/6bb6bf6c9de9f2a7369833b9fe38510c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6bb\/6bf\/6c9\/6bb6bf6c9de9f2a7369833b9fe38510c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0435\u0441\u0443\u0440\u0441 K0qFnlEV<\/figcaption><\/div>\n<\/figure>\n<p>\u0415\u0441\u043b\u0438 \u043a\u0440\u0430\u0442\u043a\u043e, \u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f ResourceManager, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u043a\u00a0\u0440\u0435\u0441\u0443\u0440\u0441\u0443 <code>K0qFnlEV<\/code>. \u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442, \u043a\u0430\u0441\u0442\u0443\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043a\u00a0<code>byte[]<\/code> \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043e. \u0418 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u00a0\u0435\u0441\u043b\u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434, \u0442\u043e \u0434\u0430\u043b\u0435\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u00a0\u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0445\u043e\u0442\u044f \u0432\u00a0\u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c Montero.dll \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u043a\u043e\u0434. \u0412\u0438\u0434\u0438\u043c\u043e \u0434\u0435\u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440 \u043d\u0435\u00a0\u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0441\u044f. \u041f\u043e\u0434\u043e\u0437\u0440\u0435\u0432\u0430\u044e \u0447\u0442\u043e\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u043a\u043e\u0439 \u0442\u043e \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440. \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0431\u0430\u0439\u0442 <code>byte[]<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0431\u043b\u043e\u043a \u043a\u043e\u0434\u0430:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e44\/571\/cae\/e44571cae49938daa1f1c321a919f6c7.png\" alt=\"\u041c\u0435\u0442\u043e\u0434 aEaEUBZdHQ\" title=\"\u041c\u0435\u0442\u043e\u0434 aEaEUBZdHQ\" width=\"1517\" height=\"403\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e44\/571\/cae\/e44571cae49938daa1f1c321a919f6c7.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e44\/571\/cae\/e44571cae49938daa1f1c321a919f6c7.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041c\u0435\u0442\u043e\u0434 aEaEUBZdHQ<\/figcaption><\/div>\n<\/figure>\n<p>\u0422.\u043a. \u043a\u043e\u0434\u0430 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043c\u0430\u043b\u043e \u044f \u0440\u0435\u0448\u0438\u043b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434. \u0412\u00a0\u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code>public static byte[] Decrypt(byte[] encryptedData, string key) {   int index = 0;    while (index &lt;= encryptedData.Length)   {       int currentIndex = index % encryptedData.Length;       int nextIndex = (index + 1) % encryptedData.Length;       int keyIndex = index % keyBytes.Length;        encryptedData[currentIndex] = (byte)(((encryptedData[currentIndex] ^ keyBytes[keyIndex]) - encryptedData[nextIndex] + 256) % 256);       index++;   }    \/\/ \u0423\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0431\u0430\u0439\u0442   Array.Resize(ref encryptedData, encryptedData.Length - 1);    return encryptedData; } <\/code><\/pre>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:<br \/>1) \u0421\u0442\u0440\u043e\u043a\u0430 key \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u00a0\u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442\u043e\u0432 (ASCII)<br \/>2) \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f 3\u00a0\u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0434\u043b\u044f\u00a0\u0446\u0438\u043a\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043e\u0431\u0445\u043e\u0434\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430<br \/>3) \u0411\u0435\u0440\u0435\u0442\u0441\u044f \u0431\u0430\u0439\u0442 \u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438 XOR\u0438\u0442\u0441\u044f \u0441\u00a0\u0431\u0430\u0439\u0442\u043e\u043c \u043a\u043b\u044e\u0447\u0430<br \/>4) \u0412\u044b\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0431\u0430\u0439\u0442 \u0432\u00a0\u043c\u0430\u0441\u0441\u0438\u0432\u0435<br \/>5) \u041f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f 256\u00a0\u0438 \u0431\u0435\u0440\u0451\u0442\u0441\u044f % 256\u00a0\u2014 \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u043e\u0447\u043d\u043e \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u0432\u00a0\u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 0\u2013255\u00a0<br \/>6) \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0431\u0430\u0439\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432\u00a0\u043c\u0430\u0441\u0441\u0438\u0432<br \/>\u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430\u00a0\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442 \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/03a\/667\/78b\/03a66778b331164a232f837d5cfc1bc7.png\" alt=\"\u0414\u0435\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442\" title=\"\u0414\u0435\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442\" width=\"427\" height=\"208\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/03a\/667\/78b\/03a66778b331164a232f837d5cfc1bc7.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/03a\/667\/78b\/03a66778b331164a232f837d5cfc1bc7.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0435\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0443\u043c\u0430\u044e \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u00a0\u043d\u0443\u0436\u043d\u044b) \u041f\u0440\u043e\u0441\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u043c \u0434\u0430\u043c\u043f \u043a\u0430\u043a\u00a0\u0432\u00a0\u043f\u0440\u043e\u0448\u043b\u044b\u0435 \u0440\u0430\u0437\u044b \u0438 \u0437\u0430\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u0432\u00a0DnSpy.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d09\/f90\/50a\/d09f9050adf2e9ad314be8b8db83cd15.png\" alt=\"\u041d\u043e\u0432\u044b\u0439 \u0434\u0430\u043c\u043f - CloudServices\" title=\"\u041d\u043e\u0432\u044b\u0439 \u0434\u0430\u043c\u043f - CloudServices\" width=\"1306\" height=\"637\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d09\/f90\/50a\/d09f9050adf2e9ad314be8b8db83cd15.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d09\/f90\/50a\/d09f9050adf2e9ad314be8b8db83cd15.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041d\u043e\u0432\u044b\u0439 \u0434\u0430\u043c\u043f\u00a0\u2014 CloudServices<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u043e\u043d\u043e! \u041d\u0430\u043a\u043e\u043d\u0435\u0446 \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u0434\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0434\u043e\u00a0\u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u041f\u0440\u0438\u0447\u0435\u043c \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u0438 \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u0442. \u0414\u0430\u0432\u0430\u0439\u0442\u0435\u00a0\u0436\u0435 \u0438\u0437\u0443\u0447\u0438\u043c \u0435\u0435.<\/p>\n<h3>CloudAgent.exe<\/h3>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/90f\/104\/ece\/90f104ecefc0434babaf6461980ec13f.png\" alt=\"\u0424\u0443\u043d\u043a\u0446\u0438\u044f Main\" title=\"\u0424\u0443\u043d\u043a\u0446\u0438\u044f Main\" width=\"596\" height=\"252\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/90f\/104\/ece\/90f104ecefc0434babaf6461980ec13f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/90f\/104\/ece\/90f104ecefc0434babaf6461980ec13f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0424\u0443\u043d\u043a\u0446\u0438\u044f Main<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u041c\u0435\u0442\u043e\u0434<\/strong> <code>isUserExpired<\/code><\/p>\n<p>\u041c\u0435\u0442\u043e\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043d\u0430\u00a0\u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043a\u0430\u043a\u00a0\u0447\u0430\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b\u00a0\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043b\u0438\u00a0\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u0430\u0442\u0430 \u0438\u0437\u00a0\u0441\u0442\u0440\u043e\u043a\u0438 <code>UltraSpeed.ExpireTimeDate<\/code> \u0432\u00a0\u0444\u043e\u0440\u043c\u0430\u0442\u0435 yyyy\u2011MM\u2011dd. \u0412\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0437\u0430\u0448\u0438\u0442\u0430 \u0434\u0430\u0442\u0430 2025\u201301\u201310. \u0414\u0430\u043d\u043d\u0430\u044f \u0434\u0430\u0442\u0430 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u00a0\u0442\u0435\u043a\u0443\u0449\u0435\u0439 (DateTime.Now) \u0438 \u0435\u0441\u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0434\u0430\u0442\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439, \u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e<code>Application.Exit()<\/code><\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b99\/69e\/070\/b9969e070109c047020d30aaa818cebb.png\" alt=\"isUserExpired\" title=\"isUserExpired\" width=\"929\" height=\"276\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b99\/69e\/070\/b9969e070109c047020d30aaa818cebb.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b99\/69e\/070\/b9969e070109c047020d30aaa818cebb.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>isUserExpired<\/figcaption><\/div>\n<\/figure>\n<p>\u041c\u0435\u0442\u043e\u0434\u044b <code>DisableWD<\/code>, <code>Taskmgr_Disabler<\/code>, <code>CMD_Disabler<\/code>, <code>Registeries_Disabler<\/code> \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u044b \u0432\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435, \u043e\u0434\u043d\u0430\u043a\u043e \u043d\u0435\u00a0\u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a? \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0430\u043d\u043d\u043e\u0435 \u0412\u041f\u041e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u00a0\u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 MaaS (Malware\u2011as\u2011a-Service). \u0442.\u00a0\u0435. \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0412\u041f\u041e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0437\u0430\u00a0\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043b\u0443\u0447\u0448\u0430\u044e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043c\u0430\u043b\u0432\u0430\u0440\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u00a0\u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u00a0\u0434\u043e\u043f. \u043f\u043b\u0430\u0442\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043c\u043e\u0433 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f Windows Defender (DisableWD), \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u043d \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0440\u0435\u0437\u0430\u043b, \u043d\u043e\u00a0\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0432\u044b\u0437\u043e\u0432. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0434\u043b\u044f\u00a0\u0447\u0435\u0433\u043e \u043d\u0443\u0436\u0435\u043d \u043c\u0435\u0442\u043e\u0434 <code>isUserExpired<\/code>.<\/p>\n<p><strong>\u041c\u0435\u0442\u043e\u0434<\/strong> <code>Start<\/code><\/p>\n<p>\u0412\u00a0\u0434\u0430\u043d\u043d\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432\u044b\u0437\u043e\u0432\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437\u00a0\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432. \u041c\u0435\u0442\u043e\u0434\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432\u00a0\u043a\u043b\u0430\u0441\u0441\u0430\u0445 <code>COVIDPickers<\/code> \u0438 <code>MozilSpeed<\/code>. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4e2\/f11\/2ee\/4e2f112ee8a2f77cdcb35796d8c68013.png\" alt=\"\u0424\u0443\u043d\u043a\u0446\u0438\u044f Start\" title=\"\u0424\u0443\u043d\u043a\u0446\u0438\u044f Start\" width=\"389\" height=\"689\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4e2\/f11\/2ee\/4e2f112ee8a2f77cdcb35796d8c68013.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4e2\/f11\/2ee\/4e2f112ee8a2f77cdcb35796d8c68013.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0424\u0443\u043d\u043a\u0446\u0438\u044f Start<\/figcaption><\/div>\n<\/figure>\n<p>\u041c\u0435\u0442\u043e\u0434\u044b Chrome_Speed, Torch_Speed, CocCoc_Speed, QQ_Speed, xVast_Speed, QIPSurf_Speed, Chromium_Speed, Blisk_Speed, Brave_Speed, Nichrome_Speed, Nichrome_Speed, Kometa_Speed, Superbird_Speed, Comodo_Speed, Cent_Speed, Chedot_Speed, Ghost_Speed, Iron_Speed, UC_Speed, BlackHawk_Speed, Citrio_Speed, Uran_Speed, Falkon_Speed, Sputnik_Speed, CoolNovo_Speed, Chrome_Canary_Speed, Sleipnir_Speed, Kinzaa_Speed, Amigo_Speed, Epic_Speed, e360_English_Speed, e360_China_Speed, Vivaldi_Speed, Xpom_Speed, orbitum_Speed, Iridium_Speed, SevinStar_Speed, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043f\u043e\u00a0\u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0442\u043e\u0434\u0430 <code>Chrome_Speed<\/code>.<\/p>\n<p><strong>\u041c\u0435\u0442\u043e\u0434<\/strong> <code>Chrome_Speed<\/code><\/p>\n<p>1) \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0443\u0442\u044c \u043a\u00a0\u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043b\u043e\u0433\u0438\u043d\u043e\u0432 Chrome<br \/>2) \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u043b\u043e\u0433\u0438\u043d\u043e\u0432 Chrome. \u0415\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u043d\u0430\u0439\u0434\u0435\u043d\u00a0\u2014 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430<br \/>3) \u0421\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a SQLite\u2011\u0431\u0430\u0437\u044b (Login Data) \u0438 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 logins<br \/>4) \u041f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u00a0\u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043b\u043e\u0433\u0438\u043d\u043e\u0432 (logins). \u0414\u043b\u044f\u00a0\u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f URL, \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u0432\u00a0\u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435<br \/>5) \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u043e\u0440\u043c\u0430\u0442 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f. \u0415\u0441\u043b\u0438 <code>password_value<\/code> \u0432\u00a0\u0444\u043e\u0440\u043c\u0430\u0442\u0435 V10\u00a0(\u0442\u043e \u0435\u0441\u0442\u044c Chrome 80+), \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f master key \u0438\u0437\u00a0\u043f\u0440\u043e\u0444\u0438\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u043f\u0430\u0440\u043e\u043b\u044f \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u044e\u0447\u0430 \u0432\u00a0\u043c\u0435\u0442\u043e\u0434\u0435 <code>DecryptWithKey<\/code> (\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u043f\u0438\u0441\u0430\u043d \u043d\u0438\u0436\u0435).<br \/>6) \u0415\u0441\u043b\u0438 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u043d\u0435\u00a0\u043f\u0443\u0441\u0442\u044b\u0435, \u0442\u043e \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u00a0URL, \u043b\u043e\u0433\u0438\u043d\u043e\u043c, \u043f\u0430\u0440\u043e\u043b\u0435\u043c \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u00a0<code>UltraSpeed.PasswordVault<\/code>.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ef3\/e04\/501\/ef3e045018561cc091be7044054f5b0e.png\" alt=\"\u041c\u0435\u0442\u043e\u0434 Chrome_Speed\" title=\"\u041c\u0435\u0442\u043e\u0434 Chrome_Speed\" width=\"1127\" height=\"832\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ef3\/e04\/501\/ef3e045018561cc091be7044054f5b0e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ef3\/e04\/501\/ef3e045018561cc091be7044054f5b0e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041c\u0435\u0442\u043e\u0434 Chrome_Speed<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u041c\u0435\u0442\u043e\u0434<\/strong> <code>DecryptWithKey<\/code><\/p>\n<p>1) \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 12\u00a0\u0431\u0430\u0439\u0442 \u0438\u0437\u00a0\u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u044d\u0442\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 (IV)). \u0418\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0442\u0435\u0433 (16\u00a0\u0431\u0430\u0439\u0442).<br \/>2) \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c AES\u2011GCM \u0434\u043b\u044f\u00a0\u0434\u0435\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u00a0\u043a\u043b\u044e\u0447\u043e\u043c (MasterKey), IV \u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0442\u0435\u0433\u043e\u043c.<br \/>3) \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u0435\u0441\u043b\u0438 \u0432\u0441\u0451 \u043f\u0440\u043e\u0448\u043b\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u0438\u043b\u0438\u00a0null \u0432\u00a0\u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043a\u0438.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/125\/c24\/92b\/125c2492bf6412595f274e5a191bec59.png\" alt=\"\u041c\u0435\u0442\u043e\u0434 DecryptWithKey\" title=\"\u041c\u0435\u0442\u043e\u0434 DecryptWithKey\" width=\"869\" height=\"410\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/125\/c24\/92b\/125c2492bf6412595f274e5a191bec59.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/125\/c24\/92b\/125c2492bf6412595f274e5a191bec59.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041c\u0435\u0442\u043e\u0434 DecryptWithKey<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u041c\u0435\u0442\u043e\u0434<\/strong> <code>Microsoft_Speed<\/code><\/p>\n<p>\u041c\u0435\u0442\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a\u00a0\u0436\u0435, \u043d\u043e\u00a0\u0432\u00a0\u043d\u0435\u043c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438:<br \/>1) \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u043a, \u0447\u0442\u043e\u00a0\u043c\u043e\u0436\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u00a0\u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0441\u043a\u0440\u044b\u0442\u044c \u0438\u043b\u0438\u00a0\u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f\u00a0\u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0441\u043a\u0440\u044b\u0442\u0438\u044f \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432\u0438\u0440\u0443\u0441\u0430.<br \/>2) \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0442\u043e\u043a IL, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u044f\u044e\u0442 \u0430\u043d\u0430\u043b\u0438\u0437 \u043a\u043e\u0434\u0430 \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b <\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/345\/84e\/9d4\/34584e9d4f3e5ea6a58a296c2fa54611.png\" alt=\"\u041c\u0435\u0442\u043e\u0434 Microsoft_Speed\" title=\"\u041c\u0435\u0442\u043e\u0434 Microsoft_Speed\" width=\"1076\" height=\"753\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/345\/84e\/9d4\/34584e9d4f3e5ea6a58a296c2fa54611.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/345\/84e\/9d4\/34584e9d4f3e5ea6a58a296c2fa54611.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041c\u0435\u0442\u043e\u0434 Microsoft_Speed<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u041c\u0435\u0442\u043e\u0434<\/strong> <code>Outlook_Speed<\/code><\/p>\n<p>1) \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0443\u0447\u0451\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437\u00a0Outlook \u0432\u00a0\u043c\u0435\u0442\u043e\u0434\u0435 <code>GetOutlookPasswords<\/code>.<br \/>2) \u0412\u043d\u0443\u0442\u0440\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0438\u0441\u043a \u043f\u0443\u0442\u0435\u0439 \u0432\u00a0\u0440\u0435\u0435\u0441\u0442\u0440\u0435 Windows, \u0433\u0434\u0435 Outlook \u043c\u043e\u0436\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u0447\u0451\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439.<br \/>3) \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0438 \u0440\u0435\u0435\u0441\u0442\u0440\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435: email \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0443\u0447\u0435\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (\u043b\u043e\u0433\u0438\u043d\u044b \u0438 \u043f\u0430\u0440\u043e\u043b\u0438) \u0434\u043b\u044f\u00a0\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 IMAP, POP3, SMTP, HTTP<br \/>4) \u0414\u043b\u044f\u00a0\u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f\u00a0\u043b\u0438 \u0432\u00a0\u043d\u0451\u043c \u0445\u043e\u0442\u044f\u00a0\u0431\u044b \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u043e\u043b\u044c<br \/>5) \u041f\u0430\u0440\u043e\u043b\u044c \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442\u0441\u044f \u0438\u0437\u00a0\u043a\u043b\u044e\u0447\u0430 \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u0432\u00a0\u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435<br \/>6) \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u043f\u0430\u0440\u043e\u043b\u044f \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>decryptOutlookPassword()<\/code><br \/>7) \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 email + \u043f\u0430\u0440\u043e\u043b\u044c, \u043e\u043d\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432\u043e\u00a0\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 (UltraSpeed.PasswordVault), \u0432\u00a0\u0442\u0430\u043a\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435:<br \/>============X============<br \/>URL:<br \/>Username:<br \/>Password:<br \/>Application: Outlook<br \/>========================= <\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/249\/fad\/1ad\/249fad1ad02489438caeb4da4dfb98c7.png\" alt=\"\u041c\u0435\u0442\u043e\u0434 Outlook_Speed\" title=\"\u041c\u0435\u0442\u043e\u0434 Outlook_Speed\" width=\"728\" height=\"436\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/249\/fad\/1ad\/249fad1ad02489438caeb4da4dfb98c7.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/249\/fad\/1ad\/249fad1ad02489438caeb4da4dfb98c7.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041c\u0435\u0442\u043e\u0434 Outlook_Speed<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a\u00a0\u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438 \u0432\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0441\u043e\u0431\u0440\u0430\u043d\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <code>SpeedOffPWExport<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0432\u00a0\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u00a0\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u0412\u0441\u0435\u0433\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e 3\u00a0\u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0443\u043a\u0440\u0430\u0434\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445: FTP, SMTP \u0438 Telegram. <\/p>\n<p>\u0412\u0441\u0435 3\u00a0\u043c\u0435\u0442\u043e\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <code>UltraSpeed.TheInfo<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u00a0\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435, \u0442\u0430\u043a\u0443\u044e \u043a\u0430\u043a\u00a0\u0435\u0433\u043e \u0438\u043c\u044f, \u0434\u0430\u0442\u0430, IP\u2011\u0430\u0434\u0440\u0435\u0441 \u0438 \u0441\u0442\u0440\u0430\u043d\u0430. \u0412\u0441\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432\u00a0\u043c\u0435\u0442\u043e\u0434\u0435 <code>SpeedOffPWExport<\/code>.<\/p>\n<p><strong>FTP\u2011\u044d\u043a\u0441\u043f\u043e\u0440\u0442<\/strong><\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0438 <code>#FTPEnabled<\/code>.<br \/>1) \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0435 <code>UltraSpeed.FTP_Domain<\/code>, \u0438\u043c\u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 (MyProject.Computer.Name), \u0441\u0442\u0440\u043e\u043a\u0443 P \u0438 <code>UltraSpeed.Encoder<\/code>, \u0441\u00a0\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c.txt.<br \/>2) \u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f FTP\u2011\u0437\u0430\u043f\u0440\u043e\u0441 \u0441\u00a0\u043c\u0435\u0442\u043e\u0434\u043e\u043c STOR, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f\u00a0\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430\u00a0\u0441\u0435\u0440\u0432\u0435\u0440.<br \/>3) \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0443\u0447\u0435\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f\u00a0\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u00a0FTP\u2011\u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <code>UltraSpeed.FTP_Username<\/code> \u0438 <code>UltraSpeed.FTP_Password<\/code><br \/>4) \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0435 <code>UltraSpeed.TheInfo<\/code> \u0438 <code>UltraSpeed.PasswordVault<\/code><br \/>5) \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u043e\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u0430 FTP, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.<br \/>6) \u0414\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430\u00a0\u0441\u0435\u0440\u0432\u0435\u0440, \u0430\u00a0\u043f\u043e\u0442\u043e\u043a \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/595\/908\/6ea\/5959086ea9818a051aeb7232b6035137.png\" alt=\"FTP\u2011\u044d\u043a\u0441\u043f\u043e\u0440\u0442\" title=\"FTP\u2011\u044d\u043a\u0441\u043f\u043e\u0440\u0442\" width=\"979\" height=\"445\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/595\/908\/6ea\/5959086ea9818a051aeb7232b6035137.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/595\/908\/6ea\/5959086ea9818a051aeb7232b6035137.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>FTP\u2011\u044d\u043a\u0441\u043f\u043e\u0440\u0442<\/figcaption><\/div>\n<\/figure>\n<p><strong>SMTP\u2011\u044d\u043a\u0441\u043f\u043e\u0440\u0442<\/strong><\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 <code>#SMTPEnabled<\/code> \u0412\u00a0\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>UltraSpeed.Text_VenQJDFjPqkSr<\/code> (#AttachmentForced) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f\u00a0\u043b\u0438\u0431\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0431\u0435\u0437\u00a0\u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u00a0\u043b\u0438\u0431\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u00a0\u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c.<br \/>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0431\u0435\u0437\u00a0\u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f:<br \/>1) \u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 <code>MailMessage<\/code><br \/>2) \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c <code>UltraSpeed.Host_Sender<\/code> \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c <code>UltraSpeed.Host_Receiver<\/code> \u0412\u00a0\u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 Host_Sender\u00a0\u2014 <code>rock@supamemo.sbs<\/code>, Host_Receiver\u00a0\u2014 <code>rocee@supamemo.sbs<\/code>.<br \/>3) \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0442\u0435\u043c\u0430 \u043f\u0438\u0441\u044c\u043c\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 IP\u2011\u0430\u0434\u0440\u0435\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u044b<br \/>4) \u0412\u00a0\u0442\u0435\u043b\u043e \u043f\u0438\u0441\u044c\u043c\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f <code>UltraSpeed.TheInfo<\/code> (\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u00a0\u0441\u0438\u0441\u0442\u0435\u043c\u0435) \u0438 <code>UltraSpeed.PasswordVault<\/code> (\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u043e\u043b\u0438)<br \/>5) \u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f SMTP\u2011\u043a\u043b\u0438\u0435\u043d\u0442 \u0441\u00a0\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c <code>UltraSpeed.Host_Server<\/code> (mail.supamemo.sbs)<br \/>6) \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f SSL, \u0435\u0441\u043b\u0438 <code>UltraSpeed.SslSlate<\/code> \u0440\u0430\u0432\u043d\u043e \u00abTrue\u00bb<br \/>7) \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0440\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 <code>UltraSpeed.Host_Port<\/code><br \/>8) \u041f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0443\u0447\u0435\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 <code>UltraSpeed.Host_Sender<\/code>\u0438 <code>UltraSpeed.Host_Password<\/code><br \/>9) \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 <code>SecurityProtocol = 3072<\/code>\u00a0<br \/>10) \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <code>UltraSpeed.CertificateValidation()<\/code>, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0449\u0438\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b.<br \/>11) \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0438\u0441\u044c\u043c\u043e \u0447\u0435\u0440\u0435\u0437 <code>smtpClient.Send(mailMessage)<\/code><\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/155\/eb0\/3dc\/155eb03dc8fa042d80d1311938b44f89.png\" alt=\"SMTP-\u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0431\u0435\u0437 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f\" title=\"SMTP-\u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0431\u0435\u0437 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f\" width=\"872\" height=\"537\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/155\/eb0\/3dc\/155eb03dc8fa042d80d1311938b44f89.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/155\/eb0\/3dc\/155eb03dc8fa042d80d1311938b44f89.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>SMTP\u2011\u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0431\u0435\u0437\u00a0\u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u00a0\u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c<\/strong><\/p>\n<p>1) \u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 <code>MailMessage<\/code><br \/>2) \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c <code>UltraSpeed.Host_Sender<\/code> \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c <code>UltraSpeed.Host_Receiver<\/code>. \u0412\u00a0\u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 Host_Sender\u00a0\u2014 <code>rock@supamemo.sbs<\/code>, Host_Receiver\u00a0\u2014 <code>rocee@supamemo.sbs<\/code><br \/>3) \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0442\u0435\u043c\u0430 \u043f\u0438\u0441\u044c\u043c\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 IP\u2011\u0430\u0434\u0440\u0435\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u044b<br \/>4) \u0412\u00a0\u0442\u0435\u043b\u043e \u043f\u0438\u0441\u044c\u043c\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f <code>UltraSpeed.TheInfo<\/code> (\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u00a0\u0441\u0438\u0441\u0442\u0435\u043c\u0435) \u0438 <code>UltraSpeed.PasswordVault<\/code> (\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u043e\u043b\u0438)<br \/>5) \u0414\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u0434\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432\u00a0Unicode \u0438 Default.<br \/>6) \u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u043e\u043a <code>MemoryStream<\/code>, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.<br \/>7) \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <code>UserData.txt<\/code> \u0441\u00a0MIME\u2011\u0442\u0438\u043f\u043e\u043c \u00abtext\/plain\u00bb.<br \/>8) \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u00a0\u043f\u0438\u0441\u044c\u043c\u043e.<br \/>9) \u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f SMTP\u2011\u043a\u043b\u0438\u0435\u043d\u0442, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0431\u0435\u0437\u00a0\u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<br \/>10) \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432.<br \/>11) \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0438\u0441\u044c\u043c\u043e \u0441\u00a0\u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/57e\/945\/810\/57e945810b416172ea63ec3d774b5b42.png\" alt=\"SMTP-\u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0441 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c\" title=\"SMTP-\u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0441 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c\" width=\"880\" height=\"673\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/57e\/945\/810\/57e945810b416172ea63ec3d774b5b42.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/57e\/945\/810\/57e945810b416172ea63ec3d774b5b42.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>SMTP\u2011\u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0441\u00a0\u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c<\/figcaption><\/div>\n<\/figure>\n<p><strong>Telegram\u00a0\u2014 \u044d\u043a\u0441\u043f\u043e\u0440\u0442<\/strong><\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 <code>#TGEnabled<\/code><br \/>1) \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 <code>UltraSpeed.TheInfo<\/code> \u0438 <code>UltraSpeed.PasswordVault<\/code><br \/>2) \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f <code>Expect100Continue<\/code> \u0434\u043b\u044f\u00a0ServicePointManager<br \/>3) \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 <code>SecurityProtocol = 3072<\/code>\u00a0<br \/>4) \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f URL \u0434\u043b\u044f\u00a0\u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0444\u0430\u0439\u043b\u0430 \u0447\u0435\u0440\u0435\u0437 API Telegram. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>UltraSpeed.TG_Access<\/code> (\u0442\u043e\u043a\u0435\u043d \u0431\u043e\u0442\u0430) \u0438 <code>UltraSpeed.TG_Profileid<\/code> (ID \u0447\u0430\u0442\u0430)<br \/>5) \u0412\u00a0caption \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, IP\u2011\u0430\u0434\u0440\u0435\u0441 \u0438 \u0442\u0435\u043a\u0441\u0442 \u00abPasswords\u00bb.<br \/>6) \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <code>UltraSpeed.TGMultipart<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0444\u0430\u0439\u043b \u00abUserdata.txt\u00bb \u0441\u00a0\u0442\u0438\u043f\u043e\u043c application\/x\u2011ms\u2011dos\u2011executable \u043d\u0430\u00a0Telegram\u2011\u0441\u0435\u0440\u0432\u0435\u0440.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4be\/310\/407\/4be3104079924d4404a19ed16e29eccb.png\" alt=\"Telegram \u2013 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\" title=\"Telegram \u2013 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\" width=\"833\" height=\"493\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4be\/310\/407\/4be3104079924d4404a19ed16e29eccb.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4be\/310\/407\/4be3104079924d4404a19ed16e29eccb.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Telegram\u00a0\u2014 \u044d\u043a\u0441\u043f\u043e\u0440\u0442<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0432\u00a0\u0434\u0430\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0441\u00a0\u0442\u0430\u043a\u0438\u043c\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043a\u0430\u043a\u00a0<code>SpeedClipboard<\/code>, <code>SpeedScreenshot<\/code>, <code>SpeedKeylog<\/code> \u0438\u00a0\u0442.\u00a0\u0434. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u0441\u0435 \u044d\u0442\u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u0443\u0441\u0442\u044b\u0435\u00a0\u2014 \u0432\u0438\u0440\u0443\u0441\u043e\u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u0438\u0445 \u0432\u044b\u0440\u0435\u0437\u0430\u043b (\u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u043f\u0440\u043e\u00a0MaaS).<\/p>\n<h3>\u0418\u0442\u043e\u0433<\/h3>\n<p>\u0421\u0435\u043c\u043f\u043b \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0432\u0435\u0441\u044c\u043c\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u0441 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u2014 \u0432 \u043d\u0451\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0439\u043d\u043e\u0439 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0442\u0430\u043b\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0437 \u0434\u0440\u043e\u043f\u043f\u0435\u0440\u0430, \u043d\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u043c\u0443 \u0440\u0430\u0437\u0431\u043e\u0440\u0443 \u044d\u0442\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0438\u0437\u0443\u0447\u0430\u0435\u0442 \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u043e\u0435 \u041f\u041e, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u043d\u0430 C#. \u041d\u0438\u0436\u0435 \u044f \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0439 \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0412\u041f\u041e \u2014 IoC (Indicators of Compromise) \u0438 \u043e\u0431\u0449\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438.<\/p>\n<h3>IoC<\/h3>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/37b\/183\/1f1\/37b1831f1b1353b5aa7fa359e974c8d8.png\" alt=\"\u0411\u0430\u043d\u043d\u0435\u0440\" title=\"\u0411\u0430\u043d\u043d\u0435\u0440\" width=\"480\" height=\"183\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/37b\/183\/1f1\/37b1831f1b1353b5aa7fa359e974c8d8.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/37b\/183\/1f1\/37b1831f1b1353b5aa7fa359e974c8d8.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0411\u0430\u043d\u043d\u0435\u0440<\/figcaption><\/div>\n<\/figure>\n<p>\u0424\u043e\u0440\u043c\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445:<br \/>============X============<br \/>URL:<br \/>Username:<br \/>Password:<br \/>Application: Outlook<br \/>=========================<\/p>\n<p>\u0421\u0442\u0440\u043e\u043a\u0438: <code>rock@supamemo.sbs<\/code>, <code>W0kz);5}7i_aesKD<\/code>, <code>mail.supamemo.sbs<\/code>, <code>rocee@supamemo.sbs<\/code>, <code>#SMTPEnabled<\/code>, <code>#FTPEnabled<\/code>, <code>#TGEnabled<\/code>, <code>TL.dll<\/code>, <code>Montero.dll<\/code><\/p>\n<h3>\u0421\u0445\u0435\u043c\u0430 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438<\/h3>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bbe\/863\/c86\/bbe863c86d4df3ddf75666e84c2a9c46.png\" alt=\"\u0421\u0445\u0435\u043c\u0430\" title=\"\u0421\u0445\u0435\u043c\u0430\" width=\"715\" height=\"712\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/bbe\/863\/c86\/bbe863c86d4df3ddf75666e84c2a9c46.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bbe\/863\/c86\/bbe863c86d4df3ddf75666e84c2a9c46.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u0445\u0435\u043c\u0430<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/934680\/\"> https:\/\/habr.com\/ru\/articles\/934680\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>Snake Keylogger \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u0442\u0435\u0445 .NET-\u043e\u0431\u0440\u0430\u0437\u0446\u043e\u0432, \u0447\u0442\u043e \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043a\u0430\u0436\u0443\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438, \u043d\u043e \u043d\u0430 \u0434\u0435\u043b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u0412 \u044d\u0442\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0435 \u044f \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e \u0440\u0430\u0437\u0431\u0435\u0440\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438, \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044e\u0442\u0441\u044f \u0441\u043a\u0440\u044b\u0442\u044b\u0435 PE-\u0444\u0430\u0439\u043b\u044b, \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u044e, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0437\u043b\u043e\u0432\u0440\u0435\u0434 \u043f\u043e\u0441\u043b\u0435 \u0438\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c.  <\/p>\n<blockquote>\n<p>\u0412\u0410\u0416\u041d\u041e!<\/p>\n<p>\u0412\u0441\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u043d\u0430\u0434 \u0441\u0435\u043c\u043f\u043b\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432\u00a0\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 \u0441\u00a0\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043e\u043c. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u00a0\u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u0435!<\/p>\n<\/blockquote>\n<h3>\u041f\u043e\u0435\u0445\u0430\u043b\u0438!<\/h3>\n<p>\u041f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b ml.exe \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0435\u0441\u0438\u0442 \u0432\u0441\u0435\u0433\u043e 600\u041a\u0431. \u041e\u0442\u043f\u0440\u0430\u0432\u0438\u043c \u0435\u0433\u043e \u0432\u00a0\u0443\u0442\u0438\u043b\u0438\u0442\u0443 Detect It Easy (DIE) \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u00a0\u0444\u0430\u0439\u043b\u0435 ml.exe<\/figcaption><\/div>\n<\/figure>\n<p>DIE \u0432\u044b\u0434\u0430\u043b \u043d\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438. \u0412\u043e\u00a0\u043f\u0435\u0440\u0432\u044b\u0445: \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u043a\u043e\u0434 \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u0435\u043c\u043f\u043b\u0430 \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d (\u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u044d\u0442\u043e \u043f\u043e\u0437\u0436\u0435). \u0412\u043e\u00a0\u0432\u0442\u043e\u0440\u044b\u0445: DIE \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0430, \u0447\u0442\u043e\u00a0\u0441\u0435\u043a\u0446\u0438\u044f.text \u0437\u0430\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u0430, \u0430\u00a0\u044d\u0442\u043e \u0432\u0430\u0436\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u0442.\u043a. \u0432\u00a0\u0441\u0435\u043a\u0446\u0438\u0438 .text \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0441\u0430\u043c \u043a\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e \u043d\u0435\u00a0\u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u0430\u043a), \u0430\u00a0\u0437\u0430\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043d\u0435\u00a0\u0440\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0444\u0430\u043a\u0442 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0430\u0441\u0447\u0435\u0442\u0430 <em>\u044d\u043d\u0442\u0440\u043e\u043f\u0438\u0438 \u0444\u0430\u0439\u043b\u0430<\/em>.<\/p>\n<blockquote>\n<p><strong>\u042d\u043d\u0442\u0440\u043e\u043f\u0438\u044f \u0444\u0430\u0439\u043b\u0430<\/strong>\u00a0\u2014 \u044d\u0442\u043e \u043c\u0435\u0440\u0430 \u0445\u0430\u043e\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u0438\/\u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u00a0\u0444\u0430\u0439\u043b\u0435. \u0427\u0435\u043c \u0432\u044b\u0448\u0435 \u044d\u043d\u0442\u0440\u043e\u043f\u0438\u044f, \u0442\u0435\u043c \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u0430\u0439\u0442\u043e\u0432. \u0412\u044b\u0441\u043e\u043a\u0430\u044f \u044d\u043d\u0442\u0440\u043e\u043f\u0438\u044f (&gt;7) \u0442\u0440\u0435\u0432\u043e\u0436\u043d\u044b\u0439 \u043f\u0440\u0438\u0437\u043d\u0430\u043a: \u043a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442\u00a0\u0431\u044b\u0442\u044c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d, \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d \u0438\u043b\u0438\u00a0\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d.<\/p>\n<\/blockquote>\n<figure class=\"full-width\">\n<div><figcaption>\u042d\u043d\u0442\u0440\u043e\u043f\u0438\u044f \u0444\u0430\u0439\u043b\u0430 ml.exe<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0430\u043a\u00a0\u0436\u0435 \u043e\u0434\u0438\u043d \u0438\u0437\u00a0\u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0437\u0430\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u0430\u00a0\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u00a0\u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 DLL\u2011\u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u041a\u0430\u043a\u00a0\u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432\u00a0\u0437\u0430\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0430\u044f, \u043f\u043e\u0440\u044f\u0434\u043a\u0430 2\u20133\u00a0\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u00a0\u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043d\u0435\u00a0\u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0\u0441\u0435\u043c\u043f\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430.NET, \u0430\u00a0\u043a\u0430\u043a\u00a0\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435.NET\u2011\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u044e\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438\u043c\u043f\u043e\u0440\u0442\u0430, \u0433\u0434\u0435 \u0447\u0430\u0441\u0442\u043e \u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e mscoree.dll (\u0438\u043d\u043e\u0433\u0434\u0430 \u0435\u0449\u0435 kernel32.dll \u0434\u043b\u044f\u00a0\u0431\u0430\u0437\u043e\u0432\u044b\u0445 WinAPI\u2011\u0432\u044b\u0437\u043e\u0432\u043e\u0432). <\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0418\u043c\u043f\u043e\u0440\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 mscoree.dll<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a? <br \/>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e .NET \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Windows. \u0412\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 DLL (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, user32.dll), .NET-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u043a \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c .NET, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u0415\u0441\u043b\u0438 \u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c P\/Invoke (Platform Invocation Services), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u043c\u0443 \u043a\u043e\u0434\u0443 (\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c\u0443 \u043d\u0430 C#, VB.NET \u0438 \u0434\u0440.) \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 DLL.  <\/p>\n<p>\u0418\u0442\u0430\u043a, \u043c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u00a0\u0444\u0430\u0439\u043b\u0435 \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a\u00a0\u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044e \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u041a\u0430\u043a\u00a0\u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u043e\u0441\u044c, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430.NET \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0434\u0430\u044e\u0442\u0441\u044f \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u0412\u00a0\u0441\u0435\u0442\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432, \u043d\u043e\u00a0\u044f \u0432\u044b\u0431\u0440\u0430\u043b dnSpy, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u0435\u0431\u044f \u0437\u0430\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043b. \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u0440\u0430\u0437\u0435\u0446 \u0432\u00a0dnSpy \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0414\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432\u00a0dnspy<\/figcaption><\/div>\n<\/figure>\n<h3>ml.exe<\/h3>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0432\u0430\u043c\u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041a\u0440\u0430\u0441\u0438\u0432\u043e, \u043f\u0440\u0430\u0432\u0434\u0430? (\u0441\u0430\u0440\u043a\u0430\u0437\u043c)   \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0412\u041f\u041e, \u0434\u0430\u00a0\u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u041f\u041e\u00a0\u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f\u00a0\u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u043e\u0434\u0430. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0432\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430.NET, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0\u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u0434\u043e\u00a0\u043f\u043e\u0447\u0442\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e, \u0430\u00a0\u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043a\u043e\u0434 \u043e\u0442\u00a0\u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0445\u043e\u0447\u0435\u0442\u0441\u044f. \u0418 \u043a\u0430\u043a\u00a0\u0436\u0435 \u043d\u0430\u043c \u0442\u0430\u043a\u043e\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c? \u041d\u0430\u00a0\u043f\u043e\u043c\u043e\u0449\u044c \u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 <strong>\u0434\u0435\u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440\u044b<\/strong>.<\/p>\n<blockquote>\n<p><strong>\u0414\u0435\u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440\u044b<\/strong>\u00a0\u2014 \u044d\u0442\u043e \u043a\u043b\u0430\u0441\u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0434\u043b\u044f\u00a0\u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 (\u0438\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0445) \u0432\u00a0\u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0439 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0432\u0438\u0434.<\/p>\n<\/blockquote>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u0430\u0441\u0441\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u042f \u0440\u0435\u0448\u0438\u043b \u0432\u044b\u0431\u0440\u0430\u0442\u044c de4dot (\u0441\u0441\u044b\u043b\u043a\u0430 \u0432\u00a0\u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438). \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u0441\u0435\u043c\u043f\u043b \u0432\u00a0\u0434\u0435\u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0414\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0440\u0443\u0433\u043e\u0435 \u0434\u0435\u043b\u043e. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434. \u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0438\u043b\u0438 Windows (\u0442\u0435\u043c\u044b \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f). \u0412\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u0437\u043e\u0432 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u00a0\u043b\u0438 \u0434\u043b\u044f\u00a0\u0442\u0435\u043a\u0441\u0442\u0430 \u0432\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0445 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0440\u0443\u044e \u0438\u043b\u0438\u00a0\u043d\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 \u0442\u0435\u043a\u0441\u0442\u0430. \u0410\u00a0\u0432\u043e\u0442 \u0442\u0440\u0435\u0442\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u0443\u0436\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435. \u0417\u0434\u0435\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 <code>SuperAdventure<\/code> \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0432\u00a0\u043c\u0435\u0442\u043e\u0434 <code>Application.Run()<\/code> \u0434\u043b\u044f\u00a0\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0438\u0437\u0443\u0447\u0438\u043c \u044d\u0442\u043e\u0442 \u043a\u043b\u0430\u0441\u0441.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041a\u043b\u0430\u0441\u0441 SuperAdventure<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u043b\u0430\u0441\u0441 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 (\u0431\u043e\u043b\u0435\u0435 1000\u00a0\u0441\u0442\u0440\u043e\u043a), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0432\u044b\u0434\u0435\u043b\u044e \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0434\u043b\u044f\u00a0\u043d\u0430\u0441 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442. <code>this.InitializeComponent()<\/code>\u00a0\u2014 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u043e\u0440\u043c\u044b, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0442\u0430\u043a\u043e\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <code>smethod_62<\/code>\u00a0\u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u043a\u0438\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 componentResourceManager \u0438 \u0435\u0433\u043e \u0438\u043c\u044f \u00abCV\u00bb. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u00a0Bitmap. \u0414\u0430\u043b\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u0430\u0439\u0442\u043e\u0432 \u0441\u00a0\u0438\u043c\u0435\u043d\u0435\u043c list. \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <code>ArtifactScanning<\/code> \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f bitmap, list \u0438 \u043d\u0435\u043a\u043e\u0435 \u0447\u0438\u0441\u043b\u043e 68\u00a0608.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041c\u0435\u0442\u043e\u0434 ArtifactScanning<\/figcaption><\/div>\n<\/figure>\n<p>\u0411\u0438\u043d\u0433\u043e! \u0417\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: <br \/>1) \u041f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u00a0\u0438\u043c\u0435\u043d\u0435\u043c CV. \u042d\u0442\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430.<br \/>2) \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0431\u0430\u0439\u0442\u044b \u0437\u0430\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0432\u00a0\u0441\u043f\u0438\u0441\u043e\u043a treasureData (list) \u043f\u043e\u043a\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0435\u00a0\u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0435\u0442 68\u00a0608\u00a0\u0431\u0430\u0439\u0442 (\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u0432\u00a0<code>ArtifactScanning<\/code>)<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 CV<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u00a0\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a list \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c 68\u00a0608\u00a0\u0431\u0430\u0439\u0442. \u0427\u0442\u043e\u00a0\u0436\u0435 \u044d\u0442\u043e \u0437\u0430\u00a0\u0441\u043f\u0438\u0441\u043e\u043a?<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a list<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0435\u0440\u0432\u044b\u0435 2\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u044d\u0442\u043e \u0431\u0430\u0439\u0442\u044b 4D 5A. \u041f\u043e\u043d\u044f\u043b\u0438, \u0434\u0430?) \u0412\u00a0\u044d\u0442\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b. \u0427\u0442\u043e\u0431\u044b \u0432\u00a0\u044d\u0442\u043e\u043c \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u00a0\u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u00a0\u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<figure class=\"\">\n<div><figcaption>\u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u00a0\u043f\u0430\u043c\u044f\u0442\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0438\u0434\u0438\u043c \u0432\u0441\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0439 DOS\u2011header \u0438 \u0438\u043c\u0435\u043d\u0430 \u0441\u0435\u043a\u0446\u0438\u0439. \u041e\u0442\u0441\u044e\u0434\u0430 \u044f \u0434\u0435\u043b\u0430\u044e \u0432\u044b\u0432\u043e\u0434 \u0447\u0442\u043e\u00a0\u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u043c\u043f\u043b ml.exe \u044d\u0442\u043e \u0434\u0440\u043e\u043f\u043f\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0435\u0451. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u0442\u043e\u043c \u0432\u00a0\u043a\u043b\u0430\u0441\u0441\u0435 <code>SuperAdventure<\/code> \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u044b\u0437\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u0430 \u0438\u0437\u00a0\u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430. <\/p>\n<figure class=\"full-width\"><\/figure>\n<p><code>SuperAdventure.smethod_1(methodInfo, null, \"Invoke\", new object[] { 0, array }, null, null);<\/code><\/p>\n<p>\u0433\u0434\u0435 methodInfo\u00a0\u2014 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u00a0\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0430. \u0418\u043c\u044f \u043c\u0435\u0442\u043e\u0434\u0430\u00a0\u2014 Justy, array\u00a0\u2014 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0432\u00a0\u043c\u0435\u0442\u043e\u0434 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0441\u0442\u0440\u043e\u043a\u0438: \u00ab64\u00a0444A56\u00bb, \u00ab727\u00a0163\u00bb, \u00abSuperAdventure\u00bb.<\/p>\n<p>\u041a\u0430\u043a\u00a0\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0430\u043c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<p>1) \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>smethod_1<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043e\u0431\u0451\u0440\u0442\u043a\u043e\u0439 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0432\u044b\u0437\u043e\u0432 \u0432\u00a0<code>LateBinding.LateCall<\/code>.<br \/>2) LateCall \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <code>InternalLateCall<\/code>, \u0433\u0434\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0432\u044b\u0431\u043e\u0440\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0432\u044b\u0437\u043e\u0432\u0430.<br \/>3) \u0412\u00a0<code>InternalLateCall<\/code> \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u0432\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>InvokeMember<\/code>\u00a0\u2014 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 \u00abInvoke\u00bb \u0443\u00a0\u043e\u0431\u044a\u0435\u043a\u0442\u0430 MethodInfo.<br \/>4) InvokeMember \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <code>MethodInfo.Invoke<\/code>, \u0442\u043e \u0435\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 Justy \u0441\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438.<\/p>\n<p>\u0421\u0445\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"\">\n<div><figcaption>\u0421\u0445\u0435\u043c\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 Justy<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 \u043c\u0430\u0442\u0440\u0451\u0448\u043a\u0430, \u0446\u0435\u043b\u044c \u043a\u043e\u0442\u043e\u0440\u043e\u0439\u00a0\u2014 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0438\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437 \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 Justy \u0438\u0437\u00a0\u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0434\u0430\u043c\u043f \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0432\u00a0\u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043e\u0434 \u043d\u0430\u00a0python:<\/p>\n<pre><code>import ctypes  PROCESS_VM_READ = 0x0010 PROCESS_QUERY_INFORMATION = 0x0400  pid = 1234  # PID \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 base_address = 0x040A946C  # \u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 (4D) size = 0x0005B000 # \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430\/\u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0431\u0430\u0439\u0442  OpenProcess = ctypes.windll.kernel32.OpenProcess ReadProcessMemory = ctypes.windll.kernel32.ReadProcessMemory CloseHandle = ctypes.windll.kernel32.CloseHandle  process_handle = OpenProcess(PROCESS_VM_READ | PROCESS_QUERY_INFORMATION, False, pid) if not process_handle:   raise OSError(f\"[-] \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441 PID {pid}.\")  buffer = ctypes.create_string_buffer(size) bytes_read = ctypes.c_size_t()  success = ReadProcessMemory(   process_handle,   ctypes.c_void_p(base_address),   buffer,   size,   ctypes.byref(bytes_read)  )  if not success:   CloseHandle(process_handle)   raise OSError(\"[-] ReadProcessMemory \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c.\")  with open(\"payload_dump\", \"wb\") as f:   f.write(buffer.raw)  CloseHandle(process_handle) print(f\"[+] \u0423\u0441\u043f\u0435\u0448\u043d\u043e \u0434\u0430\u043c\u043f\u043d\u0443\u0442\u043e {bytes_read.value} \u0431\u0430\u0439\u0442 \u0432 \u0444\u0430\u0439\u043b\")<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0430\u043c\u043f payload_dump. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u0442\u0430\u043a\u00a0\u0436\u0435 \u0432\u00a0dnspy \u0438 \u0432\u0438\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>TL.dll<\/figcaption><\/div>\n<\/figure>\n<h3>TL.dll<\/h3>\n<div class=\"floating-image\">\n<p>DnSpy \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0430 \u0435\u0433\u043e \u043a\u0430\u043a\u00a0\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 TL.dll, \u043f\u0440\u0438\u0447\u0435\u043c \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e. \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0451 \u0432\u00a0de4dot \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0439 \u043a\u043e\u0434. \u041d\u0430\u043f\u043e\u043c\u043d\u044e \u0447\u0442\u043e\u00a0\u0432\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u00a0\u043c\u0435\u0442\u043e\u0434 Justy \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f 3\u00a0\u0441\u0442\u0440\u043e\u043a\u0438: \u00ab64\u00a0444A56\u00bb, \u00ab727\u00a0163\u00bb \u0438 \u00abSuperAdventure\u00bb. <\/p>\n<\/div>\n<figure class=\"full-width\">\n<div><figcaption>\u0414\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f TL.dll<\/figcaption><\/div>\n<\/figure>\n<p>\u0418\u0442\u0430\u043a, \u043c\u0435\u0442\u043e\u0434 Justy:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>Justy<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0438\u0434\u0438\u043c \u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u043d\u043e\u00a0\u043a\u0430\u043a\u00a0\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0437\u00a0\u043d\u0438\u0445\u00a0\u043b\u0438\u0431\u043e \u043f\u0443\u0441\u0442\u044b\u0435\u00a0\u043b\u0438\u0431\u043e \u043d\u0435\u00a0\u0438\u043c\u0435\u044e\u0442 \u0441\u043c\u044b\u0441\u043b\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>smethod_9<\/code>\u00a0\u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e 2\u00a0\u0446\u0438\u043a\u043b\u0430 for, \u0430\u00a0<code>smethod_10<\/code>\u00a0\u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0443\u0441\u0442\u043e\u0439.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0411\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0439 smethod_9<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\">\n<div><figcaption>\u041f\u0443\u0441\u0442\u043e\u0439 smethod_10<\/figcaption><\/div>\n<\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b\u00a0\u043b\u0438\u0448\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043d\u0430\u043c \u043d\u0435\u00a0\u043c\u0435\u0448\u0430\u043b\u0438 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0434\u0430\u043b\u0438\u043b \u0438\u0445. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041e\u0447\u0438\u0449\u0435\u043d\u043d\u044b\u0439 Justy<\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u0440\u0430\u0437\u0443 \u0441\u043a\u0430\u0436\u0443 \u0447\u0442\u043e\u00a0\u0432\u0441\u0435 smethod_* \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e\u00a0\u043b\u0438\u0448\u044c \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 smethod_1\u00a0\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 <code>CausalitySource<\/code>. \u0414\u0430\u043b\u0435\u0435 \u044f \u0441\u0440\u0430\u0437\u0443 \u0431\u0443\u0434\u0443 \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430. \u041f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u0435\u043b\u0430\u044e\u0442 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e\u00a0\u0436\u0435: \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u043c\u0435\u0442\u043e\u0434 CausalitySource \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0430\u00a0\u0432\u0445\u043e\u0434 \u043d\u0430\u0431\u043e\u0440 \u0431\u0430\u0439\u0442, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0435\u0433\u043e \u0432\u00a0\u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0451.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>CausalitySource<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0432\u00a0\u043c\u0435\u0442\u043e\u0434\u0435 Justy \u0438\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u00a0\u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u044b\u0437\u043e\u0432\u0430\u043c\u0438. \u0418\u0437\u0443\u0447\u0430\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u043e (\u0438\u043c\u0435\u043d\u043d\u043e \u0432\u00a0\u0442\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043e\u043d\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f).<\/p>\n<figure class=\"full-width\">\n<div><figcaption>LowestBreakIteration<\/figcaption><\/div>\n<\/figure>\n<p>\u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430: \u0441\u0442\u0440\u043e\u043a\u0443, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 <code>CausalitySource<\/code>, \u0438 \u0441\u0442\u0440\u043e\u043a\u0443, \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u0443\u044e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 <code>Justy<\/code><\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 <code>Assembly.GetEntryAssembly()<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0445\u043e\u0434\u043d\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u0444\u0430\u0439\u043b, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e <code>ml.exe<\/code>. \u0414\u0430\u043b\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 <code>ResourceManager<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u044d\u0442\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438. \u041f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u2014 \u044d\u0442\u043e \u0438\u043c\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u0430 (\u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0438\u0437 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d \u0438 \u0438\u043c\u0435\u043d\u0438 \u043a\u043b\u0430\u0441\u0441\u0430), \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 \u0438\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438. <\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <code>GetObject(x10)<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u0437 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043f\u043e \u0438\u043c\u0435\u043d\u0438, \u0445\u0440\u0430\u043d\u044f\u0449\u0435\u043c\u0443\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>x10<\/code>. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0442\u0438\u043f\u0443 <code>Bitmap<\/code>, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u0437\u0432\u043b\u0435\u0447\u0451\u043d\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435.  <\/p>\n<figure class=\"\">\n<div><figcaption>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 dDJV<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u043c\u0435\u0442\u043e\u0434\u0443 <code>smethod_4(Bitmap bitmap_0)<\/code><\/p>\n<figure class=\"full-width\">\n<div><figcaption>smethod_4<\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f <code>RestoreOriginalBitmap(bitmap_0, 150, 150)<\/code>\u00a0\u2014 \u043c\u0435\u0442\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0435\u0440\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u043d\u0430\u00a0\u043f\u0440\u043e\u0448\u043b\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0440\u0435\u0441\u0443\u0440\u0441, \u043e\u0431\u0440\u0435\u0437\u0430\u0435\u0442 \u0435\u0433\u043e \u043f\u043e\u00a0\u0434\u043b\u0438\u043d\u0435 \u0438 \u0448\u0438\u0440\u0438\u043d\u0435 \u043d\u0430 150\u00a0\u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043d\u0430\u043c \u043e\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e\u00a0\u043d\u0438\u0436\u043d\u0438\u0435 150\u00a0\u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439\u00a0\u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0434\u043b\u044f\u00a0\u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u0438\u043b\u0438\u00a0\u043a\u0430\u043a\u00a0\u0448\u0443\u043c\/\u043f\u0430\u0434\u0434\u0438\u043d\u0433. <\/p>\n<figure class=\"full-width\">\n<div><figcaption>RestoreOriginalBitmap<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u00a0\u0432\u0445\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0443 <code>smethod_13(Bitmap bitmap_0)<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u00a0\u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043f\u0438\u043a\u0441\u0435\u043b\u044e, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0435\u0433\u043e \u0432 4\u00a0\u0431\u0430\u0439\u0442\u0430 ARGB(int32) \u0438 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u043e\u0434\u0438\u043d \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 byte[]. \u0414\u0430\u043b\u0435\u0435 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0435 4\u00a0\u0431\u0430\u0439\u0442\u0430 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432\u00a0int. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e\u00a0\u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 5\u00a0\u0431\u0430\u0439\u0442\u0430 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f N \u0431\u0430\u0439\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430. \u041e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430\u00a0\u0442\u043e, \u0447\u0442\u043e\u00a0\u0431\u044b\u043b\u043e \u043f\u0440\u0438\u00a0\u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0438 TL.dll.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>smethod_13<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430\u00a0\u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043c\u0435\u0442\u043e\u0434 <code>smethod_5(byte[] byte_0,<\/code><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\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-469834","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/469834","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=469834"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/469834\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=469834"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=469834"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=469834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}