{"id":218887,"date":"2014-04-10T12:18:02","date_gmt":"2014-04-10T08:18:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=218887"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=218887","title":{"rendered":"<span class=\"post_title\">\u0410\u043d\u0430\u043b\u0438\u0437 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043e\u0439<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0437\u0430\u0449\u0438\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \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\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u00ab\u0442\u0440\u044e\u043a\u043e\u0432\u00bb \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a: \u0441\u0431\u0440\u043e\u0441 \u0442\u043e\u0447\u043a\u0438 \u0432\u0445\u043e\u0434\u0430 \u0432 \u043d\u043e\u043b\u044c, \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043b\u0430 \u0444\u0430\u0439\u043b\u0430 \u0438 \u0434\u0435\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u043d\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u043c \u043f\u043e\u043b\u0438\u043c\u043e\u0440\u0444\u043e\u043c, \u0441\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u043b\u043e\u0433\u0438\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u0442\u0435\u043b\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b.<\/p>\n<p>  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u044f\u0436\u0435\u043b\u0430\u044f \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430, \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u043e\u0439 \u0437\u0430\u0449\u0438\u0442\u044b \u041f\u041e, \u043d\u043e \u0442\u0443\u0442 \u0443\u0436 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u0434\u0435\u043b\u0430\u0442\u044c.<\/p>\n<p>  \u0414\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0438\u043b\u0438 \u043c\u0435\u043d\u0435\u0435 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 (\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e) \u0430 \u0442\u0430\u043a-\u0436\u0435 \u043d\u0430\u0432\u044b\u043a\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u043e\u043c.<\/p>\n<p>  \u041d\u043e \u0438 \u0442\u0435\u043c, \u043a\u0442\u043e \u043d\u0430\u0434\u0435\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0443\u0442 \u0434\u0430\u043d\u044b \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0448\u0430\u0433\u0438 \u043f\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0437\u0430\u0449\u0438\u0442\u044b, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b, \u043d\u043e\u2026 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u0432\u0437\u043b\u043e\u043c\u0430 \u0438 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0440\u0435\u0432\u0435\u0440\u0441\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430.<\/p>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0446\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u0441\u0442\u0430\u0432\u0438\u043b \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0431\u043e\u0439, \u044d\u0442\u043e \u0434\u0430\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u043a\u0430\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a\u0430\u044f \u0437\u0430\u0449\u0438\u0442\u0430 \u041f\u041e, \u043d\u043e \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u043a\u0430\u043a \u043a \u044d\u0442\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442\u044c \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u0430\u0448\u0443 \u0437\u0430\u0449\u0438\u0442\u0443, \u0438\u0431\u043e \u0435\u0441\u0442\u044c \u0441\u0442\u0430\u0440\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u2014 \u043d\u0435\u043b\u044c\u0437\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u044f\u0434\u0440\u0430 \u0437\u0430\u0449\u0438\u0442\u044b, \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0441\u0435\u0431\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0435\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0432\u0437\u043b\u043e\u043c\u0430.<\/p>\n<p>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0446\u0438\u043f\u0438\u0435\u043d\u0442\u0430, \u043f\u043e \u0441\u043e\u0432\u0435\u0442\u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0430, \u044f \u0432\u044b\u0431\u0440\u0430\u043b \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u0441\u0442\u0430\u0440\u044b\u0439 (\u043d\u043e \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u0432\u0448\u0438\u0439 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0432 \u0441\u0438\u043b\u0443 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f) keygenme \u043e\u0442 \u043d\u0435\u0431\u0435\u0437\u044b\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e Ms-Rem.<\/p>\n<p>  \u0412\u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430, \u0433\u0434\u0435 \u043e\u043d \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f: <a href=\"http:\/\/exelab.ru\/f\/index.php?action=vthread&amp;forum=1&amp;topic=4732\">http:\/\/exelab.ru\/f\/index.php?action=vthread&#038;forum=1&#038;topic=4732<\/a><br \/>  \u0410 \u043f\u043e\u0442\u043e\u043c \u043e\u043d \u043f\u043e\u043f\u0430\u043b \u0432\u043e\u0442 \u0441\u044e\u0434\u0430: <a href=\"http:\/\/www.crackmes.de\/users\/ms_rem\/keygenme_by_ms_rem\/\">http:\/\/www.crackmes.de\/users\/ms_rem\/keygenme_by_ms_rem\/<\/a><br \/>  \u0413\u0434\u0435 \u0434\u0430\u043d\u043d\u043e\u043c\u0443 keygenme \u0431\u044b\u043b \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c 8 \u0438\u0437 10 (*VERY VERY* hard).<br \/>  \u0425\u043e\u0442\u044f, \u0435\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u044d\u0442\u043e \u0441\u043b\u0435\u0433\u043a\u0430 \u0437\u0430\u0432\u044b\u0448\u0435\u043d\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u2014 \u044f \u0431\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0432 \u0440\u0430\u0439\u043e\u043d\u0435 5-6 \u0431\u0430\u043b\u043b\u043e\u0432.<\/p>\n<p>  \u041f\u043e\u0436\u0430\u043b\u0443\u0439, \u043d\u0430\u0447\u043d\u0435\u043c.<\/p>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<h4>0. \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f<\/h4>\n<p>  \u041f\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u043c\u0443, \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e keygenme, \u0441\u0430\u043c\u044b\u043c \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 Windows XP 32 \u0431\u0438\u0442\u0430, \u043e\u043d\u0430 \u0432\u043e\u043e\u0431\u0449\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u0430 \u0443 \u043c\u0435\u043d\u044f \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0432 \u0432\u0438\u0434\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0438.<\/p>\n<p>  \u041f\u043e\u0434 Windows 7 \u2014 32 \u0431\u0438\u0442\u0430 (\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438) \u0431\u0443\u0434\u0443\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0435\u043d\u0438\u044f, \u043d\u043e \u043e\u043d\u0438 \u0440\u0435\u0448\u0430\u0435\u043c\u044b\u0435 (\u043e\u0431 \u044d\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u0432 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043e\u0439 \u0433\u043b\u0430\u0432\u0435 \u0441\u0442\u0430\u0442\u044c\u0438).<\/p>\n<p>  \u041d\u0430 64 \u0431\u0438\u0442\u043d\u044b\u0445 OC \u043d\u0430\u0447\u043d\u0443\u0442\u0441\u044f \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0435 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438 \u0432\u0432\u0438\u0434\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 (OllyDebug) \u043f\u0440\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 \u0434\u0430\u043d\u043d\u043e\u0433\u043e Keygenme \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0435\u0449\u0435 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430. \u042d\u0442\u0438\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u044b\u043f\u0430\u0442\u044c OllyDebug \u0432\u0435\u0440\u0441\u0438\u0438 2, \u043d\u043e \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0435\u043d\u0438\u0435, \u0434\u043b\u044f \u043d\u0435\u0435 \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 (\u0430 \u043c\u043e\u0436\u0435\u0442 \u044f \u043f\u043b\u043e\u0445\u043e \u0438\u0441\u043a\u0430\u043b).<\/p>\n<p>  \u0421\u0430\u043c keygenme \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u043e \u044d\u0442\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435: <a href=\"http:\/\/exelab.ru\/f\/files\/3635_03.05.2006_CRACKLAB.rU.tgz\">http:\/\/exelab.ru\/f\/files\/3635_03.05.2006_CRACKLAB.rU.tgz<\/a> (\u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f).<\/p>\n<p>  \u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u0441\u0442\u0430\u0442\u044c\u0438, \u0435\u0441\u043b\u0438 \u0432\u044b \u0440\u0435\u0448\u0438\u0442\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u0432\u0441\u0435 \u0448\u0430\u0433\u0438, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u043d\u0435\u0439, \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<br \/>  \u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e \u043d\u0438\u0445, \u0432\u0441\u0435 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0444\u0430\u0439\u043b\u0435 \u00abused_tools.txt\u00bb, \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u043d\u043e\u043c \u0432 \u043a\u043e\u0440\u043d\u0435 \u0430\u0440\u0445\u0438\u0432\u0430 \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u043a \u0441\u0442\u0430\u0442\u044c\u0435: <a href=\"http:\/\/rouse.drkb.ru\/blog\/vm_analize.zip\">http:\/\/rouse.drkb.ru\/blog\/vm_analize.zip<\/a><\/p>\n<p>  \u0415\u0449\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u043f\u0430\u0440\u0443 \u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u043f\u043e \u0441\u0430\u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u00abMs-Rem\u00bb \u0438 \u00abC38FB7A0CF38F73B1159\u00bb. \u042d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 keygenme.<\/p>\n<p>  \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u2014 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \ud83d\ude42<\/p>\n<h4>1. \u041f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437<\/h4>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0442\u043e\u0438\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f, \u0441 \u0447\u0435\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e.<br \/>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c PEiD \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0432 \u043d\u0435\u043c keygenme.exe.<br \/>  \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0441\u0430\u043c\u0443\u044e \u043f\u0440\u0430\u0432\u0443\u044e \u043d\u0438\u0436\u043d\u044e\u044e \u043a\u043d\u043e\u043f\u043a\u0443 \u0438 \u0432 \u043c\u0435\u043d\u044e \u0432\u044b\u0431\u0435\u0440\u0435\u043c \u0442\u0438\u043f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u00abHardcore Scan\u00bb.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/fbb\/a1c\/51f\/fbba1c51f0d6f68e2cba2585adb9880f.png\"\/><\/div>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0441\u0442\u0438, \u0432\u043e \u043f\u0435\u0440\u0432\u044b\u0445 \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430 \u00abEntrypoint\u00bb \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0432 \u043d\u043e\u043b\u044c, \u0447\u0442\u043e \u0432 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0431\u044b\u0442\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442, \u0432\u043e \u0432\u0442\u043e\u0440\u044b\u0445 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e \u0447\u0442\u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u00abUPolyX v0.5 *\u00bb.<br \/>  \u0412\u0442\u043e\u0440\u043e\u0435 \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u0435 \u0441\u0442\u0440\u0430\u0448\u043d\u043e \u2014 \u0432\u043e\u0442 \u0431\u044b\u043b\u043e \u0431\u044b \u0442\u0430\u043c \u0447\u0442\u043e-\u0442\u043e \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435 \u00abEXECryptor\u00bb \u0438\u043b\u0438 \u00abThemida\u00bb \u2014 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0438\u0437 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0442\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0442\u043e\u0433\u0434\u0430 \u0434\u0430, \u0430 \u0442\u0443\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0438\u0434\u0438\u043c\u043e \u043d\u0430\u0448\u043b\u0430\u0441\u044c \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430.<\/p>\n<p>  \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0432\u0442\u043e\u0440\u0443\u044e \u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0438\u0436\u043d\u044e\u044e \u043a\u043d\u043e\u043f\u043a\u0443 \u0438 \u0432 \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u043c\u0441\u044f \u0434\u0438\u0430\u043b\u043e\u0433\u0435 \u0442\u0440\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u0441\u043f\u0440\u0430\u0432\u0430.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/18a\/8ba\/4bc\/18a8ba4bc6b87c30436744765ed1913f.png\"\/><\/div>\n<p>  \u0413\u043e\u0432\u043e\u0440\u0438\u0442 \u0447\u0442\u043e \u0444\u0430\u0439\u043b \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d \u0438 \u044d\u043d\u0442\u0440\u043e\u043f\u0438\u044f \u0430\u0436 7.56.<br \/>  \u041d\u0443 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0445\u043e\u0442\u044f \u044d\u0442\u043e \u0435\u0449\u0435 \u043d\u0438 \u043e \u0447\u0435\u043c \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442. \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u044d\u043d\u0442\u0440\u043e\u043f\u0438\u044f \u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u0437\u0430\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445, \u043d\u043e \u0438 \u0443 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<p>  \u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0434\u0438\u0430\u043b\u043e\u0433 \u0438 \u0449\u0435\u043b\u043a\u0430\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u0441\u043f\u0440\u0430\u0432\u0430 \u043e\u0442 \u00abSubsystem:\u00bb<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/9d9\/e8f\/021\/9d9e8f021eb6c55971c86062ab5e9648.png\"\/><\/div>\n<p>  \u041f\u043e\u043c\u0438\u043c\u043e \u0442\u043e\u0447\u043a\u0438 \u0432\u0445\u043e\u0434\u0430 \u0443\u0431\u0438\u0442\u044b \u0431\u0430\u0437\u044b \u043a\u043e\u0434\u0430 \u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0431\u0430\u0437\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f 4000000.<br \/>  \u041d\u0443 \u0447\u0442\u043e \u0436\u0435, \u043b\u0430\u0434\u043d\u043e \u2014 \u043d\u0430 \u0440\u0443\u043a\u0430\u0445 \u0443 \u043d\u0430\u0441 \u0444\u0430\u0439\u043b \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u0440\u0443\u0447\u043a\u0430\u043c\u0438.<br \/>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u0449\u0443\u043f\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0435.<\/p>\n<h4>2. \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u0438 Entrypoint = 0<\/h4>\n<p>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c OllyDebug, \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043c\u0435\u043d\u044e \u00abOptions\u00bb, \u0442\u0430\u043c \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u00abDebugging options\u00bb \u0438 \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u00abEvents\u00bb \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0433\u0430\u043b\u043a\u0443 \u00abMake first pause at: -&gt; System breakpoint\u00bb.<br \/>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u043c \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0434\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u0442\u0435\u043b\u043e \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<br \/>  \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0438\u0437-\u0437\u0430 \u0441\u043a\u0438\u043d\u0443\u0442\u043e\u0439 \u0432 \u043d\u043e\u043b\u044c \u0442\u043e\u0447\u043a\u0438 \u0432\u0445\u043e\u0434\u0430.<\/p>\n<p>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0430\u043c keygenme.exe \u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u0433\u0434\u0435-\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 ntdll.dll<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/196\/13b\/ed6\/19613bed6628439ab7f6e3f8ac98d6e2.png\"\/><\/div>\n<p>  \u0427\u0442\u043e \u0435\u0441\u0442\u044c \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430 (\u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f) \u2014 \u044d\u0442\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 \u0435\u0433\u043e \u0431\u0430\u0437\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 (hInstance), \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430.<br \/>  \u0411\u0430\u0437\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432 \u0441\u0435\u0431\u0435 PE \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u0433\u0434\u0435 \u0441\u0430\u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0434\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 _IMAGE_DOS_HEADER.<\/p>\n<p>  \u0422.\u043a. \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430 \u0443 keygenme \u0440\u0430\u0432\u043d\u0430 \u043d\u0443\u043b\u044e, \u0437\u043d\u0430\u0447\u0438\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043e \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430 \u0435\u0433\u043e hInstance.<\/p>\n<p>  \u0417\u043d\u0430\u044f \u044d\u0442\u043e, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u0442\u0430\u043c \u0443 \u043d\u0430\u0441 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f.<br \/>  \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u00abCtrl+G\u00bb \u0438 \u0432\u0431\u0438\u0432\u0430\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u0431\u0430\u0437\u044b \u00ab400000\u00bb, \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/cad\/2b9\/91e\/cad2b991e0ee8ada5b573df785e25a9f.png\"\/><\/div>\n<p>  \u0412\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u043d\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043d\u0430 \u043c\u0435\u0441\u0442\u0435, \u0438\u043d\u0430\u0447\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u043e\u0441\u044c \u0431\u044b, \u0437\u043d\u0430\u0447\u0438\u0442 \u0431\u044b\u043b\u0438 \u0432\u043d\u0435\u0441\u0435\u043d\u044b \u043f\u0440\u0430\u0432\u043a\u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 _IMAGE_DOS_HEADER.<\/p>\n<p>  \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u043e\u0441\u044c:<\/p>\n<pre><code class=\"delphi\">_IMAGE_DOS_HEADER = record             { DOS .EXE header                  }     e_magic: Word;                     { Magic number                     }     e_cblp: Word;                      { Bytes on last page of file       }     e_cp: Word;                        { Pages in file                    }     e_crlc: Word;                      { Relocations                      }     e_cparhdr: Word;                   { Size of header in paragraphs     }     e_minalloc: Word;                  { Minimum extra paragraphs needed  } <\/code><\/pre>\n<p>  \u041f\u043e\u043b\u0435 e_magic \u2014 \u0435\u0433\u043e \u0442\u0440\u043e\u0433\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f \u0438 \u043e\u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u044b \u041c\u0430\u0440\u043a\u0430 \u0417\u0431\u0438\u043a\u043e\u0432\u0441\u043a\u0438 &#8216;MZ&#8217; (0x4D, 0x5A).<br \/>  \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u043d\u043e \u0438 \u043d\u0435 \u0442\u0440\u043e\u043d\u0443\u0442\u043e, \u0430 \u043e\u0431\u0430 \u044d\u0442\u0438\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0442\u0440\u0430\u043a\u0442\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"delphi\">DEC EBP  \/\/ \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0441\u0442\u0435\u043a\u043e\u0432\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0430 POP EDX  \/\/ \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043e \u0441\u0442\u0435\u043a\u0430 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 EDX <\/code><\/pre>\n<p>  \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u043b\u044f e_cblp \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e \u043d\u0430 0x45, 0x52, \u0447\u0442\u043e \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043e\u0442\u043c\u0435\u043d\u044f\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0432\u044b\u043c\u0438 \u0434\u0432\u0443\u043c\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0442\u0435\u043a\u0430.<\/p>\n<p>  \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 4 \u043f\u043e\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434 MOV + JMP.<br \/>  \u0412\u043e\u0442 \u043d\u0430 \u044d\u0442\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u044d\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/d9a\/f6c\/ef4\/d9af6cef42ef8985d8fb3d5ee9f0eb3c.png\"\/><\/div>\n<p>  \u0412\u0435\u0441\u044c \u0441\u043c\u044b\u0441\u043b \u0442\u0430\u043a\u0438\u0445 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u0441 _IMAGE_DOS_HEADER \u0438 \u0441\u0431\u0440\u043e\u0448\u0435\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0432\u0445\u043e\u0434\u0430, \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0443\u0434\u0430-\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u044c \u0442\u0435\u043b\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 4053B6.<\/p>\n<p>  \u0422.\u0435. \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u0436\u0435 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044c keygenme.exe \u0438 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u043f\u043e\u043b\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u043e\u0447\u043a\u0438 \u0432\u0445\u043e\u0434\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u044c 53B6 (\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044f \u043f\u0440\u0430\u0432\u043a\u0438 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u0444\u0430\u0439\u043b\u0430), \u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u043b\u0438 \u044d\u0442\u043e \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430?<\/p>\n<h4>3. \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c \u043a\u043e\u0434 \u0434\u0435\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430 \u0442\u0435\u043b\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u0418\u0434\u0435\u043c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u00abCtrl+G\u00bb 4056B6 \u0438 \u0442\u0430\u043c \u0432\u0438\u0434\u0438\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0435:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/a62\/9c9\/d13\/a629c9d133062f073057d2fb385f3cc8.png\"\/><\/div>\n<p>  \u0412\u043e\u043e\u0431\u0449\u0435 \u0441\u043f\u043b\u043e\u0448\u043d\u043e\u0439 \u043c\u0443\u0441\u043e\u0440. \u0427\u0442\u043e \u043d\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0430, \u0442\u043e \u043c\u0443\u0441\u043e\u0440\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f.<br \/>  \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0432\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 (JG\/JPE\/JCXZ\/JE) \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u044b\u043c \u043c\u0443\u0441\u043e\u0440\u043e\u043c, \u0442.\u043a. \u043d\u0435 \u0432\u0430\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f \u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0438\u043b\u0438 \u043d\u0435\u0442, \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u0435\u043d \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0440\u043e\u0447\u043a\u0443 (\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0440\u044b\u0436\u043a\u043e\u0432).<br \/>  \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 LEA, MOV, XCNG \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u043e\u0434\u043d\u0438\u043c \u0438 \u0442\u0435\u043c-\u0436\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u043c \u043d\u0435 \u0432\u043d\u043e\u0441\u044f \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u2014 \u043c\u0443\u0441\u043e\u0440.<br \/>  \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u0430\u0442\u0441\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c (FCLEX\/FFREE) \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f (\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442, \u0442.\u043a. \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043c\u0430\u0442\u0441\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c \u0435\u0449\u0435 \u043d\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0430\u0441\u044c) \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u044e\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b (\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u043d\u0435 \u0437\u0430\u043d\u044f\u0442\u044b) \u2014 \u043c\u0443\u0441\u043e\u0440.<\/p>\n<p>  \u041f\u0440\u043e\u043b\u0438\u0441\u0442\u0430\u0435\u043c \u043a\u043e\u0434 \u0434\u043e \u043a\u043e\u043d\u0446\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0433\u0434\u0435 \u044d\u0442\u0430 \u043a\u0430\u0448\u0430 \u0438\u0437 \u043c\u0443\u0441\u043e\u0440\u0430 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f.<br \/>  \u041f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0440\u043e\u043b\u0438\u043c \u0432\u043d\u0438\u0437, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0434\u043e\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u0434\u043e \u043a\u043e\u0434\u0430, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e \u0438\u0437 \u043e\u0434\u043d\u0438\u0445 \u043d\u0443\u043b\u0435\u0439:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/360\/9a7\/969\/3609a796997a9aaa293f8b1d06439b01.png\"\/><\/div>\n<p>  \u0410\u0433\u0430, \u0430 \u0432\u043e\u0442 \u043f\u043e\u0445\u043e\u0436\u0435 \u0438 \u043d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u043c \u0430\u0434\u0440\u0435\u0441 401000, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0434\u0435\u0442 \u043f\u0440\u044b\u0436\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u043e\u0436\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0432\u0445\u043e\u0434\u0430.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u0442\u0430\u043c:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/3f7\/9c0\/58b\/3f79c058b3cbae7c5e0ae66069fb8fa0.png\"\/><\/div>\n<p>  \u0410 \u0442\u0430\u043c \u0443 \u043d\u0430\u0441 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f\u0432\u043d\u043e \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432 Win32 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u043e \u0447\u0435\u043c \u044f\u0432\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 IN \u0438 OUT, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u0438\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438.<\/p>\n<p>  \u0417\u043d\u0430\u0447\u0438\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043a\u043e\u0434 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 \u0432\u0445\u043e\u0434\u0430 (OEP \u2014 Original Entry Point) \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d \u0438 \u043a\u043e\u0434 \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435 53B6 \u0434\u043e\u043b\u0436\u0435\u043d \u0435\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u044b\u0436\u043e\u043a.<\/p>\n<p>  \u041d\u043e!!!<br \/>  \u041d\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435 53B6, \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0440\u0430\u043d\u0435\u0435, \u043c\u0443\u0441\u043e\u0440.<\/p>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0442\u0430\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0443\u0441\u043e\u0440. \u041f\u043e \u0432\u0441\u0435\u0439 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u0441 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u043c \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u043c \u043f\u043e\u043b\u0438\u043c\u043e\u0440\u0444\u0438\u043a\u043e\u043c, \u043f\u0440\u0438\u0447\u0435\u043c \u0432 \u0441\u0430\u043c\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0439 \u0435\u0433\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>  \u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u043b\u0438\u043c\u043e\u0440\u0444\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u0437\u0430\u043c\u0435\u043d\u043e\u0439 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043d\u0430 \u0438\u0445 \u0430\u043d\u0430\u043b\u043e\u0433\u0438 (\u0438\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u044b \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432). \u0421 \u0446\u0435\u043b\u044c\u044e \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u0434\u0430 \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439.<br \/>  \u0417\u0434\u0435\u0441\u044c \u0436\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u043d\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442\u0441\u044f, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u043f\u043b\u044e\u0441 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0438 \u0431\u044b\u043b\u0430 \u0437\u0430\u043c\u0435\u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043d\u0430 \u0430\u043d\u0430\u043b\u043e\u0433\u0438, \u0442\u043e \u044f \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435. \u0412\u043f\u043e\u043b\u043d\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0447\u0442\u043e \u0442\u0443\u0442 \u0431\u044b\u043b \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043c\u0443\u0441\u043e\u0440\u0430, \u043e\u0431\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u0438\u0445\u0430\u0432\u0448\u0438\u0439 \u0435\u0433\u043e \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438, \u043a\u0430\u043a \u0437\u043d\u0430\u0442\u044c\u2026<\/p>\n<p>  \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u043d\u0430\u0434\u043e \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u0443\u0441\u043e\u0440\u0430 \u043e\u0442 \u0430\u0434\u0440\u0435\u0441\u0430 4053B6 \u043f\u043e 406839 (5251 \u0431\u0430\u0439\u0442 \u2014 \u043e\u0434\u043d\u0430\u043a\u043e) \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u044e\u0442 \u0434\u0435\u043a\u0440\u0438\u043f\u0442 \u0442\u0435\u043b\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u0432\u0443\u043c\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438.<br \/>  \u041f\u0435\u0440\u0432\u044b\u0439 \u2014 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u0433\u043b\u0430\u0437\u043a\u0430\u043c\u0438 \u0438 \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u0442\u0430\u043a\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438. \u042f \u0434\u0430\u0436\u0435 \u0440\u0430\u0434\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0438 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u043e\u043a\u043e\u043b\u043e 7 \u043c\u0438\u043d\u0443\u0442, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0434\u0430\u0436\u0435 \u043d\u0430\u0448\u0435\u043b \u0434\u0432\u0435 \u0442\u0430\u043a\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u043c\u0443\u0441\u043e\u0440\u043e\u043c. \u041f\u0440\u0430\u0432\u0434\u0430, \u043a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438, \u043e\u0434\u043d\u0443 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b, \u0434\u0430 \u0438 \u043f\u043e\u0441\u043b\u0435 \u0432\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0439 \u0434\u0430\u043b\u044c\u0448\u0435 \u0438\u0441\u043a\u0430\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u0440\u0430\u0441\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u2014 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0443\u0436 \u0443\u0442\u043e\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u0435 \ud83d\ude42<\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0439\u0434\u0435\u043c \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u0443\u0442\u0435\u043c, \u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0443\u0431\u0440\u0430\u0442\u044c \u0432\u0435\u0441\u044c \u043c\u0443\u0441\u043e\u0440 \u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443.<\/p>\n<p>  \u0421\u0430\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0432 <a href=\"http:\/\/rouse.drkb.ru\/blog\/vm_analize.zip\">\u0430\u0440\u0445\u0438\u0432\u0435, \u0438\u0434\u0443\u0449\u0435\u043c \u0441\u043e \u0441\u0442\u0430\u0442\u044c\u0435\u0439<\/a> \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u043f\u0443\u0442\u0438: &quot;.\\scripts\\fill_trash_by_nop.txt&quot;.<br \/>  \u0414\u043b\u044f \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043f\u043b\u0430\u0433\u0438\u043d OllyScript.<\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u043a\u0440\u0438\u043f\u0442 \u0442\u0430\u043a: \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c keygenme \u0432 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0435 \u0438 \u0434\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0412\u0420 \u0432\u043d\u0443\u0442\u0440\u0438 NTDLL, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432 \u043c\u0435\u043d\u044e \u00abPlugins\u00bb \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0443\u043d\u043a\u0442 \u00abODbgScript-&gt;Run Script&#8230;\u00bb, \u0432 \u0434\u0438\u0430\u043b\u043e\u0433\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0441\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c (\u043f\u0443\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d \u0432\u044b\u0448\u0435) \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e.<\/p>\n<p>  \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0430\u0447\u043d\u0435\u0442 \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u043c\u043e\u0436\u043d\u043e \u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u0440\u0438\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0447\u0430\u0439, \u043c\u0438\u043d\u0443\u0442 \u043f\u044f\u0442\u044c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0443 \u0432\u0430\u0441 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<p>  \u041b\u043e\u0433\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043f\u0440\u043e\u0441\u0442\u0430:<br \/>  \u0422.\u043a. \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 (\u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c EIP), \u0442\u043e \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0443\u0441\u043e\u0440\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u0432\u0435\u0440\u043a\u043e\u0439 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0434\u043e \u0438 \u043f\u043e\u0441\u043b\u0435 \u0435\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043c\u0443\u0441\u043e\u0440\u043d\u043e\u0439 \u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f NOP.<\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442 \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u0432\u044b\u0432\u0435\u0434\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b (\u0441\u0430\u043c \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0439\u0442\u0435 \u2014 \u043e\u043d \u0435\u0449\u0435 \u043d\u0443\u0436\u0435\u043d).<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/483\/bcf\/bb9\/483bcfbb92eb975c85fd2478fadbff31.png\"\/><\/div>\n<p>  \u0412\u0435\u0441\u044c \u043c\u0443\u0441\u043e\u0440 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043c\u0435\u043d\u0435\u043d \u043d\u0430 NOP \u0438 \u043d\u0430 \u0440\u0443\u043a\u0430\u0445 \u0443 \u043d\u0430\u0441 \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 (\u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0431\u0435\u0436\u0430\u0442\u044c\u0441\u044f \u043e\u0442 4053B6 \u043f\u043e 406839 \u0438 \u0432\u044b\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0431\u043b\u043e\u043a\u043d\u043e\u0442\u0438\u043a \u0432\u0441\u0435 \u0447\u0442\u043e \u043d\u0435 NOP):<\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u043c\u0438 \u0434\u0432\u0443\u043c\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430\u043c\u0438 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0443\u0441\u043e\u0440\u0430 (\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f sleep \u0441 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439).<\/p>\n<pre><code class=\"delphi\">0040548B   PUSH 0 0040548D   CALL DWORD PTR DS:[&lt;&kernel32.Sleep&gt;]    ; kernel32.Sleep <\/code><\/pre>\n<p>  \u041d\u0443 \u0442\u043e\u0447\u043d\u0435\u0435 \u043a\u0430\u043a \u2014 \u044d\u0442\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043c\u0443\u0441\u043e\u0440, \u044d\u0442\u0430 \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0442\u044c kernel32.dll \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u0432 \u043f\u0430\u0440\u0443 \u043a \u0443\u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0439 ntdll.dll, \u0442.\u043a. \u044d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 keygenme (\u043a\u0430\u043a \u0440\u0430\u0437 \u0432 \u0432\u0438\u0434\u0435 \u043e\u0434\u043d\u043e\u0439 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sleep).<\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u0439\u0434\u0435\u0442 \u0441\u0430\u043c \u043a\u043e\u0434 \u0434\u0435\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430:<\/p>\n<pre><code class=\"delphi\">004054B4  MOV ESI,keygenme.00401000 \/\/ \u0432 ESI \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0431\u0443\u0444\u0435\u0440   0040559D  MOV EDI,ESI               \/\/ \u0432 EDI \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439                                                                \/\/ \u043e\u043d\u0438 \u0440\u0430\u0432\u043d\u044b \u0442.\u0435. \u0440\u0430\u0441\u0448\u0438\u0432\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0442\u0443\u0434\u0430 \u0436\u0435            00405677  MOV ECX,1058              \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0446\u0438\u043a\u043b\u0430.                                               \/\/ \u0412\u0441\u0435\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u0443\u0435\u0442\u0441\u044f 16736 \u0431\u0430\u0439\u0442,                                      \/\/ \u0442.\u043a. \u0437\u0430\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u043f\u043e 4 \u0431\u0430\u0439\u0442\u0430 ($1058 * 4)            004057FE  LODS DWORD PTR DS:[ESI]   \/\/ \u0447\u0438\u0442\u0430\u0435\u043c 4 \u0431\u0430\u0439\u0442\u0430 00405904  NEG EAX                   \/\/ \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043d\u0430 -1   00405B69  NOT EAX                   \/\/ \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e NOT,                                     \/\/ \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c EAX \u043d\u0430 1                                      \/\/ (NEG + NOT = DEC)            00405D3A  BSWAP EAX                 \/\/ \u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0431\u0430\u0439\u0442\u044b 00405E90  SUB EAX,4FE62125          \/\/ \u043e\u0442\u043d\u0438\u043c\u0430\u0435\u043c 0x4FE62125 00406121  XOR EAX,12345             \/\/ \u043a\u0441\u043e\u0440\u0438\u043c \u043d\u0430 0x12345 00406256  STOS DWORD PTR ES:[EDI]   \/\/ \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e 00406442  DEC ECX                   \/\/ \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 004065C8  JNZ keygenme.004057D9     \/\/ \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0446\u0438\u043a\u043b\u0430 (\u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e 004057FE LODS) <\/code><\/pre>\n<p>  \u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 OEP \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a.<\/p>\n<pre><code class=\"delphi\">00406839 JMP keygenme.00401000 <\/code><\/pre>\n<p>  \u0413\u0440\u0443\u0431\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0434\u0435\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430, \u0442\u0435\u043b\u043e keygenme \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c:<\/p>\n<pre><code class=\"delphi\">uses   Classes,   Winsock;   var   I, A: Integer;   M: TMemoryStream; begin   M := TMemoryStream.Create;   try     M.LoadFromFile('keygenme.exe');     M.Position := 512; \/\/ \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0430\u0439\u0442\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 $1000     for I := 0 to $1058 - 1 do     begin       M.ReadBuffer(A, 4);   \/\/ LODS       Dec(A);               \/\/ NEG + NOT       A := htonl(A);        \/\/ BSWAP       Dec(A, $4FE62125);    \/\/ SUB       A := A xor $12345;    \/\/ XOR       M.Position := M.Position - 4;       M.WriteBuffer(A, 4);  \/\/ STOS     end;     M.SaveToFile('keygenme.exe');   finally     M.Free;   end; end. <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043d\u0435 \u0436\u0434\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u0444\u0430\u0439\u043b\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0430\u043c\u043f\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 (\u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043f\u043b\u0430\u0433\u0438\u043d OllyDump).<\/p>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 OEP (\u00abCtrl+G\u00bb 401000) \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u043c \u0431\u0440\u044f\u043a\u043f\u043e\u0439\u043d\u0442, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<br \/>  \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u0412\u0420, \u0438\u0434\u0435\u043c \u0432 \u043c\u0435\u043d\u044e \u00abPlugins\u00bb, \u0442\u0430\u043c \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u00abOllyDump-&gt;Dump debugged process\u00bb, \u043e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0434\u0438\u0430\u043b\u043e\u0433:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/6d4\/515\/9cb\/6d45159cb69d3902e181c1adda41f16d.png\"\/><\/div>\n<p>  \u041e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u0443\u044f\u0441\u044c \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u043a\u0443 \u00abVirtual Offset\u00bb \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u0430\u0437\u0443 \u043a\u043e\u0434\u0430 \u0440\u0430\u0432\u043d\u0443\u044e 1000, \u0430 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0432\u043d\u0443\u044e 7000, \u0441\u043d\u0438\u043c\u0430\u0435\u043c \u0433\u0430\u043b\u043a\u0443 \u00abRebuil import\u00bb \u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u00abDump\u00bb.<br \/>  \u0412 \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u043c\u0441\u044f \u0434\u0438\u0430\u043b\u043e\u0433\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u0438\u043c\u044f \u00abkeygen_unpacked.exe\u00bb.<\/p>\n<p>  \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0441\u0435 \u2014 \u0432\u043e\u0442 \u043c\u044b \u0438 \u0441\u043d\u044f\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u043d\u0432\u0435\u0440\u0442.<\/p>\n<p>  <b>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044c:<\/b><\/p>\n<p>  \u0412\u043e\u043e\u0431\u0449\u0435 \u0441\u0434\u0430\u043c\u043f\u0438\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u0440\u043e\u0449\u0435, \u0431\u0435\u0437 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0434\u0435\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430 \u0438 \u043f\u0440\u043e\u0447\u0435\u0433\u043e, \u043d\u043e \u0440\u0430\u0437 \u0443\u0436 \u044f \u0440\u0435\u0448\u0438\u043b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u043e\u0441\u043a\u043e\u043d\u0430\u043b\u044c\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430 \u043d\u0435\u043c \u0442\u043e\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u0412\u0442\u043e\u0440\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c.<br \/>  1. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u0438 \u0436\u0434\u0435\u043c \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0412\u0420 \u0432\u043d\u0443\u0442\u0440\u0438 NTDLL.<br \/>  2. \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 \u043a\u0430\u0440\u0442\u044b \u043f\u0430\u043c\u044f\u0442\u0438 \u00abAlt+M\u00bb \u0438 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0435 401000 \u0441\u0442\u0430\u0432\u0438\u043c MBP \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/7de\/d78\/0e5\/7ded780e5d64d79fbd1b4c6a4c6d1349.png\"\/><\/div>\n<p>  3. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0440\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 (\u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f STOS DWORD), \u043e\u043f\u044f\u0442\u044c \u0438\u0434\u0435\u043c \u043d\u0430 \u043a\u0430\u0440\u0442\u0443 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0441\u043d\u0438\u043c\u0430\u0435\u043c MBP, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0438\u0434\u0435\u043c \u043d\u0430 OEP (401000) \u0438 \u0442\u0430\u043c \u0441\u0442\u0430\u0432\u0438\u043c \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0431\u0440\u044f\u043a\u043f\u043e\u0439\u043d\u0442.<br \/>  4. \u041d\u0443 \u0430 \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0440\u0432\u0435\u043c\u0441\u044f \u043d\u0430 \u043d\u0435\u043c \u2014 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0443\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0448\u0430\u0433\u0438 \u043f\u043e \u0434\u0430\u043c\u043f\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430.<\/p>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u0444\u0430\u0439\u043b \u043f\u043e\u0434 PEiD, \u044d\u043d\u0442\u0440\u043e\u043f\u0438\u044f \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u0442\u0430\u043b\u0430 6.95 \u2014 \u0430 \u0432\u0441\u0435\u0433\u043e-\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b\u0438 \u0431\u043b\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<h4>4. \u041f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438 \u043e\u0431\u0445\u043e\u0434 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u0434 Vista \u0438 \u0432\u044b\u0448\u0435.<\/h4>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0443\u0436\u0435 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c.<br \/>  \u0422\u0430\u043a \u043a\u0430\u043a \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430 \u0432 \u043d\u0435\u043c \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f, \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0442\u044c \u043b\u0438\u0448\u043d\u0438\u0445 \u0442\u0435\u043b\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0439, \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c Olly \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0443\u0436\u0435 \u043d\u0435 \u0432 NTDLL, \u0430 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430 \u0442\u043e\u0447\u043a\u0435 \u0432\u0445\u043e\u0434\u0430.<br \/>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c OllyDebug, \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043c\u0435\u043d\u044e \u00abOptions\u00bb, \u0442\u0430\u043c \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u00abDebugging options\u00bb \u0438 \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u00abEvents\u00bb \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0433\u0430\u043b\u043a\u0443 \u00abMake first pause at: -&gt; Entry point of main module\u00bb.<\/p>\n<p>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c keygenme_unpacked.exe \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u043e \u0447\u0442\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0441\u044f \u0440\u0430\u043d\u0435\u0435 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/fa0\/3ea\/8c4\/fa03ea8c4272050c3def022fd05e0349.png\"\/><\/div>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u0432\u0438\u0434\u0438\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u00ab\u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u00bb, \u043f\u0435\u0440\u0432\u044b\u0439 \u0436\u0435 \u0432\u044b\u0437\u043e\u0432 CALL \u0438\u0434\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u044c \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u0435\u0431\u044f (\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0430\u0434\u0440\u0435\u0441 401004, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441 4010005).<\/p>\n<p>  \u041e \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u044b\u0436\u043a\u0430\u0445 \u044f \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0440\u0430\u043d\u0435\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435: <a href=\"http:\/\/habrahabr.ru\/post\/178159\/\">\u00ab\u0418\u0437\u0443\u0447\u0430\u0435\u043c \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a, \u0447\u0430\u0441\u0442\u044c \u0432\u0442\u043e\u0440\u0430\u044f\u00bb<\/a><\/p>\n<p>  \u0421\u0443\u0442\u044c \u0442\u0430\u043a\u043e\u0433\u043e \u0442\u0440\u044e\u043a\u0430 \u2014 \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u0438 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u043d\u0435 \u0442\u043e\u0442 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u0441\u044f \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435. \u041d\u0438\u0447\u0435\u0433\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0433\u043e \u0432 \u0442\u0430\u043a\u043e\u043c \u00ab\u0442\u0440\u044e\u043a\u0435 \u043d\u0435\u0442\u00bb, \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c F7 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u044d\u0442\u043e\u0442 CALL \u0438 \u0441\u0440\u0430\u0437\u0443 \u0432\u0438\u0434\u0438\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/c46\/c09\/51e\/c46c0951ebb2c7f2ba10f373aeb44b55.png\"\/><\/div>\n<p>  \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0435\u0449\u0435 \u0440\u0430\u0437 \u0441\u0434\u0430\u043c\u043f\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 + \u0443\u0431\u0440\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e POP EBX \u0434\u043b\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u00ab\u0444\u043e\u043a\u0443\u0441\u0430\u00bb, \u043d\u043e \u0442.\u043a. \u043c\u0435\u0448\u0430\u0442\u044c \u043e\u043d \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u2014 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043a\u0430\u043a \u0435\u0441\u0442\u044c \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>  \u0421\u043f\u0435\u0440\u0432\u0430 \u0438\u0434\u0435\u0442 \u0431\u043b\u043e\u043a \u0438\u0437 \u043f\u044f\u0442\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0437\u0430\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043d\u0435\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 PEB (Process Environment Block), \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0432 FS:[$30].<br \/>  \u0415\u0441\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 PEB \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0432 \u043a\u043e\u0434\u0435 \u043e\u0444\u0444\u0441\u0435\u0442\u044b, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043d\u0430 \u0440\u0443\u043a\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"delphi\">0040100A  MOV EAX,DWORD PTR FS:[30]     \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 PEB 00401010  MOV EAX,DWORD PTR DS:[EAX+C]  \/\/ \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 PEB-&gt;LoaderData 00401013  MOV EAX,DWORD PTR DS:[EAX+1C] \/\/ \u0447\u0438\u0442\u0430\u0435\u043c LoaderData-&gt;InInitOrder 00401016  MOV EAX,DWORD PTR DS:[EAX]    \/\/ \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 _LDR_DATA_TABLE_ENTRY 00401018  MOV EAX,DWORD PTR DS:[EAX+8]  \/\/ \u0447\u0438\u0442\u0430\u0435\u043c \u043f\u043e\u043b\u0435 DllBase <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u044d\u0442\u0438 \u043f\u044f\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0438\u0449\u0443\u0442 hInstance \u00abkernel32.dll\u00bb, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443, \u043f\u0440\u0430\u0432\u0434\u0430 \u043f\u043e\u0434 Vista \u0438 \u0432\u044b\u0448\u0435 \u043f\u043e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d hInstance \u00abkernelbase.dll\u00bb \u0438 \u0441 \u044d\u0442\u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u043e\u0434\u043d\u0430 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043e\u0447\u043a\u0430.<\/p>\n<p>  \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f LEA ESI, \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442 \u0432 ESI \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 Ansi \u0441\u0442\u0440\u043e\u043a, \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u043d\u044b\u0445 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 004012DE. \u042d\u0442\u043e \u0442\u0440\u0438 \u0441\u0442\u0440\u043e\u043a\u0438, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0443\u043b\u044f\u043c\u0438: \u00abLoadLibraryA\u00bb, \u00abExitProcess\u00bb \u0438 \u00abVirtualAlloc\u00bb.<\/p>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438, \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0437\u0430\u0431\u044b\u043b \u043e\u0431 \u044d\u0442\u043e\u043c \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u0440\u0430\u043d\u0435\u0435, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 keygenme.exe \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0447\u0442\u043e \u043e\u043d \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043e\u0434\u043d\u0443 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e kernel32.sleep, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442. \u0417\u043d\u0430\u0447\u0438\u0442 \u0430\u0434\u0440\u0435\u0441\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f LEA EDI, \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442 \u0432 EDI \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0431\u0443\u0444\u0435\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u0430\u0434\u0440\u0435\u0441\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 (\u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0434\u043b\u044f kernel32), \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u044b\u0437\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 401198.<\/p>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u0431\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 LEA EDI\/ESI \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043c\u0443\u0441\u043e\u0440\u043e\u043c, \u0442.\u043a. \u044d\u0442\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0435\u0440\u0435\u0437\u0430\u0442\u0440\u0443\u0442\u0441\u044f \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 401198, \u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u0435\u0439 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u0430\u043a \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435 (EDI, \u0442\u043e\u0447\u043d\u0435\u0435 EBP+305, \u0432 \u0438\u0442\u043e\u0433\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439).<\/p>\n<p>  \u0412\u043a\u0440\u0430\u0442\u0446\u0435, \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b 401198 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 ESI, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0438\u043c\u044f \u0438\u0441\u043a\u043e\u043c\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 EDI \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, hInstance \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438, \u0441\u0447\u0438\u0442\u0430\u0432 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 PEB,<br \/>  \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 4011E2, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0438\u043c\u0435\u043d\u0438.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/624\/ced\/1a0\/624ced1a035f9e3ea274d76dab8d40c7.png\"\/><\/div>\n<p>  \u0418 \u0432\u043e\u0442 \u0442\u0443\u0442-\u0442\u043e \u043d\u0430\u0441 \u0436\u0434\u0435\u0442 \u0432\u0442\u043e\u0440\u0430\u044f \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0441\u0442\u044c, \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u0430\u044f \u0447\u0435\u043c \u0442\u0440\u044e\u043a \u0441 CALL \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435.<\/p>\n<p>  \u0421\u0430\u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u00abLoadLibraryA\u00bb, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u00abkernelbase.dll\u00bb \u043d\u0435 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442.<br \/>  \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u043f\u043e\u0434 Windows Vista \u0438 \u0432\u044b\u0448\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 keygenme \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0430\u0434\u0430\u0442\u044c \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435.<\/p>\n<p>  \u041c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u043d\u0438\u043c\u0435\u0442\u0441\u044f \u0432\u043e\u0442 \u0442\u0443\u0442:<\/p>\n<pre><code class=\"delphi\">004011EB  CMPS BYTE PTR DS:[ESI],BYTE PTR ES:[EDI] <\/code><\/pre>\n<p>  \u041e\u0431\u043e\u0439\u0442\u0438 \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0441\u0442\u0430\u0440\u0442\u0430 keygenme, \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0412\u0420 \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e:<\/p>\n<pre><code class=\"delphi\">0040101B LEA ESI,DWORD PTR SS:[EBP+2DE] <\/code><\/pre>\n<p>  \u0442.\u0435. \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0438 \u043f\u043e\u0434\u043c\u0435\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 EAX \u043d\u0430 hInstance \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u00abkernel32.dll\u00bb (\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u043a\u0430\u0440\u0442\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 Alt+M).<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u0430\u043a\u0438\u0445 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439 keygenme \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u0448\u0442\u0430\u0442\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u0438\u0437 \u043f\u0430\u043f\u043a\u0438 &quot;.\\scripts\\run_at_vista.txt&quot;, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043f\u043e\u0434\u043c\u0435\u043d\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 EAX \u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<h4>5. \u0427\u0442\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430<\/h4>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0447\u0442\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u043a\u0430\u043a\u0438\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u043d\u0438\u043c\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u044f\u0442\u0441\u044f.<\/p>\n<p>  \u041e\u0431\u044b\u0447\u043d\u043e \u0447\u0442\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 EDIT \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u00abGetWindowsText\u00bb \u0438\u043b\u0438 \u00abGetDlgItemText\u00bb, \u043d\u043e \u0442.\u043a. \u0432\u0442\u043e\u0440\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432 \u0438\u0442\u043e\u0433\u0435 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u0443\u044e, \u0442\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u0440\u044f\u043a\u043f\u043e\u0439\u043d\u0442 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u00abGetWindowsText\u00bb.<\/p>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e, \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a keygenme \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0441\u044f (\u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u0437\u0438\u043b\u0430\u0441\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 user32.dll) \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0435\u0433\u043e \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u0438 \u0438\u0449\u0435\u043c \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u043e\u0434\u0443\u043b\u044f\u0445:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/514\/2dc\/c2f\/5142dcc2f792e3b363c6d7f2ed92a799.png\"\/><\/div>\n<p>  \u0412 \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u043c\u0441\u044f \u0434\u0438\u0430\u043b\u043e\u0433\u0435 \u0438\u0449\u0435\u043c \u0438\u043c\u044f \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u00abGetWindowsTextA\u00bb, \u0438 \u0432 \u043c\u0435\u043d\u044e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u0443\u043d\u043a\u0442 \u00abFollow in Disassembler\u00bb:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/7de\/68e\/a02\/7de68ea0232cfa952cb699a3d8628d92.png\"\/><\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u0430\u0432\u0438\u043c \u0412\u0420, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0434\u0438\u0430\u043b\u043e\u0433 \u0441 keygenme \u0438 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044f \u0432\u0431\u0438\u0432\u0430\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u043d\u0430\u043c \u043b\u043e\u0433\u0438\u043d \u00abMs-Rem\u00bb \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u00abC38FB7A0CF38F73B1159\u00bb.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/df7\/d38\/434\/df7d38434276b917f60689898988fb48.png\"\/><\/div>\n<p>  \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u00abCheck\u00bb \u0438\u2026 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u0431\u0440\u044f\u043a\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 user32 \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u00abGetWindowsTextA\u00bb.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043c\u0435\u0441\u0442\u0443 \u0435\u0435 \u0432\u044b\u0437\u043e\u0432\u0430.<\/p>\n<p>  \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c:<br \/>  1. Ctrl+Shift+F9 \u2014 \u043f\u0440\u044b\u0433\u0430\u044f \u0432 \u043a\u043e\u043d\u0435\u0446 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u00abGetWindowsTextA\u00bb<br \/>  2. F8 \u2014 \u0432\u044b\u0445\u043e\u0434\u0438\u043c \u043d\u0430\u0432\u0435\u0440\u0445 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u00abGetDlgItemText\u00bb<br \/>  3. Ctrl+Shift+F9 \u2014 \u043f\u0440\u044b\u0433\u0430\u044f \u0432 \u043a\u043e\u043d\u0435\u0446 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u00abGetDlgItemText\u00bb<br \/>  4. F8 \u2014 \u0432\u044b\u0445\u043e\u0434\u0438\u043c \u043d\u0430\u0432\u0435\u0440\u0445 \u0432 \u043c\u0435\u0441\u0442\u043e \u0432\u044b\u0437\u043e\u0432\u0430<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/e91\/569\/413\/e915694131f74ff7e4b3a9ae9f1b1bca.png\"\/><\/div>\n<p>  \u0412 \u0441\u0438\u043d\u0435\u0439 \u0440\u0430\u043c\u043a\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u00abGetDlgItemText\u00bb, \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438:<\/p>\n<p>  hDlg = ESI<br \/>  nIDDlgItem = 65<br \/>  lpString = EAX<br \/>  nMaxCount = $10<\/p>\n<p>  \u042d\u0442\u043e \u043c\u044b \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u0438\u043d\u0430 \u0432 \u0431\u0443\u0444\u0435\u0440, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0440\u0435\u0433\u0438\u0441\u0442\u0440 EAX \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0432 16 \u0431\u0430\u0439\u0442, \u0430 \u0432 \u043a\u0440\u0430\u0441\u043d\u043e\u0439 \u0440\u0430\u043c\u043a\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d \u0432\u044b\u0437\u043e\u0432 \u0447\u0442\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u0432 \u0431\u0443\u0444\u0435\u0440, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c EDI (EBP+414E) \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0432 32 \u0431\u0430\u0439\u0442\u0430.<\/p>\n<p>  \u0421\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0447\u0442\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430.<br \/>  \u0417\u0430 \u043d\u0438\u043c \u0438\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0438\u0437 10 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 ESI \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0431\u0443\u0444\u0435\u0440 \u0441 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u043c \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c, \u0430 EDI \u043d\u0430 \u0431\u0443\u0444\u0435\u0440, \u043a\u0443\u0434\u0430 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<pre><code class=\"delphi\">00401111  MOV ECX,0A                    \/\/ \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0446\u0438\u043a\u043b\u0430 00401116  LODS WORD PTR DS:[ESI]        \/\/ \u0447\u0438\u0442\u0430\u0435\u043c \u0434\u0432\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 00401118  CALL keygenme.0040117B        \/\/ \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e 0040111D  STOS BYTE PTR ES:[EDI]        \/\/ \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c 1 \u0431\u0430\u0439\u0442 0040111E  LOOPD SHORT keygenme.00401116 \/\/ \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e <\/code><\/pre>\n<p>  \u0422.\u0435. \u043d\u0430\u0434 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 40117B \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043a\u0430\u043a\u0438\u0435 \u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 EDI.<\/p>\n<p>  \u0414\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/2a8\/fa2\/d7b\/2a8fa2d7b5bbd854fc0adfd2c5131bb8.png\"\/><\/div>\n<p>  \u042d\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u0442\u0438\u043f\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0433\u043e HEX \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u0431\u0430\u0439\u0442.<br \/>  \u0415\u0441\u043b\u0438 \u0433\u0440\u0443\u0431\u043e \u0442\u043e \u044d\u0442\u043e \u0430\u043d\u0430\u043b\u043e\u0433 Result := StrToInt(&#8216;$&#8217; + Value);<br \/>  \u0412\u043e\u0437\u044c\u043c\u0435\u043c \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440: \u00abC38FB7A0CF38F73B1159\u00bb<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 10 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u0442\u0430\u043a\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c:<\/p>\n<pre><code class=\"delphi\">var   sn: array [0..9] of Byte = ($C3, $8F, $B7, $A0, $CF, $38, $F7, $3B, $11, $59); <\/code><\/pre>\n<p>  \u041d\u043e \u0442.\u043a. \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c HEX \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0441\u043b\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0434\u0430\u0434\u0443\u0442 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0447\u0438\u0441\u043b\u043e.<\/p>\n<p>  \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0447\u0442\u043e \u00abC3\u00bb \u0447\u0442\u043e \u00abs1\u00bb \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0432\u043d\u044b 195 (\u0438\u043b\u0438 $C3). \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0442 \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c: &quot;<b>s1<\/b>8FB7A0CF38F73B1159&quot;.<\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u044b\u0432\u043e\u0434: \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u043b\u043e\u0433\u0438\u043d \u0437\u0430\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0435\u0441\u0442\u044c, \u0430 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u043f\u043e\u0441\u043b\u0435 \u0447\u0442\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0431\u0430\u0439\u0442\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043f\u0440\u0438\u0447\u0435\u043c, \u0442.\u043a. \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0441\u0435\u0433\u043e 10, \u0442\u043e \u0434\u043b\u0438\u043d\u0430 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c 20 HEX \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 (\u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f).<\/p>\n<p>  \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u044d\u0442\u0430 \u0432\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 keygenme \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434 \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0433\u043b\u043e\u043c.  <\/p>\n<h4>6. \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c keygenme \u043f\u043e\u0434 IDA Pro, \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c VM \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0435\u0435 PiCode<\/h4>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c IDA Pro \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0432 \u043d\u0435\u043c keygenme_unpacked.exe, \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0438\u0434\u0435\u043c \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 \u00abFunctions\u00bb.<\/p>\n<p>  \u0412\u0441\u0435\u0433\u043e-\u0442\u043e 8 \u0448\u0442\u0443\u043a:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/7f8\/3e8\/466\/7f83e8466c7a8640622cd08b62411e56.png\"\/><\/div>\n<p>  \u041f\u0440\u0438\u0447\u0435\u043c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u043d\u0430\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435:<br \/>  401000 \u2014 \u044d\u0442\u043e OEP, \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e<\/p>\n<p>  401096 \u2014 \u0430 \u044d\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043d\u0430\u0432\u0435\u0441\u0438\u043b\u0438 \u0432\u0441\u044f\u043a\u043e\u0435 \u0442\u0430\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 IAT, \u043d\u043e, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u043d\u0430 \u043d\u0430\u043c \u0443\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/07b\/f1a\/703\/07bf1a70304fe46d2cfa188fb9cfdb95.png\"\/><\/div>\n<p>  40117B \u2014 \u044d\u0442\u043e HexToInt, \u0432\u0438\u0434\u0435\u043b\u0438\u2026<br \/>  401198 \u2014 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 IAT, \u0432\u0438\u0434\u0435\u043b\u0438\u2026<br \/>  4011E2 \u2014 \u043f\u043e\u0438\u0441\u043a \u0430\u0434\u0440\u0435\u0441\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e \u0438\u043c\u0435\u043d\u0438, \u0432\u0438\u0434\u0435\u043b\u0438\u2026<\/p>\n<p>  sub_401204 \u2014 \u0447\u0442\u043e-\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 (\u0441\u0443\u0434\u044f \u043f\u043e \u0433\u0440\u0430\u0444\u0443), \u0441 \u043d\u0435\u0439 \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u0438 \u043d\u0430\u0447\u043d\u0435\u043c, \u043a\u0441\u0442\u0430\u0442\u0438 \u043e\u043d\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0434\u0432\u0435 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sub_401257 \u0438 sub_401276.<\/p>\n<p>  \u0410 \u0432\u044b\u0437\u043e\u0432\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0447\u0442\u0435\u043d\u0438\u044f \u0438\u0437 EDIT-\u043e\u0432 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0430\u043c 004010F5 \u0438 00401107, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0446\u0438\u043a\u043b\u0430 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 00401111, IDA Pro \u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043b\u0430 \u043a\u0430\u043a \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0438\u0437-\u0437\u0430 \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0438\u0434\u0443\u0449\u0438\u0445 \u043f\u0435\u0440\u0435\u0434 \u043d\u0438\u043c\u0438 (\u0434\u0430 \u0438 \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u0432\u0430\u0436\u043d\u043e).<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0433\u0440\u0430\u0444 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sub_401204:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/311\/86b\/ea5\/31186bea5c78442276c5170093933ab0.png\"\/><\/div>\n<p>  \u0412\u0438\u0434\u0435\u043b\u0438 \u043a\u043e\u0433\u0434\u0430 \u043d\u0438\u0431\u0443\u0434\u044c \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0433\u0440\u0430\u0444 VM \u0432 IDA?<br \/>  \u0415\u0441\u043b\u0438 \u043d\u0435\u0442, \u0442\u043e \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u2014 \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u0442\u0435\u043b\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u043f\u0440\u0438\u0447\u0435\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439.<\/p>\n<p>  \u0427\u0442\u043e \u0435\u0441\u0442\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430?<br \/>  \u0413\u0440\u0443\u0431\u043e\u2026 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0435\u043c\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 (\u043c\u0430\u0448\u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c).<br \/>  \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u2014 \u043f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440, \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u043d\u0430 \u0441\u0432\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0433\u0434\u0435-\u0442\u043e \u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u0435\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u0432\u0438\u0434\u0435 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e PiCode.<br \/>  \u0421\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0447\u0442\u043e \u044d\u0442\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0443\u0442 \u0441 \u0442\u0435\u043c\u0438, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 (\u0442\u043e\u0447\u043d\u0435\u0435 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u2014 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043e\u043d\u0438 \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c).<\/p>\n<p>  \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0437\u0430\u0449\u0438\u0442\u044b, \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0442\u0435\u043a\u0442\u043e\u0440\u044b \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u0443\u044e\u0442 \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u043c\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u043a\u043e\u0434\u0430, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u043d\u0438\u0445 \u0441\u0432\u043e\u044e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043b\u043e\u0433\u0438\u043a\u0438 \u0438 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044f\u0442 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432 \u043f\u0438\u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0432\u0438\u0434\u0435 \u0431\u0443\u0444\u0435\u0440\u0430 \u0433\u0434\u0435-\u0442\u043e \u0432 \u0442\u0435\u043b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041a\u0430\u0436\u0434\u0430\u044f VM, \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u0438\u043a\u043e\u0434\u0430, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043d\u0435\u0435, \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0438\u0445.<\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0442 \u0432\u0437\u043b\u043e\u043c\u0449\u0438\u043a\u0430 \u043f\u0440\u044f\u0447\u0435\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u043d \u043c\u043e\u0433 \u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u043e\u0434 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u043e\u043c. \u041f\u043e\u0441\u043b\u0435 \u0442\u0430\u043a\u0438\u0445 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0439 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e VM, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0435\u0435 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0438\u0437 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0435\u0439 \u043f\u0438\u043a\u043e\u0434\u0430, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0432 \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u043e\u0431\u044b\u0447\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0443 \u043c\u0430\u0448\u043a\u043e\u0434. \u0420\u0430\u0431\u043e\u0442\u0435\u043d\u043a\u0430 \u0442\u0430 \u0435\u0449\u0435\u2026<\/p>\n<p>  \u041d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432\u044b\u0448\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u043a\u0430\u043a \u0440\u0430\u0437 \u043e\u0434\u043d\u0443 \u0438\u0437 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 VM, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0441\u0435\u0433\u043e 8 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/e43\/762\/76d\/e4376276d591489fc2854ade4c6fd9e0.png\"\/><\/div>\n<p>  \u0412\u0441\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 EBX, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e \u0431\u0443\u0444\u0435\u0440\u0430 \u0441 \u043f\u0438\u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u0430 \u0442\u0430\u043a-\u0436\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 EAX, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0443\u0440\u0441\u043e\u0440\u043e\u043c (\u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438).<\/p>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430 VM \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b loc_40120D.<\/p>\n<p>  \u0415\u0435 \u0437\u0430\u0434\u0430\u0447\u0430, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u043f\u043a\u043e\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sub_401276, \u043a\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u0432 \u0445\u0438\u043d\u0442\u0435.<\/p>\n<p>  \u0421\u0443\u0434\u044f \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u0434\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0441\u0430\u043c \u043f\u0438\u043a\u043e\u0434 \u0442\u043e\u0436\u0435 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d \u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0435\u0433\u043e \u0434\u0435\u043a\u0440\u0438\u043f\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c:<\/p>\n<pre><code class=\"delphi\">var   A, B: Byte; ...   A := PicodeBuff[I];   B := A;   B := B shr 4;   A := A xor B;   Result := A and 7; <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043e\u043f\u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u0435\u0441\u043b\u0438 \u043e\u043d \u0440\u0430\u0432\u0435\u043d \u043d\u0443\u043b\u044e, \u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u043e\u0442 \u0441\u044e\u0434\u0430:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/470\/dd1\/797\/470dd17976e100fe99eb9f960016a82a.png\"\/><\/div>\n<p>  \u0413\u0434\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 (\u043d\u0430\u0437\u043e\u0432\u0435\u043c \u0435\u0435 \u043a\u0430\u043a \u0435\u0441\u0442\u044c arg_4)<\/p>\n<p>  \u0418 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0434\u0430\u043b\u044c\u0448\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0444\u0438\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0431\u043b\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043e\u043f\u043a\u043e\u0434\u0430, \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440 EAX.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/514\/b62\/fd4\/514b62fd4fa39ccfefffe72a173c06d7.png\"\/><\/div>\n<p>  \u041f\u0440\u0438\u0447\u0435\u043c \u0432 \u043d\u0435\u043c \u0436\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u0437\u043d\u0430\u0442\u044c \u043e\u0431\u0449\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0438\u043a\u043e\u0434\u0430, \u043e\u043d \u0440\u0430\u0432\u0435\u043d $3DA2 (15778 \u0431\u0430\u0439\u0442).<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0432\u0441\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443:<\/p>\n<p>  0. (loc_4012CA): \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u00abarg_4\u00bb<br \/>  1. (loc_4012C5): \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u00abarg_4\u00bb<br \/>  2. (loc_4012BE): \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u00abarg_4\u00bb<br \/>  3. (loc_4012B7): \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u00abarg_4\u00bb<br \/>  4. (loc_4012A8): \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u00abarg_4\u00bb \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u00abarg_8\u00bb, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u00abarg_8\u00bb<br \/>  5 (loc_401299):. \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u00abarg_\u0421\u00bb \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u00abarg_4\u00bb, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u00abarg_\u0421\u00bb<br \/>  6. (loc_401284): \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u00abarg_4\u00bb, \u0438 \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u0440\u0430\u0432\u043d\u043e \u043d\u0443\u043b\u044e, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u00absub_401257\u00bb \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u044f \u0432 EDX \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1<br \/>  7. (0040123E): \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u00abarg_4\u00bb, \u0438 \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u043d\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0443\u043b\u044e, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u00absub_401257\u00bb \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u044f \u0432 EDX \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 -1<\/p>\n<p>  \u0410 \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435 \u00absub_401257\u00bb \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435, EDX \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0438\u043a\u043e\u0434\u0430, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0449\u0435\u0442\u0441\u044f \u043e\u043f\u043a\u043e\u0434 \u043d\u043e\u043c\u0435\u0440 7, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043e\u043f\u043a\u043e\u0434\u0443 \u043d\u043e\u043c\u0435\u0440 6 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 (\u0442.\u0435. \u0435\u0441\u043b\u0438 \u0438\u0434\u0443\u0442 066770 \u0442\u043e \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043e\u043f\u043a\u043e\u0434\u0430 6 \u043a\u0443\u0440\u0441\u043e\u0440 EAX \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0430 \u043d\u0443\u043b\u0435, \u0430 \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0438\u0437 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u043f\u043a\u043e\u0434\u0430 6, EAX \u0431\u0443\u0434\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u0432\u0442\u043e\u0440\u0443\u044e \u0441\u0435\u043c\u0435\u0440\u043a\u0443).<br \/>  \u0410 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 EDX = -1, \u0442\u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0434\u0435\u0442 \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0442\u0430\u043a-\u0436\u0435 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  \u0412\u043e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u0432\u0441\u044f VM.<br \/>  \u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442?<\/p>\n<p>  \u0423\u0433\u0443 \u2014 \u044d\u0442\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e Brainfuck \u043a\u0430\u043a \u043e\u043d \u0435\u0441\u0442\u044c.<br \/>  <a href=\"http:\/\/ru.wikipedia.org\/wiki\/Brainfuck\">http:\/\/ru.wikipedia.org\/wiki\/Brainfuck<\/a><\/p>\n<p>  \u0422.\u0435. \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 keygenme \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 PiCode, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0435 Brainfuck, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b (\u043d\u0443 \u0430 \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u0438 \u043d\u0435\u0442?)<br \/>  \u041a\u0441\u0442\u0430\u0442\u0438, \u0435\u0441\u043b\u0438 \u0432\u044b \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 BF \u0432 \u0432\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430, \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0447\u0442\u043e \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044b\u0439 \u0438 \u043f\u044f\u0442\u044b\u0439 \u043e\u043f\u043a\u043e\u0434\u044b (\u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c) \u043f\u0435\u0440\u0435\u043f\u0443\u0442\u0430\u043d\u044b \u043c\u0435\u0441\u0442\u0430\u043c\u0438.<\/p>\n<p>  \u041d\u0443 \u0430 \u0440\u0430\u0437 \u0442\u0430\u043a, \u0432\u0441\u0435 \u0447\u0442\u043e \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c, \u044d\u0442\u043e \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c \u0438\u0437 \u0442\u0435\u043b\u0430 keygenme \u0441\u0430\u043c \u043f\u0438\u043a\u043e\u0434 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0430\u043c keygenme \u043d\u0435 \u043d\u0443\u0436\u0435\u043d, \u0434\u0430\u043b\u044c\u0448\u0435 \u043c\u044b \u0441\u0430\u043c\u0438.<\/p>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u0443\u0444\u0435\u0440\u0430 \u0441 \u043f\u0438\u043a\u043e\u0434\u043e\u043c, \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0412\u0420 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u0435 VM \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0430\u0434\u0440\u0435\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f EBX.<\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c OllyDebug \u0438 \u0432 \u043d\u0435\u043c \u0441\u0442\u0430\u0432\u0438\u043c \u0412\u0420 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0435 401208.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/549\/4aa\/4b6\/5494aa4b6b88535248f7bedb6818391c.png\"\/><\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f BP \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 EBX, \u044d\u0442\u043e \u0430\u0434\u0440\u0435\u0441 401380.<br \/>  \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u043d\u0435\u0433\u043e \u0432 \u043e\u043a\u043d\u0435 \u0434\u0430\u043c\u043f\u0430 \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 HEX \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043f\u0435\u0440\u0432\u044b\u0435 8 \u0431\u0430\u0439\u0442 \u0440\u0430\u0432\u043d\u044b \u00abCE44 4E53101708DD\u00bb.<br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c keygenme_unpacked.exe \u0432 \u043b\u044e\u0431\u043e\u043c HEX \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u0438 \u0438\u0449\u0435\u043c \u044d\u0442\u0438 8 \u0431\u0430\u0439\u0442.<br \/>  \u0420\u0430\u0437\u043c\u0435\u0440 VM, \u043a\u0430\u043a \u043c\u044b \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u0438 \u0440\u0430\u043d\u0435\u0435 15778 \u0431\u0430\u0439\u0442.<br \/>  \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c 15778 \u0431\u0430\u0439\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0432 \u0444\u0430\u0439\u043b \u00abvm.mem\u00bb.<\/p>\n<p>  \u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u0442\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u043d\u0430 \u0440\u0443\u043a\u0430\u0445 \u0435\u0441\u0442\u044c PiCode \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0434\u043e\u043b\u0433\u0430\u044f \u0438 \u0443\u043f\u043e\u0440\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430, \u0430 \u0441\u0430\u043c keygenme \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 OllyDebug \u0438 IDA Pro \u043d\u0430\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u044b, \u043e\u043d\u0438 \u0441\u0432\u043e\u0435 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438.<\/p>\n<p>  \u0417\u042b: \u0443\u0436\u0435 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u00abvm.mem\u00bb \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d <a href=\"http:\/\/rouse.drkb.ru\/blog\/vm_analize.zip\">\u0432 \u0430\u0440\u0445\u0438\u0432\u0435 \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u043a \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0432 \u043f\u0430\u043f\u043a\u0435 &quot;.\\data\\vm.mem&quot;.<\/p>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438.<br \/>  \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0432\u044b\u0447\u0438\u0442\u043a\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043c\u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442: \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0431\u043e\u0435\u0432\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u0435, \u0430 \u043a\u0430\u043a \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u0435\u043b\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b?<br \/>  \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0412\u0420 \u043d\u0430 \u0437\u0430\u0447\u0438\u0442\u043a\u0443 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430), \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u043e\u0434\u0438\u043d \u0438\u0437 \u0445\u044d\u043d\u0434\u043b\u0435\u0440\u043e\u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u043b\u0438\u0431\u043e \u0442\u0435 \u0436\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u043c \u0431\u0443\u0444\u0435\u0440\u043e\u043c (\u0432\u0435\u0434\u044c \u0447\u0442\u043e-\u0442\u043e VM \u0434\u043e\u043b\u0436\u043d\u0430 \u0434\u0435\u043b\u0430\u0442\u044c \u0438 \u0438\u043c\u0435\u0442\u044c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0440\u0435\u0434\u043e\u0439).<br \/>  \u041d\u043e \u0432\u0441\u0435 \u044d\u0442\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 VM \u0438 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u044d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c.<\/p>\n<h4>7. \u041f\u0438\u0448\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 Brainfuck<\/h4>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u00abvm.mem\u00bb \u0432 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c \u043a\u043e\u0434\u043e\u043c:<\/p>\n<pre><code class=\"delphi\">const   BrainFuckOpcode: array [0..7] of AnsiChar = ('&gt;', '&lt;', '+', '-', ',', '.', '[', ']');   const   PicodeBuffSize = 15778; var   PicodeBuff: array [0..PicodeBuffSize - 1] of Byte;   M: TMemoryStream;   I: Integer;   A, B: Byte; begin   M := TMemoryStream.Create;   try     M.LoadFromFile('..\\..\\data\\vm.mem');     M.ReadBuffer(PicodeBuff[0], PicodeBuffSize);     for I := 0 to PicodeBuffSize - 1 do     begin       A := PicodeBuff[I];       B := A;       B := B shr 4;       A := A xor B;       PicodeBuff[I] := Byte(BrainFuckOpcode[A and 7]);     end;     M.Clear;     M.WriteBuffer(PicodeBuff[0], PicodeBuffSize);     M.SaveToFile('..\\..\\data\\vm.brainfuck');   finally     M.Free;   end; <\/code><\/pre>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0444\u0430\u0439\u043b \u00abvm.brainfuck\u00bb \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043a\u043e\u0434 BF \u0432 \u0442\u043e\u043c \u0432\u0438\u0434\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d \u043e\u0431\u044b\u0447\u043d\u043e \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u0440\u0438\u0447\u0435\u043c \u0442\u0443\u0442 \u0443\u0436\u0435 \u0443\u0447\u0442\u0435\u043d\u043e \u0447\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 &quot;.&quot; \u0438 &quot;,&quot; \u043f\u0435\u0440\u0435\u043f\u0443\u0442\u0430\u043d\u044b \u043c\u0435\u0441\u0442\u0430\u043c\u0438.<br \/>  \u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0440\u043c\u043b\u0438\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0443 BF \u0438 \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u0441\u0443\u043d\u0443\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0431\u0443\u0444\u0435\u0440 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u2014 \u043e\u043d \u0434\u0430\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f \ud83d\ude42<\/p>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438 \u043f\u0440\u043e \u0431\u0443\u0444\u0435\u0440 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u2014 \u0441\u043e\u0432\u0441\u0435\u043c \u0437\u0430\u0431\u044b\u043b \u043f\u0440\u043e \u044d\u0442\u043e \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c. \u041e\u043d \u0438\u0434\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u0432 \u0432\u0438\u0434\u0435 \u0431\u043b\u043e\u043a\u0430 \u0438\u0437 20 \u0431\u0430\u0439\u0442, \u0433\u0434\u0435 \u043f\u0435\u0440\u0432\u044b\u0435 10 \u0431\u0430\u0439\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 \u043b\u043e\u0433\u0438\u043d\u0430 (\u0435\u0441\u043b\u0438 \u043b\u043e\u0433\u0438\u043d \u043c\u0435\u043d\u044c\u0448\u0435 10 \u0431\u0430\u0439\u0442, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0430\u0439\u0442\u044b \u0440\u0430\u0432\u043d\u044b \u043d\u0443\u043b\u044e), \u0430 \u0441\u0440\u0430\u0437\u0443 \u0437\u0430 \u043d\u0438\u043c\u0438 \u0438\u0434\u0443\u0442 10 \u0431\u0430\u0439\u0442 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0433\u043e HEX \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u0431\u0430\u0439\u0442.<\/p>\n<p>  \u0422.\u0435. \u0434\u043b\u044f \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u043d\u0430\u043c \u00abMs-Rem\u00bb \u0438 \u00abC38FB7A0CF38F73B1159\u00bb \u0431\u0443\u0444\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c:<\/p>\n<p>  (&#8216;M&#8217;, &#8216;s&#8217;, &#8216;-&#8216;, &#8216;R&#8217;, &#8216;e&#8217;, &#8216;m&#8217;, 0, 0, 0, 0, $C3, $8F, $B7, $A0, $CF, $38, $F7, $3B, $11, $59)<\/p>\n<p>  \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u043f\u043e\u0434 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u043e\u043c, \u043f\u043e\u0434\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u0434\u0430\u043d\u043d\u044b\u0435, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u00abarg_\u0421\u00bb.<\/p>\n<p>  \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 BF \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u0443\u0444\u0435\u0440 \u0432 300000 \u0431\u0430\u0439\u0442 (\u043f\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u0432 \u0432\u0438\u043a\u0438), \u043d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u043e\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0432\u0441\u0435\u0433\u043e 221 \u0431\u0430\u0439\u0442 \u0438\u0437 300000.<\/p>\n<p>  \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0438\u0448\u0435\u043c \u043a\u043e\u0434.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0430\u043c \u043d\u0443\u0436\u043d\u044b 4 \u0431\u0443\u0444\u0435\u0440\u0430, \u0434\u043b\u044f \u043f\u0438\u043a\u043e\u0434\u0430, \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 VM, \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0431\u0443\u0444\u0435\u0440\u0430.<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"delphi\">const   PicodeBuffSize = 15778;   var   \/\/ \u0411\u0443\u0444\u0435\u0440 \u0441 \u043f\u0438\u043a\u043e\u0434\u043e\u043c   PicodeBuff: array [0..PicodeBuffSize - 1] of Byte;   PicodeIndex: Integer;   \/\/ \u0411\u0443\u0444\u0435\u0440 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b VM   WorkBuff: array [0..220] of Byte;   WorkBuffIndex: Integer;   \/\/ \u0412\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0431\u0443\u0444\u0435\u0440   OutputBuff: array [0..39] of AnsiChar;   OutputBuffIndex: Integer;   \/\/ \u0411\u0443\u0444\u0435\u0440 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c   LoginAndPwd: array [0..29] of AnsiChar;   LoginAndPwdIndex: Integer; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u0438\u043a\u043e\u0434 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0444\u0435\u0440 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"delphi\">procedure InitVM; var   M: TMemoryStream; begin   M := TMemoryStream.Create;   try     M.LoadFromFile('..\\..\\data\\vm.brainfuck');     M.Read(PicodeBuff[0], PicodeBuffSize);   finally     M.Free;   end; end;   procedure InitLoginAndPwd(const Login, Password: AnsiString); var   I: Integer;   A, B: Byte; begin   \/\/ \u041a\u043e\u043b\u0438\u0440\u0443\u0435\u043c \u043b\u043e\u0433\u0438\u043d   Move(Login[1], LoginAndPwd[0], Length(Login));   Move(Password[1], LoginAndPwd[10], Min(Length(Password), 20));   \/\/ \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0431\u0443\u0444\u0435\u0440 \u0441 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c   for I := 0 to 9 do   begin     A := Byte(LoginAndPwd[10 + I * 2]);     B := Byte(LoginAndPwd[11 + I * 2]);     if A &gt; $39 then       Dec(A, $37)     else       Dec(A, $30);     if B &gt; $39 then       Dec(B, $37)     else       Dec(B, $30);     A := a shl 4;     A := A or B;     LoginAndPwd[10 + I] := AnsiChar(A);   end; end; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0430\u043c \u043a\u043e\u0434 \u0438\u043d\u0442\u0435\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"delphi\">procedure RunVM; var   I: Integer;   Count: Integer; begin   repeat     case PicodeBuff[PicodeIndex] of       Byte('&gt;'): Inc(WorkBuffIndex);       Byte('&lt;'): Dec(WorkBuffIndex);       Byte('+'): Inc(WorkBuff[WorkBuffIndex]);       Byte('-'): Dec(WorkBuff[WorkBuffIndex]);       Byte('.'):       begin         OutputBuff[OutputBuffIndex] := AnsiChar(WorkBuff[WorkBuffIndex]);         Inc(OutputBuffIndex);       end;       Byte(','):       begin         WorkBuff[WorkBuffIndex] := Byte(LoginAndPwd[LoginAndPwdIndex]);         Inc(LoginAndPwdIndex);       end;       Byte('['):       begin         if WorkBuff[WorkBuffIndex] &lt;&gt; 0 then         begin           Inc(PicodeIndex);           Continue;         end;         Count := 1;         for I := PicodeIndex + 1 to PicodeBuffSize - 1 do         begin           if PicodeBuff[I] = Byte('[') then           begin             Inc(Count);             Continue;           end;           if PicodeBuff[I] = Byte(']') then           begin             Dec(Count);             if Count = 0 then             begin               PicodeIndex := I;               Break;             end;           end;         end;       end;       Byte(']'):       begin         if WorkBuff[WorkBuffIndex] = 0 then         begin           Inc(PicodeIndex);           Continue;         end;         Count := 1;         for I := PicodeIndex - 1 downto 0 do         begin           if PicodeBuff[I] = Byte(']') then           begin             Inc(Count);             Continue;           end;           if PicodeBuff[I] = Byte('[') then           begin             Dec(Count);             if Count = 0 then             begin               PicodeIndex := I;               Break;             end;           end;         end;       end;     end;     Inc(PicodeIndex);   until PicodeIndex = PicodeBuffSize; end; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0441\u0435 \u044d\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c:<\/p>\n<pre><code class=\"delphi\">InitVM; InitLoginAndPwd('Ms-Rem', 'C38FB7A0CF38F73B1159'); RunVM; Writeln(PAnsiChar(@OutputBuff[0])); Readln; <\/code><\/pre>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"\/\/habrastorage.org\/files\/680\/b3b\/ff6\/680b3bff66eb42e48902c33547309cdb.png\"\/><\/div>\n<p>  \u041d\u0443 \u0447\u0442\u043e \u0436, \u043f\u043e\u0445\u043e\u0436\u0435 \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430\u0434\u043e.<br \/>  (\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 <a href=\"http:\/\/rouse.drkb.ru\/blog\/vm_analize.zip\">\u0432 \u0430\u0440\u0445\u0438\u0432\u0435 c \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438<\/a> &#8216;.\\tools\\bf_execute\\&#8217;)<\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u2014 \u0432\u0442\u043e\u0440\u043e\u0439 \u043a\u043e\u043d\u0432\u0435\u0440\u0442 \u0441\u043d\u044f\u0442.<\/p>\n<p>  \u041d\u043e \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u0441\u043e \u0432\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u0434\u0435\u043b\u0430\u0442\u044c?<br \/>  \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0431 \u043f\u0438\u043a\u043e\u0434 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u2014 \u043d\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u044d\u0442\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u044f\u0447\u0435\u0435\u043a \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u0438 \u0438\u0437 \u043a\u0430\u043a\u0438\u0445 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<p>  \u0421\u0442\u0430\u0432\u0438\u043c \u0412\u0420 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u0445 \u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0432\u044b\u0439\u0434\u0435\u0442\u2026<\/p>\n<p>  \u0414\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e, \u0432 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043a\u043e\u0433\u0434\u0430 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430, \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0430\u0439\u0442 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u043d\u043e\u043c\u0435\u0440 \u0448\u0435\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430.<br \/>  \u0422\u043e \u0436\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438 \u0441 \u0432\u044b\u0432\u043e\u0434\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 VM, \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a \u0436\u0435 \u0438\u0437 \u044f\u0447\u0435\u0439\u043a\u0438 \u043d\u043e\u043c\u0435\u0440 \u0448\u0435\u0441\u0442\u044c.<\/p>\n<p>  \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u0445\u043e\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u043f\u0440\u043e\u044f\u0441\u043d\u0438\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443, \u044d\u0442\u043e \u0434\u0430\u043c\u043f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u044b\u0432\u043e\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u043d\u0435\u0433\u043e:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"\/\/habrastorage.org\/files\/d3e\/5a8\/434\/d3e5a8434fe74f859261019d0815829a.png\"\/><\/div>\n<p>  \u0422\u0443\u0442 \u0445\u043e\u0442\u044f \u0431\u044b \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u0431\u0443\u0444\u0435\u0440\u0435 VM \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c, \u0430 \u0442\u0430\u043a-\u0436\u0435 \u0447\u0443\u0442\u044c \u043d\u0438\u0436\u0435 \u043d\u0435\u0433\u043e \u0434\u0432\u0435 \u0443\u0436\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u00ab\u0445\u043e\u0440\u043e\u0448\u0438\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c\u00bb \u0438 \u00ab\u043f\u043b\u043e\u0445\u0438\u043c\u00bb.<br \/>  \u0410 \u0432 \u0448\u0435\u0441\u0442\u043e\u0439 \u044f\u0447\u0435\u0439\u043a\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430 (\u0432\u0442\u043e\u0440\u0430\u044f \u0441\u043f\u0440\u0430\u0432\u0430 \u0441\u0432\u0435\u0440\u0445\u0443) \u0443\u0436\u0435 \u0441\u0438\u0434\u0438\u0442 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u00ab\u0421\u00bb \u0438\u0437 \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u00abCongratulations!!! It is valid serial!\u00bb<\/p>\n<p>  \u0412\u043e\u0442 \u0442\u0430\u043a\u0430\u044f \u0437\u0430\u0441\u0430\u0434\u0430.<\/p>\n<h4>8. \u041f\u0438\u0448\u0435\u043c \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 Brainfuck<\/h4>\n<p>  \u0427\u0442\u043e \u0435\u0441\u0442\u044c \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440?<br \/>  \u041f\u043e \u0441\u0443\u0442\u0438, \u044d\u0442\u043e \u0443\u0442\u0438\u043b\u0438\u0442\u0430, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0449\u0430\u044f \u043d\u0430\u0431\u043e\u0440 \u043c\u0430\u0448\u043a\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0432 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443 \u043d\u0430\u0431\u043e\u0440 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0432\u043e\u0439 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 (32\/64\/ARM \u0438 \u0442.\u0434.). \u041d\u0443 \u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 (\u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u043e\u0441\u044c \u0440\u0430\u043d\u0435\u0435) \u0442\u043e\u0442 \u0436\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0445 \u0432 \u0432\u0438\u0434\u0435 \u043f\u0438\u043a\u043e\u0434\u0430.<\/p>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0430, \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u0438\u043a\u043e\u0434\u0430 \u0432 32-\u0431\u0438\u0442\u043d\u044b\u0439 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0445\u043e\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0431\u043b\u0430\u0433\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u2014 \u044d\u0442\u043e \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a.<br \/>  \u041f\u0440\u0438\u0447\u0435\u043c \u0437\u0430\u0434\u0430\u0447\u0430 \u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u043f\u0440\u043e\u0441\u0442\u0430\u044f, \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u044b, \u043f\u0430\u0440\u0441\u0438\u0442\u044c ModRM\/SIB \u2014 \u0432\u0441\u0435\u0433\u043e-\u0442\u043e \u0432\u043e\u0441\u0435\u043c\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c.<\/p>\n<p>  \u0414\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0431 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0443\u0434\u0430\u0447\u043d\u043e\u0439 \u0437\u0430\u0442\u0435\u0435\u0439, \u043d\u0443\u0436\u043d\u043e \u0441\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u0438\u043a\u043e\u0434\u0430 BF<\/p>\n<p>  \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c brainfuck \u0441\u043a\u0440\u0438\u043f\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u0432\u0438\u0434\u0430: &quot;&gt;&gt;&gt;+++&lt;&lt;&#8212;-&quot;<\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043e\u0439 \u044f\u0447\u0435\u0439\u043a\u0435, \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0442\u0440\u0438, \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0435.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u043e\u0431, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u043d\u0435\u0432\u043d\u044f\u0442\u043d\u043e\u0435:<\/p>\n<pre><code class=\"delphi\">inc eax inc eax inc eax inc byte ptr [eax] inc byte ptr [eax] inc byte ptr [eax] dec eax dec eax dec byte ptr [eax] dec byte ptr [eax] dec byte ptr [eax] dec byte ptr [eax] <\/code><\/pre>\n<p>  \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u0440\u043e\u0449\u0435 \u0441\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430\u0431\u043e\u0440\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439:<\/p>\n<pre><code class=\"delphi\">add eax, 3 add byte ptr [eax], 3 sub eax, 2 sub byte ptr [eax], 4 <\/code><\/pre>\n<p>  \u0412\u0432\u043e\u0434 \u0438 \u0432\u044b\u0432\u043e\u0434 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e.<br \/>  \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0442\u044c \u043e\u0442\u043a\u0443\u0434\u0430 \u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u043a\u0443\u0434\u0430 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c. \u041f\u0440\u0438\u0447\u0435\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u0432\u044b\u0432\u043e\u0434\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0432\u0438\u0433\u0430\u0442\u044c \u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043e \u0438\u043b\u0438 \u043d\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u0432\u0435\u0440\u0445 \u0443\u0436\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e.<\/p>\n<p>  \u041e\u0441\u0442\u0430\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u043e \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438.<br \/>  \u0421\u043a\u043e\u0431\u043a\u0438 \u0432 BF \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0430\u043d\u0430\u043b\u043e\u0433 \u0446\u0438\u043a\u043b\u0430 while, \u0442.\u0435. \u043f\u043e\u043a\u0430 \u044f\u0447\u0435\u0439\u043a\u0430 \u043d\u0435 \u0440\u0430\u0432\u043d\u0430 \u043d\u0443\u043b\u044e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0442\u0435\u043b\u0430 \u0446\u0438\u043a\u043b\u0430.<br \/>  \u0417\u0430 \u0432\u0445\u043e\u0434 \u0432 \u0442\u0435\u043b\u043e \u0446\u0438\u043a\u043b\u0430 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u0441\u043a\u043e\u0431\u043a\u0430 &quot;[&quot;, \u0437\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e, \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0430\u044f &quot;]&quot;.<\/p>\n<p>  \u0422.\u0435. \u0433\u0440\u0443\u0431\u043e \u0432 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0432\u0430 \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430, \u043e\u0434\u0438\u043d \u043d\u0430 \u0432\u0445\u043e\u0434 \u0432 \u0446\u0438\u043a\u043b, \u043e\u0434\u0438\u043d \u043d\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e.<br \/>  \u0414\u043e \u043a\u0443\u0447\u0438 \u043d\u0443\u0436\u0435\u043d \u0435\u0449\u0435 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0434\u043d\u0430 \u0432\u0435\u0449\u044c, \u044d\u0442\u043e \u0430\u0434\u0440\u0435\u0441, \u043a\u0443\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0435\u0441\u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432 \u0446\u0438\u043a\u043b \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u043e\u0441\u044c, \u0438\u043b\u0438 \u0435\u0441\u043b\u0438 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u043e\u0441\u044c \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e \u0446\u0438\u043a\u043b\u0430.<\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0446\u0438\u043a\u043b\u043e\u0432, \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435 \u0442\u0440\u0435\u0445 \u043f\u0440\u044b\u0436\u043a\u043e\u0432.<\/p>\n<p>  \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0435\u0441\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043f\u0438\u043a\u043e\u0434:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/0dc\/629\/de9\/0dc629de9911a57ef59d562876794c9e.png\"\/><\/div>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u0434\u043b\u044f \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0434\u043b\u044f \u043c\u0435\u043d\u044f) \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043d\u043e\u0441 \u0442\u0435\u043b\u0430 \u0446\u0438\u043a\u043b\u0430 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/7c1\/958\/ac3\/7c1958ac3d517f237b1fe742f604a408.png\"\/><\/div>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442\u044c \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0442\u043e \u043e\u0442 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u043d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446 \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0438 \u0432 \u0446\u0438\u043a\u043b\u0435 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043b\u043e \u043a\u0430\u0436\u0434\u043e\u0439, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0432 \u043d\u0443\u0436\u043d\u044b\u0435 \u043c\u0435\u0441\u0442\u0430 \u043f\u0440\u044b\u0436\u043a\u0438 \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0446\u0438\u043a\u043b\u044b.<\/p>\n<p>  \u0417\u042b: \u041f\u0440\u0430\u0432\u0434\u0430, \u0432\u043e\u0442 \u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u043c\u043e\u0442\u0440\u044e \u043d\u0430 \u044d\u0442\u0443 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u044e \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0438 \u043d\u0435 \u0441\u0442\u043e\u0438\u043b\u043e \u0432\u044b\u043d\u043e\u0441\u0438\u0442\u044c, \u0438\u0431\u043e \u043b\u0438\u0448\u043d\u0438\u0439 \u043f\u0440\u044b\u0436\u043e\u043a \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f, \u043d\u043e\u2026 \u043b\u0435\u043d\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \ud83d\ude42<\/p>\n<p>  \u041d\u0443 \u0434\u0430 \u043b\u0430\u0434\u043d\u043e, \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430 \u0438 \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e\/\u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u043e\u0432: \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0431\u0443\u0444\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440 ESI, \u043e\u043d \u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0438 \u043a\u0443\u0440\u0441\u043e\u0440\u043e\u043c, \u0442.\u0435. \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 &quot;&gt;&quot; \u0438\u043b\u0438 &quot;&lt;&quot; \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440.<br \/>  \u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0431\u0443\u0444\u0435\u0440 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 EBX, \u0430 \u0437\u0430 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0431\u0443\u0444\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 EDI.<\/p>\n<p>  \u041f\u0438\u0448\u0435\u043c \u043a\u043e\u0434.<\/p>\n<p>  \u0414\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u0443\u0444\u0435\u0440 \u0441 \u043f\u0438\u043a\u043e\u0434\u043e\u043c \u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446 \u043a\u0430\u0436\u0434\u043e\u0433\u043e While \u0446\u0438\u043a\u043b\u0430.<\/p>\n<pre><code class=\"delphi\">var   PicodeBuffSize: Integer;   PicodeBuff: array of Byte;   type   TWhileSubProc = record     StartAddr, EndAddr: Integer;     SubProcEndLabel, SubProcStartLabel: string;   end;   TWhileSubProcList = TList&lt;TWhileSubProc&gt;; <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043d\u0443\u0436\u043d\u044b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0442\u0438\u043b\u0438\u0442\u0430\u0440\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440. <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u0438\u0442 \u0441\u0430\u043c \u0441\u043f\u0438\u0441\u043e\u043a, \u0430 \u0432\u0442\u043e\u0440\u0430\u044f \u0438 \u0442\u0440\u0435\u0442\u044c\u044f, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u0443\u044f\u0441\u044c \u043d\u0430 \u043f\u043e\u043b\u044f StartAddr \u0438 EndAddr.<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"delphi\">function GetWhileSubProcList: TWhileSubProcList; var   I, A, Z: Integer;   Item: TWhileSubProc; begin   Result := TWhileSubProcList.Create;   for I := 0 to PicodeBuffSize - 1 do     if PicodeBuff[I] = Byte('[') then     begin       Item.StartAddr := I;       Z := 1;       for A := I + 1 to PicodeBuffSize - 1 do       begin         if PicodeBuff[A] = Byte('[') then         begin           Inc(Z);           Continue;         end;         if PicodeBuff[A] = Byte(']') then         begin           Dec(Z);           if Z = 0 then           begin             Item.EndAddr := A;             Break;           end;         end;       end;       Result.Add(Item);     end; end;   function IndexAtStart(List: TWhileSubProcList; Value: Integer): Integer; var   I: Integer; begin   Result := -1;   for I := 0 to List.Count - 1 do     if List[I].StartAddr = Value then       Exit(I); end;   function IndexAtEnd(List: TWhileSubProcList; Value: Integer): Integer; var   I: Integer; begin   Result := -1;   for I := 0 to List.Count - 1 do     if List[I].EndAddr = Value then       Exit(I); end; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 &#8212; \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u0432\u043d\u0435 While \u0431\u043b\u043e\u043a\u0430:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"delphi\">procedure DecodeSubRoutine(List: TWhileSubProcList; Index: Integer);     function GetCharSimbol(Value: Integer): string;   begin     if Value &lt; 32 then       Result := ' \/\/ #' + IntToHex(Abs(Value), 2)     else       Result := string(' \/\/ char &quot;' + AnsiChar(Value) + '&quot;');   end;   const   LabelPfx = '@vm_code_'; var   Count, I: Integer;   SubRoutineName: string;   Item: TWhileSubProc; begin   if Index &gt;= 0 then   begin     \/\/ \u0435\u0441\u043b\u0438 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c while \u0446\u0438\u043a\u043b, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0435\u043c\u0443 \u0438\u043c\u044f \u043f\u043e \u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0443     PicodeIndex := List[Index].StartAddr;     SubRoutineName := LabelPfx + IntToHex(PicodeIndex, 4);     MakeAsmCode(SubRoutineName + ':');     Inc(PicodeIndex);   end   else     \/\/ \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0434\u0435\u0442 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0441\u0430\u043c\u043e\u0439 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0432\u0435\u0442\u0432\u0438 \u043f\u0438\u043a\u043e\u0434\u0430     SubRoutineName := '@root';   repeat     case PicodeBuff[PicodeIndex] of         \/\/ \u0441\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0438\u0434\u0443\u0449\u0438\u0435 \u043f\u043e\u0434\u0440\u044f\u0434 \u043f\u043e\u0434\u0432\u0438\u0436\u043a\u0438 \u043a\u0443\u0440\u0441\u043e\u0440\u0430       Byte('&gt;'), Byte('&lt;'):       begin         Count := 0;         while PicodeBuff[PicodeIndex] in [Byte('&gt;'), Byte('&lt;')] do         begin           if PicodeBuff[PicodeIndex] = Byte('&gt;') then             Inc(Count)           else             Dec(Count);           Inc(PicodeIndex);         end;           if Count = 0 then Continue;         if Count &lt; 0 then         begin           if Count = -1 then             MakeAsmCode('  dec esi')           else             MakeAsmCode('  sub esi, ' + IntToStr(Abs(Count)));         end;         if Count &gt; 0 then         begin           if Count = 1 then             MakeAsmCode('  inc esi')           else             MakeAsmCode('  add esi, ' + IntToStr(Count));         end;         Continue;       end;         \/\/ \u0441\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0438\u0434\u0443\u0449\u0438\u0435 \u043f\u043e\u0434\u0440\u044f\u0434 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u044f\u0447\u0435\u0439\u043a\u0438       Byte('+'), Byte('-'):       begin         Count := 0;         while PicodeBuff[PicodeIndex] in [Byte('+'), Byte('-')] do         begin           if PicodeBuff[PicodeIndex] = Byte('+') then             Inc(Count)           else             Dec(Count);           Inc(PicodeIndex);         end;           if Count = 0 then Continue;         if Count &lt; 0 then         begin           if Count = -1 then             MakeAsmCode('  dec byte ptr [esi]')           else             MakeAsmCode('  sub byte ptr [esi], ' +               IntToStr(Abs(Count)) + GetCharSimbol(Count));         end;         if Count &gt; 0 then         begin           if Count = 1 then             MakeAsmCode('  inc byte ptr [esi]')           else             MakeAsmCode('  add byte ptr [esi], ' +               IntToStr(Count) + GetCharSimbol(Count));         end;         Continue;       end;         \/\/ \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438       Byte('.'):       begin         MakeAsmCode('  mov al, byte ptr [esi]');         MakeAsmCode('  mov byte ptr [edi], al');         MakeAsmCode('  inc edi');       end;         \/\/ \u0437\u0430\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430       Byte(','):       begin         MakeAsmCode('  mov al, byte ptr [ebx]');         MakeAsmCode('  inc ebx');         MakeAsmCode('  mov byte ptr [esi], al');       end;         \/\/ \u0432\u0445\u043e\u0434 \u0432 \u0446\u0438\u043a\u043b While       Byte('['):       begin         I := IndexAtStart(List, PicodeIndex);         Item := List[I];         MakeAsmCode('  cmp byte ptr [esi], 0 \/\/ [');         Item.SubProcEndLabel :=           SubRoutineName + '_' + IntToHex(PicodeIndex + 1, 4);         Item.SubProcStartLabel := LabelPfx + IntToHex(PicodeIndex, 4);           \/\/ \u0435\u0441\u043b\u0438 \u043d\u0435 \u043d\u043e\u043b\u044c, \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u043f\u043e\u0434\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b         \/\/ \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0437\u0430 \u044d\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439 \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u0434 \u0438\u0434\u0443\u0449\u0438\u0439 \u0437\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0441\u043a\u043e\u0431\u043a\u043e\u0439         MakeAsmCode('  jne ' + Item.SubProcStartLabel);           MakeAsmCode(Item.SubProcEndLabel + ':');         PicodeIndex := Item.EndAddr + 1;         List[I] := Item;         Continue;       end;         \/\/ \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e       Byte(']'):       begin         I := IndexAtEnd(List, PicodeIndex);         MakeAsmCode('  cmp byte ptr [esi], 0 \/\/ ]');           \/\/ \u0435\u0441\u043b\u0438 \u043d\u0435 \u043d\u043e\u043b\u044c, \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u043f\u043e\u0434\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b         MakeAsmCode('  jne ' + List[I].SubProcStartLabel);           \/\/ \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u043a\u043e\u0434 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0437\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0434\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b         MakeAsmCode('  jmp ' + List[I].SubProcEndLabel);           \/\/ \u043f\u043e\u0434\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0430\u0441\u044c - \u0438\u0434\u0435\u043c \u043d\u0430 \u0432\u044b\u0445\u043e\u0434         Exit;       end;     end;     Inc(PicodeIndex);   until PicodeIndex = PicodeBuffSize;     \/\/ \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442 \u043a\u043e\u043d\u0435\u0446 \u043f\u0438\u043a\u043e\u0434\u0430, \u043f\u0438\u0448\u0435\u043c \u0444\u0438\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e   MakeAsmCode('  popa');   MakeAsmCode('  ret'); end; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0432 \u0446\u0438\u043a\u043b\u0435 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e \u043a\u0430\u0436\u0434\u043e\u0433\u043e While \u0431\u043b\u043e\u043a\u0430:<\/p>\n<pre><code class=\"delphi\">procedure DecodeVM; var   I: Integer;   List: TWhileSubProcList; begin   MakeAsmCode('procedure RunBrainfuck(pWorkBuff, pInBuf, pOutBuf: Pointer);');   MakeAsmCode('asm');   MakeAsmCode('  pusha');   MakeAsmCode('  mov esi, pWorkBuff');   MakeAsmCode('  mov ebx, pInBuf');   MakeAsmCode('  mov edi, pOutBuf');   List := GetWhileSubProcList;   try     DecodeSubRoutine(List, -1);     for I := 0 to List.Count - 1 do       DecodeSubRoutine(List, I);   finally     List.Free;   end;   MakeAsmCode('end;'); end; <\/code><\/pre>\n<p>  \u0418 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e:<\/p>\n<pre><code class=\"delphi\">function InitPicode: Boolean; var   M: TMemoryStream; begin   Result := False;   if (ParamCount = 0) or not FileExists(ParamStr(1)) then   begin     Writeln('Brainfuck file not found.');     Exit;   end;   M := TMemoryStream.Create;   try     M.LoadFromFile(ParamStr(1));     PicodeBuffSize := M.Size;     SetLength(PicodeBuff, PicodeBuffSize);     M.ReadBuffer(PicodeBuff[0], PicodeBuffSize);     Result := True;   finally     M.Free;   end; end;   begin   if InitPicode then   begin     AsmCode := TFileStream.Create(ChangeFileExt(ParamStr(1), '.inc'), fmCreate);     try       DecodeVM;     finally       AsmCode.Free;     end;     Writeln('Done.');   end;   Readln; end. <\/code><\/pre>\n<p>  (\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 <a href=\"http:\/\/rouse.drkb.ru\/blog\/vm_analize.zip\">\u0432 \u0430\u0440\u0445\u0438\u0432\u0435 c \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438<\/a> &#8216;.\\tools\\bf_decompiler\\&#8217;)<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430 \u0447\u0435\u043c \u043d\u0438\u0431\u0443\u0434\u044c.<br \/>  \u0412\u043e\u0437\u044c\u043c\u0435\u043c \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 Hello World \u0438\u0437 \u0432\u0438\u043a\u0438 \u0441 \u0442\u0430\u043a\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435\u043c:<\/p>\n<blockquote><p> ++++++++++[&gt;+++++++&gt;++++++++++&gt;+++&gt;+&lt;&lt;&lt;&lt;-]&gt;++<br \/>   .&gt;+.+++++++..+++.&gt;++.&lt;&lt;+++++++++++++++.&gt;.+++.<br \/>   &#8212;&#8212;.&#8212;&#8212;&#8212;.&gt;+.&gt;.<\/p><\/blockquote>\n<p>  \u0418 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0432\u043e \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f:<\/p>\n<pre><code class=\"delphi\">procedure RunBrainfuck(pWorkBuff, pInBuf, pOutBuf: Pointer); asm   pusha   mov esi, pWorkBuff   mov ebx, pInBuf   mov edi, pOutBuf   add byte ptr [esi], 10 \/\/ #0A   cmp byte ptr [esi], 0 \/\/ [   jne @vm_code_000B @root_000C:   inc esi   add byte ptr [esi], 2 \/\/ #02   mov al, byte ptr [esi]   mov byte ptr [edi], al   inc edi   inc esi   inc byte ptr [esi]   mov al, byte ptr [esi]   mov byte ptr [edi], al   inc edi   add byte ptr [esi], 7 \/\/ #07   mov al, byte ptr [esi]   mov byte ptr [edi], al   inc edi   mov al, byte ptr [esi]   mov byte ptr [edi], al   inc edi   add byte ptr [esi], 3 \/\/ #03   mov al, byte ptr [esi]   mov byte ptr [edi], al   inc edi   inc esi   add byte ptr [esi], 2 \/\/ #02   mov al, byte ptr [esi]   mov byte ptr [edi], al   inc edi   sub esi, 2   add byte ptr [esi], 15 \/\/ #0F   mov al, byte ptr [esi]   mov byte ptr [edi], al   inc edi   inc esi   mov al, byte ptr [esi]   mov byte ptr [edi], al   inc edi   add byte ptr [esi], 3 \/\/ #03   mov al, byte ptr [esi]   mov byte ptr [edi], al   inc edi   sub byte ptr [esi], 6 \/\/ #06   mov al, byte ptr [esi]   mov byte ptr [edi], al   inc edi   sub byte ptr [esi], 8 \/\/ #08   mov al, byte ptr [esi]   mov byte ptr [edi], al   inc edi   inc esi   inc byte ptr [esi]   mov al, byte ptr [esi]   mov byte ptr [edi], al   inc edi   inc esi   mov al, byte ptr [esi]   mov byte ptr [edi], al   inc edi   popa   ret @vm_code_000B:   inc esi   add byte ptr [esi], 7 \/\/ #07   inc esi   add byte ptr [esi], 10 \/\/ #0A   inc esi   add byte ptr [esi], 3 \/\/ #03   inc esi   inc byte ptr [esi]   sub esi, 4   dec byte ptr [esi]   cmp byte ptr [esi], 0 \/\/ ]   jne @vm_code_000B   jmp @root_000C end; <\/code><\/pre>\n<p>  \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u043e\u0445\u043e\u0436\u0435. \u0421\u043e\u0433\u043b\u0430\u0441\u0435\u043d, \u043c\u043e\u0436\u043d\u043e \u0438 \u043f\u043e\u0434\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043d\u043e \u043d\u0435 \u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0430.<br \/>  \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u043f\u0438\u0448\u0435\u043c \u0442\u0435\u0441\u0442:<\/p>\n<pre><code class=\"delphi\">program hello_world_test;   {$APPTYPE CONSOLE}   {$R *.res}   {$I ..\\..\\data\\helloworld.inc}   var   WorkBuff: array [0..300000] of Byte;   OutBuf: array [0..100] of Byte; begin   RunBrainfuck(@WorkBuff[0], nil, @OutBuf[0]);   Writeln(PAnsiChar(@OutBuf[0]));   Readln; end. <\/code><\/pre>\n<p>  \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/72d\/76d\/57c\/72d76d57c015a9e1e5d5aee6e27f105c.png\"\/><\/div>\n<p>  \u041d\u0443 \u0447\u0442\u043e \u0436, \u043d\u0435 \u043f\u043b\u043e\u0445\u043e.<br \/>  \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0442\u043e \u0447\u0442\u043e \u0438 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u043e\u0441\u044c, \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u0442\u0435\u043b\u043e \u0441\u0430\u043c\u043e\u0439 VM.<\/p>\n<p>  \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c 8153 \u0441\u0442\u0440\u043e\u0447\u0435\u043a \u0447\u0438\u0441\u0442\u0435\u0439\u0448\u0435\u0433\u043e \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \ud83d\ude42<br \/>  (\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 VM<a href=\"http:\/\/rouse.drkb.ru\/blog\/vm_analize.zip\"> \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 c \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438<\/a> &#8216;.\\data\\vm.inc&#8217;)<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0411\u0435\u0433\u043b\u043e \u043f\u0440\u043e\u0431\u0435\u0436\u0430\u0432 \u0435\u0433\u043e \u0433\u043b\u0430\u0437\u043a\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 &#39;\u0445\u043e\u0440\u043e\u0448\u0435\u0439&#39; \u0438 &#39;\u043f\u043b\u043e\u0445\u043e\u0439&#39; \u0441\u0442\u0440\u043e\u0447\u0435\u043a \u0432\u043d\u0443\u0442\u0440\u0438 vm_code_001B_001D:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"delphi\">@vm_code_001B_001D:   add esi, 105   add byte ptr [esi], 67 \/\/ char &quot;C&quot;   add esi, 2   add byte ptr [esi], 111 \/\/ char &quot;o&quot;   add esi, 2   add byte ptr [esi], 110 \/\/ char &quot;n&quot;   add esi, 2   add byte ptr [esi], 103 \/\/ char &quot;g&quot;   add esi, 2   add byte ptr [esi], 114 \/\/ char &quot;r&quot;   add esi, 2   add byte ptr [esi], 97 \/\/ char &quot;a&quot;   add esi, 2   add byte ptr [esi], 116 \/\/ char &quot;t&quot;   add esi, 2   add byte ptr [esi], 117 \/\/ char &quot;u&quot;   add esi, 2   add byte ptr [esi], 108 \/\/ char &quot;l&quot;   add esi, 2   add byte ptr [esi], 97 \/\/ char &quot;a&quot;   add esi, 2   add byte ptr [esi], 116 \/\/ char &quot;t&quot;   add esi, 2   add byte ptr [esi], 105 \/\/ char &quot;i&quot;   add esi, 2   add byte ptr [esi], 111 \/\/ char &quot;o&quot;   add esi, 2   add byte ptr [esi], 110 \/\/ char &quot;n&quot;   add esi, 2   add byte ptr [esi], 115 \/\/ char &quot;s&quot;   add esi, 2   add byte ptr [esi], 33 \/\/ char &quot;!&quot;   add esi, 2   add byte ptr [esi], 33 \/\/ char &quot;!&quot;   add esi, 2   add byte ptr [esi], 33 \/\/ char &quot;!&quot;   add esi, 2   add byte ptr [esi], 32 \/\/ char &quot; &quot;   add esi, 2   add byte ptr [esi], 73 \/\/ char &quot;I&quot;   add esi, 2   add byte ptr [esi], 116 \/\/ char &quot;t&quot;   add esi, 2   add byte ptr [esi], 32 \/\/ char &quot; &quot;   add esi, 2   add byte ptr [esi], 105 \/\/ char &quot;i&quot;   add esi, 2   add byte ptr [esi], 115 \/\/ char &quot;s&quot;   add esi, 2   add byte ptr [esi], 32 \/\/ char &quot; &quot;   add esi, 2   add byte ptr [esi], 118 \/\/ char &quot;v&quot;   add esi, 2   add byte ptr [esi], 97 \/\/ char &quot;a&quot;   add esi, 2   add byte ptr [esi], 108 \/\/ char &quot;l&quot;   add esi, 2   add byte ptr [esi], 105 \/\/ char &quot;i&quot;   add esi, 2   add byte ptr [esi], 100 \/\/ char &quot;d&quot;   add esi, 2   add byte ptr [esi], 32 \/\/ char &quot; &quot;   add esi, 2   add byte ptr [esi], 115 \/\/ char &quot;s&quot;   add esi, 2   add byte ptr [esi], 101 \/\/ char &quot;e&quot;   add esi, 2   add byte ptr [esi], 114 \/\/ char &quot;r&quot;   add esi, 2   add byte ptr [esi], 105 \/\/ char &quot;i&quot;   add esi, 2   add byte ptr [esi], 97 \/\/ char &quot;a&quot;   add esi, 2   add byte ptr [esi], 108 \/\/ char &quot;l&quot;   add esi, 2   add byte ptr [esi], 33 \/\/ char &quot;!&quot;   add esi, 4   add byte ptr [esi], 83 \/\/ char &quot;S&quot;   add esi, 2   add byte ptr [esi], 101 \/\/ char &quot;e&quot;   add esi, 2   add byte ptr [esi], 114 \/\/ char &quot;r&quot;   add esi, 2   add byte ptr [esi], 105 \/\/ char &quot;i&quot;   add esi, 2   add byte ptr [esi], 97 \/\/ char &quot;a&quot;   add esi, 2   add byte ptr [esi], 108 \/\/ char &quot;l&quot;   add esi, 2   add byte ptr [esi], 32 \/\/ char &quot; &quot;   add esi, 2   add byte ptr [esi], 105 \/\/ char &quot;i&quot;   add esi, 2   add byte ptr [esi], 110 \/\/ char &quot;n&quot;   add esi, 2   add byte ptr [esi], 118 \/\/ char &quot;v&quot;   add esi, 2   add byte ptr [esi], 97 \/\/ char &quot;a&quot;   add esi, 2   add byte ptr [esi], 108 \/\/ char &quot;l&quot;   add esi, 2   add byte ptr [esi], 105 \/\/ char &quot;i&quot;   add esi, 2   add byte ptr [esi], 100 \/\/ char &quot;d&quot;   add esi, 2   add byte ptr [esi], 32 \/\/ char &quot; &quot;   add esi, 2   add byte ptr [esi], 58 \/\/ char &quot;:&quot;   add esi, 2   add byte ptr [esi], 40 \/\/ char &quot;(&quot; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041d\u043e\u2026 \u0432\u0441\u0435 \u0442\u0430\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 8 \u0442\u044b\u0441\u044f\u0447 \u0441\u0442\u0440\u043e\u043a, \u0441 \u043d\u0430\u0441\u043a\u043e\u043a\u0430 \u0438\u0445 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f.<br \/>  \u041d\u0443\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0434\u0435\u043c\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0435\u0435 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 VM, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0439 \u043e\u0441\u0442\u0430\u0432\u0448\u0435\u0439\u0441\u044f \u0441\u0442\u0430\u0442\u044c\u0438.<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"delphi\">program decompiled_vm_test;   {$APPTYPE CONSOLE}   {$R *.res}   uses   Classes,   Math;   var   \/\/ \u0411\u0443\u0444\u0435\u0440 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b VM   WorkBuff: array [0..220] of Byte;   WorkBuffIndex: Integer;   \/\/ \u0412\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0431\u0443\u0444\u0435\u0440   OutputBuff: array [0..39] of AnsiChar;   OutputBuffIndex: Integer;   \/\/ \u0411\u0443\u0444\u0435\u0440 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c   LoginAndPwd: array [0..29] of AnsiChar;   LoginAndPwdIndex: Integer;   procedure InitLoginAndPwd(const Login, Password: AnsiString); var   I: Integer;   A, B: Byte; begin   \/\/ \u041a\u043e\u043b\u0438\u0440\u0443\u0435\u043c \u043b\u043e\u0433\u0438\u043d   Move(Login[1], LoginAndPwd[0], Length(Login));   Move(Password[1], LoginAndPwd[10], Min(Length(Password), 20));   \/\/ \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0431\u0443\u0444\u0435\u0440 \u0441 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c   for I := 0 to 9 do   begin     A := Byte(LoginAndPwd[10 + I * 2]);     B := Byte(LoginAndPwd[11 + I * 2]);     if A &gt; $39 then       Dec(A, $37)     else       Dec(A, $30);     if B &gt; $39 then       Dec(B, $37)     else       Dec(B, $30);     A := a shl 4;     A := A or B;     LoginAndPwd[10 + I] := AnsiChar(A);   end; end;   {$I ..\\..\\data\\vm.inc}   begin   InitLoginAndPwd('Ms-Rem', 'C38FB7A0CF38F73B1159');   RunBrainfuck(@WorkBuff[0], @LoginAndPwd[0], @OutputBuff[0]);   Writeln(PAnsiChar(@OutputBuff[0]));   Readln; end. <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0434\u0435\u043c\u043e\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u041c\u0410\u0420 \u0444\u0430\u0439\u043b\u0430 (\u0432 \u0440\u0435\u0436\u0438\u043c\u0435 Detailed), \u043e\u043d \u043d\u0430\u043c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0433\u043b\u0430\u0432\u0435.<\/p>\n<h4>9. \u041f\u0438\u0448\u0435\u043c \u0442\u0440\u0435\u0439\u0441\u0435\u0440<\/h4>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0443 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u041f\u0440\u0438\u0447\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u0438\u0435 \u0431\u043b\u043e\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0438 \u043a\u0443\u0434\u0430 \u0438\u0437 \u043d\u0438\u0445 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434.<\/p>\n<p>  \u0421\u0443\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u044b \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0433\u0440\u0430\u0444\u0430, \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u043a\u0443\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 (\u0433\u0440\u0443\u0431\u043e, \u0432 \u043f\u043e\u0434\u043e\u0431\u0438\u0435 \u0431\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u044b)<\/p>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a: <a href=\"http:\/\/habrahabr.ru\/post\/178159\/\">http:\/\/habrahabr.ru\/post\/178159\/<\/a><br \/>  \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u0441\u0441\u044b \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e \u0438\u0434\u0442\u0438 \u043f\u043e \u043a\u043e\u0434\u0443 \u0440\u0435\u0446\u0438\u043f\u0438\u0435\u043d\u0442\u0430, \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u044f\u0441\u044c \u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u043e\u043c\u0435\u0440\u0443 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0432 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u043c\u0438 \u0440\u0430\u043d\u0435\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0435.<br \/>  \u0414\u043b\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430 \u043a \u043d\u043e\u043c\u0435\u0440\u0443 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0432 asm \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u043e\u0434\u0443\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u041c\u0410\u0420 \u0444\u0430\u0439\u043b \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e<br \/>  \u0422\u0430\u043a\u0436\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043c\u043e\u0434\u0443\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e \u043d\u043e\u043c\u0435\u0440\u0443 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0432 asm \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0438\u043c\u044f \u043f\u043e\u0434\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430.<\/p>\n<p>  \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0434\u0432\u0443\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443 \u2014 \u043e\u043d\u0438 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0435, \u0432 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c<a href=\"http:\/\/rouse.drkb.ru\/blog\/vm_analize.zip\"> \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u043a \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u043f\u0443\u0442\u0438: &#8216;.\\tools\\tracer\\&#8217;.<\/p>\n<p>  \u0422\u0430\u043a \u0436\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0441\u0435\u0431\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0441\u043d\u044f\u0442\u043e\u0439 \u0442\u0440\u0430\u0441\u0441\u0435.<br \/>  \u0413\u0440\u0443\u0431\u043e \u0432\u0441\u044f \u0435\u0433\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u0432\u0438\u0434\u0430:<\/p>\n<pre><code class=\"delphi\">type   TTraceItem = record     SubName: string;     InList, OutList: TStringList;     CustomData: Pointer;   end; <\/code><\/pre>\n<p>  \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043c.<br \/>  \u0422\u0430\u043a\u0436\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e <a href=\"http:\/\/rouse.drkb.ru\/blog\/vm_analize.zip\">\u0432 \u0430\u0440\u0445\u0438\u0432\u0435<\/a> \u043f\u043e \u043f\u0443\u0442\u0438: &#8216;.\\tools\\common\\trace_data.pas&#8217;<\/p>\n<p>  \u0422\u0440\u0430\u0441\u0441\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0432 4 \u043f\u0440\u043e\u0445\u043e\u0434\u0430 \u0432 4 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0440\u0435\u0436\u0438\u043c\u0430\u0445.<br \/>  1. \u041f\u043e\u043b\u043d\u0430\u044f \u0442\u0440\u0430\u0441\u0441\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<br \/>  2. \u0427\u0430\u0441\u0442\u0438\u0447\u043d\u0430\u044f \u0442\u0440\u0430\u0441\u0441\u0430, \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0447\u0442\u0435\u043d\u0438\u044f \u0431\u0443\u0444\u0435\u0440\u0430 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c.<br \/>  3. \u0427\u0430\u0441\u0442\u0438\u0447\u043d\u0430\u044f \u0442\u0440\u0430\u0441\u0441\u0430 \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u0432\u043e\u0434\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430.<br \/>  4. \u0414\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u044f\u0447\u0435\u0435\u043a \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 \u043f\u0430\u0440\u043e\u043b\u0435\u043c.<\/p>\n<p>  \u0427\u0443\u0442\u044c \u043f\u043e\u043f\u043e\u0437\u0436\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0440\u0435\u0439\u0441\u0435\u0440, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0432 \u043d\u0435\u0433\u043e \u043f\u044f\u0442\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0441\u043d\u044f\u0442\u0438\u044f \u0442\u0440\u0430\u0441\u0441\u044b, \u043d\u043e \u0441\u043d\u0438\u043c\u0430\u0435\u043c\u043e\u0439 \u0441 \u0434\u0435\u043c\u043e\u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0441\u043a\u0438\u043d\u0443\u0442 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0443\u043b\u0435\u0439 (\u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u044d\u0442\u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u0437\u0432\u0430\u0442\u044c\u0441\u044f ttWrongSN).<br \/>  \u041d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u043f\u043e\u0437\u0436\u0435, \u0430 \u0441\u0435\u0439\u0447\u0430\u0441\u2026<\/p>\n<p>  \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0440\u0435\u0439\u0441\u0435\u0440\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u0430: <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">1. \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u0435\u043c OnCreateProcess \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430 \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0412\u0420:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"delphi\">procedure TTracer.OnCreateProcess(Sender: TObject; ThreadIndex: Integer;   Data: TCreateProcessDebugInfo); begin   Writeln('process start');   case FTraceType of     \/\/ \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u0443\u0435\u043c \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e \u043a\u043e\u043d\u0446\u0430     ttFull:     begin       FDebuger.SetHardwareBreakpoint(ThreadIndex,         Pointer(FMap.AddrAtLine(FSrc.StartLine)), hsByte, hmExecute, 0, 'vm_start');       FDebuger.SetHardwareBreakpoint(ThreadIndex,         Pointer(FMap.AddrAtLine(FSrc.EndLine)), hsByte, hmExecute, 1, 'vm_end');     end;     ttIn:       \/\/ \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0440\u0430\u0441\u0441\u0443 \u043e\u0442 \u0447\u0442\u0435\u043d\u0438\u044f \u043b\u043e\u0433\u0438\u043d\u0430       FDebuger.SetHardwareBreakpoint(ThreadIndex,         Pointer(FMap.AddrAtLine(FSrc.ReadPwdLine)), hsByte, hmExecute, 0, 'read_pwd_start');     ttOut:       \/\/ \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0440\u0430\u0441\u0441\u0443 \u043e\u0442 \u0432\u044b\u0432\u043e\u0434\u0430       FDebuger.SetHardwareBreakpoint(ThreadIndex,         Pointer(FMap.AddrAtLine(FSrc.OutputBufLine)), hsByte, hmExecute, 0, 'out_data_start');     ttCheckLoginBuff:     begin       \/\/ \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0440\u0430\u0441\u0441\u0443 \u043f\u043e \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044e \u043a \u0431\u0443\u0444\u0435\u0440\u0443 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 \u043f\u0430\u0440\u043e\u043b\u0435\u043c       FDebuger.SetHardwareBreakpoint(ThreadIndex,         Pointer(FMap.AddrAtLine(FSrc.StartLine)), hsByte, hmExecute, 0, 'LoginAndSN_MBP_Present');       FDebuger.SetHardwareBreakpoint(ThreadIndex,         Pointer(FMap.AddrAtLine(FSrc.EndLine)), hsByte, hmExecute, 1, 'vm_end');     end;   end; end; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">2. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u0445\u0430\u0440\u0434\u0432\u0430\u0440\u043d\u043e\u0433\u043e \u0431\u0440\u044f\u043a\u0430 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u0435\u0436\u0438\u043c\u044b \u0440\u0430\u0431\u043e\u0442\u044b:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"delphi\">procedure TTracer.OnHardwareBreakpoint(Sender: TObject; ThreadIndex: Integer;   ExceptionRecord: Windows.TExceptionRecord; BreakPointIndex: THWBPIndex;   var ReleaseBreakpoint: Boolean); var   CurrentName: string;   ThreadData: TThreadData;   I: Integer; begin   Inc(FTotalStepCount);   ThreadData := FDebuger.GetThreadData(ThreadIndex);   Writeln(ThreadData.Breakpoint.Description[BreakPointIndex]);   case FTraceType of     ttFull:     begin       if BreakPointIndex = 0 then       begin         FDebuger.ResumeAction := raTraceInto;         ReleaseBreakpoint := True;       end       else       begin         ReleaseBreakpoint := True;         CurrentName :=           FSrc.GetProcedureNameAtLine(FMap.LineAtAddr(DWORD(ExceptionRecord.ExceptionAddress)));         FTrace.AddTace(FPreviousName, CurrentName);         FTrace.SaveToFile('..\\..\\data\\full.trace');         Writeln('Trace done.');         Writeln('Total instructions traced: ', FTotalStepCount);         Writeln('Traced subroutine added: ', FTrace.Count);         Writeln('Time elapsed: ', GetTickCount - FStart, 'ms');       end;     end;     ttIn, ttOut:     begin       if FProcList.Count &gt; 0 then       begin         ReleaseBreakpoint := True;         CurrentName :=           FSrc.GetProcedureNameAtLine(FMap.LineAtAddr(DWORD(ExceptionRecord.ExceptionAddress)));         FTrace.AddTace(FPreviousName, CurrentName);         if FTraceType = ttIn then           FProcList.SaveToFile('..\\..\\data\\in.proclist')         else           FProcList.SaveToFile('..\\..\\data\\out.proclist');         Writeln('Trace done.');         Writeln('Total instructions traced: ', FTotalStepCount);         Writeln('Traced subroutine added: ', FProcList.Count);         Writeln('Time elapsed: ', GetTickCount - FStart, 'ms');         FDebuger.ResumeAction := raRun;       end       else         FDebuger.ResumeAction := raTraceInto;     end;     ttCheckLoginBuff:     begin       ReleaseBreakpoint := True;       if BreakPointIndex = 0 then       begin         FWorkBuffAddr := PByte(FDebuger.GetContext(0).Eax);         for I := 0 to 9 do           FDebuger.SetMemoryBreakpoint(FWorkBuffAddr + 28 + (I * 2), 1, True, 'Login' + IntToStr(I));         for I := 0 to 9 do           FDebuger.SetMemoryBreakpoint(FWorkBuffAddr + 48 + (I * 2), 1, True, 'SN' + IntToStr(I));       end       else       begin         FProcList.SaveToFile('..\\..\\data\\change_buff.proclist');         Writeln('Trace done.');         Writeln('Total instructions traced: ', FTotalStepCount);         Writeln('Traced subroutine added: ', FProcList.Count);         Writeln('Time elapsed: ', GetTickCount - FStart, 'ms');       end;     end;   end; end; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u043a\u0440\u0430\u0442\u0446\u0435, \u0442\u043e \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0434\u0430\u043c\u043f\u0430 (ttFull) \u0432\u0442\u043e\u0440\u043e\u0439 HBP \u0431\u0443\u0434\u0435\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438, \u0440\u0435\u0436\u0438\u043c\u044b \u00abttIn, ttOut\u00bb \u0431\u0443\u0434\u0443\u0442 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0438 HBP (\u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0445\u043e\u0434 \u0432\u0432\u043e\u0434\u0430\/\u0432\u044b\u0432\u043e\u0434\u0430), \u043d\u0443 \u0430 ttCheckLoginBuff \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c MBP \u043f\u043e\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0432\u0435\u0441\u044c \u0446\u0438\u043a\u043b VM.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">3. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u0445:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"delphi\">procedure TTracer.OnSingleStep(Sender: TObject; ThreadIndex: Integer;   ExceptionRecord: Windows.TExceptionRecord); var   CurrentName: string; begin   Inc(FTotalStepCount);   CurrentName :=     FSrc.GetProcedureNameAtLine(FMap.LineAtAddr(DWORD(ExceptionRecord.ExceptionAddress)));   if FTraceType = ttFull then   begin     if FPreviousName = '' then FPreviousName := CurrentName;     if FPreviousName &lt;&gt; CurrentName then     begin       FTrace.AddTace(FPreviousName, CurrentName);       FPreviousName := CurrentName;     end;   end   else     FProcList.Add(CurrentName);   FDebuger.ResumeAction := raTraceInto; end;   procedure TTracer.OnMemoryBreakpoint(Sender: TObject; ThreadIndex: Integer;   ExceptionRecord: Windows.TExceptionRecord; BreakPointIndex: Integer;   var ReleaseBreakpoint: Boolean); begin   Inc(FTotalStepCount);   FProcList.Add(     FSrc.GetProcedureNameAtLine(FMap.LineAtAddr(DWORD(ExceptionRecord.ExceptionAddress)))); end; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u043c\u0435\u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0431\u0443\u0444\u0435\u0440\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u043b\u043e\u0433\u0438\u043d \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440.<\/p>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0440\u0435\u0439\u0441\u0435\u0440\u0430 \u043d\u0430 \u0440\u0443\u043a\u0430\u0445 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 4 \u0444\u0430\u0439\u043b\u0430, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u0440\u0430\u0431\u043e\u0442\u0443 VM, \u043d\u043e\u2026<br \/>  \u041d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043a\u0430\u043a\u0438\u043c \u043b\u0438\u0431\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u043e\u043c \u0432\u0438\u0434\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441 \u043d\u0438\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c\u2026<\/p>\n<h4>10. \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c \u0442\u0440\u0430\u0441\u0441\u0443 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 \u0432\u0438\u0434\u0435 \u0433\u0440\u0430\u0444\u0430<\/h4>\n<p>  IDA Pro \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0433\u0440\u0430\u0444\u044b, \u0432\u044b\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0438\u043c, \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u043d\u043e\u2026 \u043d\u043e \u043e\u043d \u043d\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u0435\u043d.<br \/>  \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0441 \u0433\u0440\u0430\u0444\u043e\u043c \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 VM, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e IDA, \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0443\u0434\u043e\u0431\u043d\u043e.<br \/>  \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0438 \u043f\u043e\u0448\u0435\u043b \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0440\u0443\u0447\u043d\u043e\u0435 \u0441\u043d\u044f\u0442\u0438\u0435 \u0442\u0440\u0430\u0441\u0441\u044b (\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0433\u043b\u0430\u0432\u0435) \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0435\u0451 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/p>\n<p>  \u0421\u0443\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c:<br \/>  1. \u0441\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0443 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u041f\u041e \u0432 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0433\u0440\u0430\u0444<br \/>  2. \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0432 \u0433\u0440\u0430\u0444\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u043b\u043e\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<br \/>  3. \u043a\u0430\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430 \u0431\u043b\u043e\u043a\u043e\u0432, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043a\u043e\u0434\u0430.<\/p>\n<p>  \u0421\u0430\u043c\u044b\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u0442\u0430\u043f, \u044d\u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 \u0442\u0440\u0435\u0439\u0441\u0435\u0440\u0430 \u0432 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0433\u0440\u0430\u0444.<br \/>  \u041e\u043d \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u2014 \u0431\u0435\u0440\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0431\u043b\u043e\u043a \u0438 \u043e\u0442 \u043d\u0435\u0433\u043e \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u0441\u0442\u0440\u043e\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043d\u0430 \u0437\u0430\u0431\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e while \u0446\u0438\u043a\u043b\u044b, \u0433\u0434\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043d\u0430 \u0435\u0451 \u043d\u0430\u0447\u0430\u043b\u043e, \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<br \/>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u0433\u0440\u0430\u0444\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0443\u0437\u0435\u043b \u0433\u0440\u0430\u0444\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043b\u0438\u043d\u043a \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c-\u0436\u0435 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438.<\/p>\n<p>  \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044f \u043a\u043e\u0434 BF \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u044b:<br \/>  1. \u0412 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 while \u0446\u0438\u043a\u043b\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e 2 \u0432\u0445\u043e\u0434\u0430 (\u0438\u0437 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u043a\u043e\u0434\u0430 \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0438\u0437 \u043a\u043e\u043d\u0446\u0430 \u0446\u0438\u043a\u043b\u0430).<br \/>  2. \u041a\u043e\u043d\u0435\u0446 \u043a\u0430\u0436\u0434\u043e\u0433\u043e while \u0446\u0438\u043a\u043b\u0430 \u0438\u043c\u0435\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e 2 \u0432\u044b\u0445\u043e\u0434\u0430 (\u0435\u0441\u043b\u0438 \u0446\u0438\u043a\u043b \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u044b\u0448\u0435 \u043f\u043e \u043a\u043e\u0434\u0443, \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0446\u0438\u043a\u043b\u0430)<br \/>  3. \u0418\u0437 \u0442\u0435\u043b\u0430 while \u0431\u043b\u043e\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e \u0432\u044b\u0445\u043e\u0434\u043e\u0432, \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u044f ifthen \u0431\u043b\u043e\u043a\u043e\u0432 \u0432 \u0435\u0433\u043e \u0442\u0435\u043b\u0435 (\u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043d\u0430\u0448 \u0441\u043b\u0443\u0447\u0430\u0439).<\/p>\n<p>  \u041f\u043e\u0434 \u0441\u0432\u0435\u0440\u0442\u043a\u043e\u0439 \u043a\u043e\u0434\u0430 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<br \/>  1. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0438\u043c\u0435\u0435\u0442 \u043e\u0434\u0438\u043d \u0432\u0445\u043e\u0434 \u0438 \u043e\u0434\u0438\u043d \u0432\u044b\u0445\u043e\u0434 (\u043f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c \u0442\u0440\u0430\u0441\u0441\u044b), \u0442\u043e \u043e\u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0431\u043b\u043e\u043a\u0443 \u0441\u0432\u0435\u0440\u0442\u043a\u0438.<br \/>  2. \u041d\u0430\u0447\u0430\u043b\u043e\u043c \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0441\u0432\u0435\u0440\u0442\u043a\u0438 \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043b\u044e\u0431\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430, \u0438\u043c\u0435\u044e\u0449\u0430\u044f \u0434\u0432\u0430 \u0432\u0445\u043e\u0434\u0430 (\u0446\u0438\u043a\u043b while).<br \/>  3. \u041a\u043e\u043d\u0446\u043e\u043c \u0431\u043b\u043e\u043a\u0430 \u0441\u0432\u0435\u0440\u0442\u043a\u0438 \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 (\u043a\u043e\u043d\u0435\u0446 while) \u043b\u0438\u0431\u043e \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u0431\u043b\u043e\u043a \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c \u0442\u0440\u0430\u0441\u0441\u044b \u0438\u043c\u0435\u0435\u0442 \u0434\u0432\u0430 \u0432\u044b\u0445\u043e\u0434\u0430 (\u0447\u0442\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u043f\u043e\u0434 \u0441\u043e\u0431\u043e\u0439 \u0442\u043e\u0442 \u0436\u0435 \u043a\u043e\u043d\u0435\u0446 \u0446\u0438\u043a\u043b\u0430, \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043f\u0443\u043d\u043a\u0442\u0430 \u21163).<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0417\u0430 \u0432\u0441\u0435 \u044d\u0442\u0438 \u044d\u0442\u0430\u043f\u044b \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 (&#39;.\\tools\\trace_viewer\\trace_graph.pas&#39;):<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"delphi\">procedure TTraceGraph.LoadItem(Index: Integer; AParent: TExecutionBlock); var   Block: TExecutionBlock;   Item: TTraceItem; begin   \/\/ \u043d\u0430\u0447\u0430\u043b\u043e \u0431\u043b\u043e\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f - \u043b\u044e\u0431\u0430\u044f \u043f\u043e\u0434\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430   \/\/ \u0442\u0435\u043b\u043e \u0431\u043b\u043e\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f - \u043f\u043e\u0434\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430   \/\/ \u043a\u043e\u043d\u0435\u0446 \u0431\u043b\u043e\u043a\u0430 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u043f\u043e\u0434\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0438\u043b\u0438 \u0435\u0441\u043b\u0438 \u0434\u0432\u0430 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u0430     \/\/ \u0415\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0431\u044b\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d, \u0434\u0435\u043b\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043d\u0435\u0433\u043e \u0438 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434   Item := FTrace[Index];   if Item.CustomData &lt;&gt; nil then   begin     AddVector(AParent, Item.CustomData);     Exit;   end;     Block := TExecutionBlock(AddNode(NodesCount));   if AParent = nil then     Block.Level := 0   else   begin     AddVector(AParent, Block);     Block.Level := AParent.Level + 1;     FMaxLevel := Max(FMaxLevel, Block.Level);   end;   Block.ProcList.Add(Item.SubName);   FTrace.SetCustomData(Index, Block);     \/\/ \u0435\u0441\u043b\u0438 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0435\u0442 - \u0434\u043e\u0448\u043b\u0438 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0442\u0440\u0430\u0441\u0441\u044b   if Item.OutList.Count = 0 then Exit;     \/\/ \u0435\u0441\u043b\u0438 \u0443 \u0438\u0442\u0435\u043c\u0430 \u0434\u0432\u0435 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441\u0441\u044b\u043b\u043a\u0438 - \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0438\u0445 \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044e   if (Item.OutList.Count = 2) then   begin     LoadItem(FTrace.GetItemIndexByName(Item.OutList[0]), Block);     LoadItem(FTrace.GetItemIndexByName(Item.OutList[1]), Block);     Exit;   end;     \/\/ \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0440\u0443\u0442\u0438\u043c \u0446\u0438\u043a\u043b   Item := FTrace.ItemByName(Item.OutList[0]);   while Item.InList.Count = 1 do   begin     Block.ProcList.Add(Item.SubName);     FTrace.SetCustomData(FTrace.GetItemIndexByName(Item.SubName), Block);     case Item.OutList.Count of       0: Exit;       1: Item := FTrace.ItemByName(Item.OutList[0]);       2:       begin         LoadItem(FTrace.GetItemIndexByName(Item.OutList[0]), Block);         LoadItem(FTrace.GetItemIndexByName(Item.OutList[1]), Block);         Exit;       end;     end;   end;     if Item.InList.Count = 2 then     LoadItem(FTrace.GetItemIndexByName(Item.SubName), Block); end; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u0441\u0441\u044b \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 (\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0435\u0442 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0432 \u0432\u0438\u0434\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0432\u044b\u0445\u043e\u0434\u043e\u0432 \u0438\u0437 while), \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/dc6\/733\/d20\/dc6733d202f06e9061d0465629e003c8.png\"\/><\/div>\n<p>  \u041d\u0430 \u043d\u0435\u0439 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0430 \u0442\u0440\u0430\u0441\u0441\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0441\u043e \u0441\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u041d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0439\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0432\u0441\u0435 \u0442\u0430\u043a \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438 \u2014 \u044f \u043d\u0435 \u043f\u0438\u0441\u0430\u043b \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0442\u0430\u043a\u043e\u0439 \u0440\u0430\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u0432\u0441\u0435 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043a\u0438\u0434\u0430\u043b \u0440\u0443\u0447\u043a\u0430\u043c\u0438 (\u0438\u0431\u043e \u044d\u0442\u043e \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0434\u0432\u0438\u0436\u043e\u043a \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u0430\u043a \u0443 IDA \ud83d\ude42<\/p>\n<p>  \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u0430\u043d\u043d\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u044f \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443, \u0435\u0433\u043e \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"http:\/\/rouse.drkb.ru\/blog\/vm_analize.zip\">\u0432 \u0430\u0440\u0445\u0438\u0432\u0435<\/a> &quot;.\\tools\\trace_viewer\\&quot;.<\/p>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0435\u0435 \u0437\u0430\u0434\u0430\u0447\u0430, \u0434\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u0441\u0442\u0430\u0440\u0442\u0430, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u043a\u043e\u0434\u0430 VM.<\/p>\n<p>  \u0418 \u0432\u043e\u0442 \u0434\u0432\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043a\u0430\u0436\u0443\u0442 \u0447\u0430\u0441\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<p>  \u0412\u043e\u0442 \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/02c\/67d\/e90\/02c67de901831839431adcdde1e712fd.png\"\/><\/div>\n<p>  \u0410 \u0432\u043e\u0442 \u044d\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0432\u044b\u0432\u043e\u0434\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/4ca\/ea8\/051\/4caea8051360a2dec15c2cbf5a83a7da.png\"\/><\/div>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u043f\u043e \u0446\u0435\u043d\u0442\u0440\u0443 \u0441\u0445\u0435\u043c\u044b, \u043e\u043d\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043c\u0430\u0442\u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043e\u043c \u0438 \u043d\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u043b\u043e\u0433\u0438\u043a\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u0441\u043f\u0440\u044f\u0442\u0430\u043d\u043d\u043e\u0433\u043e \u0432 VM.<\/p>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u044e\u0441\u044c \u2014 \u0434\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u0431\u044b\u043b \u0441\u0434\u0435\u043b\u0430\u043d \u0443\u0436\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430.<br \/>  \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e, \u043f\u043e\u043b\u0443\u0447\u0438\u0432 \u043d\u0430 \u0440\u0443\u043a\u0438 \u0442\u0430\u043a\u0438\u0435 \u0434\u0432\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u044f \u0431\u044b\u043b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0437\u0430\u0434\u0430\u0447\u0435\u043d \u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043b \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0436\u0435\u0442 \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u043c\u0438\u043d\u0438-VM (\u0437\u0435\u043b\u0435\u043d\u044b\u0439 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u0441\u043d\u0438\u0437\u0443 \u0441\u043b\u0435\u0432\u0430), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0441\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0443, \u043e\u043f\u0438\u0440\u0430\u044f\u0441\u044c \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u043d\u043e\u2026 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u043c.<\/p>\n<p>  \u0410 \u0442\u0430\u043a, \u0441\u0443\u0434\u044f \u043f\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u043d\u0430 \u0440\u0443\u043a\u0430\u0445:<br \/>  1. \u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u043b\u0435\u0432\u044b\u0439 \u0431\u043b\u043e\u043a \u0441\u0445\u0435\u043c\u044b \u2014 \u0447\u0442\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<br \/>  2. \u041d\u0438\u0436\u043d\u0438\u0439 \u043f\u0440\u0430\u0432\u044b\u0439 \u2014 \u0432\u044b\u0432\u043e\u0434 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430.<br \/>  3. \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0442\u043a\u0430 \u2014 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u0430\u0442\u0430\u043f\u043f\u0430\u0440\u0430\u0442 (\u0435\u0433\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f).<\/p>\n<p>  \u0412\u0441\u0435 \u0447\u0442\u043e \u043d\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043e \u0437\u0435\u043b\u0435\u043d\u044b\u043c \u0438 \u0435\u0441\u0442\u044c \u0442\u0440\u0435\u0442\u0438\u0439 \u043a\u043e\u043d\u0432\u0435\u0440\u0442 (\u0441\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043e\u0434 VM \u043b\u043e\u0433\u0438\u043a\u0430).<\/p>\n<p>  \u0422\u0435, \u043a\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044c\u044e\u0432\u0435\u0440\u0430, \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u0438\u043d\u043e\u0448\u0443 \u0438\u0437\u0432\u0438\u043d\u0435\u043d\u0438\u044f \u2014 \u043a\u043e\u0434 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u043e\u0447\u0435\u043d\u044c \u0441\u044b\u0440\u043e\u0439 \u0438 \u043f\u0438\u0441\u0430\u043b\u0441\u044f \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u043d\u0430 \u043a\u043e\u043b\u0435\u043d\u043a\u0435 \u0437\u0430 \u0434\u0432\u0430 \u0432\u0435\u0447\u0435\u0440\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043e\u043c \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442. \u0423\u043c\u0435\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0441\u0430\u043c \u0433\u0440\u0430\u0444, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0435\u0433\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 (\u0447\u0438\u0442\u0430\u0439 \u2014 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0432\u0438\u0433\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438 \u0442\u0430\u043a \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u043e).<br \/>  \u0420\u0435\u0436\u0438\u043c ZOOM-\u0430 \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u043e\u0431\u0449\u0435\u0435 \u043f\u0440\u0435\u0432\u044c\u044e (\u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438 \u0441\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b).<br \/>  \u041d\u043e \u0441 \u0440\u043e\u043b\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0433\u0440\u0430\u0444\u0430 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u043f\u043b\u043e\u0445\u043e.<\/p>\n<p>  <a href=\"http:\/\/rouse.drkb.ru\/blog\/vm_analize.zip\">\u0412 \u0430\u0440\u0445\u0438\u0432\u0435 \u0441\u043e \u0441\u0442\u0430\u0442\u044c\u0435\u0439<\/a> \u0435\u0441\u0442\u044c \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0433\u0440\u0430\u0444 (&#8216;.\\data\\current.graph&#8217;) \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u0438\u0437 \u0442\u0440\u0430\u0441\u0441\u044b, \u0441\u043d\u044f\u0442\u043e\u0439 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0433\u043b\u0430\u0432\u0435 (&#8216;.\\data\\full.trace&#8217;).<\/p>\n<p>  \u0412\u043f\u0440\u043e\u0447\u0435\u043c\u2026 \u043a \u043d\u0430\u0448\u0438\u043c \u0431\u0430\u0440\u0430\u043d\u0430\u043c.<br \/>  \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 VM \u0433\u043e\u0442\u043e\u0432, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a \u0435\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0443\u2026<\/p>\n<h4>11. \u0410\u043d\u0430\u043b\u0438\u0437 \u0438 \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0447\u0442\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.<\/h4>\n<p>  \u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0432 \u043a \u0430\u043d\u0430\u043b\u0438\u0437\u0443 VM \u044f \u0443\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b \u0441 \u0447\u0435\u043c \u043c\u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<br \/>  \u041e\u043f\u0438\u0440\u0430\u044f\u0441\u044c \u043d\u0430 \u043a\u0430\u0440\u0442\u0443 \u043f\u0430\u043c\u044f\u0442\u0438 \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 VM (\u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u0432 7 \u0433\u043b\u0430\u0432\u0435), \u044f \u0437\u043d\u0430\u043b \u043e\u0444\u0444\u0441\u0435\u0442\u044b, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u00ab\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f\u00bb \u0438 \u00ab\u043d\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f\u00bb \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a-\u0436\u0435 \u043e\u0444\u0444\u0441\u0435\u0442, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0431\u0443\u0444\u0435\u0440 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c.<\/p>\n<p>  \u0417\u043d\u0430\u044f \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 BF \u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438\u043a\u0438\u043d\u0443\u043b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0435\u043a\u0438\u0435 \u043c\u0430\u0442\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 SN.<\/p>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0435\u0441\u043b\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u0438\u0442\u044c \u0434\u0432\u0430 \u043f\u043e\u043b\u044f Z \u0438 X, \u0442\u043e \u0432 Brainfuck \u043d\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c while \u0446\u0438\u043a\u043b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e \u0434\u0435\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 X \u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 Y.<br \/>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u044f\u0447\u0435\u0439\u043a\u0430 Y \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u0443\u043c\u043c\u0443 \u043e\u0431\u043e\u0438\u0445 \u044f\u0447\u0435\u0435\u043a, \u0430 \u044f\u0447\u0435\u0439\u043a\u0430 X \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u0438\u043b\u0435\u043d\u0430.<\/p>\n<p>  \u041d\u043e \u043f\u0440\u0438 \u0432\u044b\u0432\u043e\u0434\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0447\u0442\u043e \u0431\u0443\u0444\u0435\u0440 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u0430\u043c, \u0433\u0434\u0435 \u043e\u043d \u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0438 \u043d\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u0435\u0433\u043e \u043f\u043e\u043b\u0435\u0439 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e. \u0417\u043d\u0430\u0447\u0438\u0442 \u0432 VM \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  \u0421\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u0441\u0440\u0430\u0437\u0443 \u043e\u0431\u0440\u0430\u0442\u0438\u043b \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u2014 \u0447\u0442\u043e \u043b\u043e\u0433\u0438\u043d, \u0447\u0442\u043e \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440, \u0447\u0442\u043e \u00ab\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f\u00bb \u0438 \u00ab\u043d\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f\u00bb \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043a\u0430\u0440\u0442\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438\u0434\u0443\u0442 \u043d\u0435 \u0432 \u0442\u043e\u043c \u0432\u0438\u0434\u0435, \u043a\u0430\u043a \u0435\u0441\u0442\u044c, \u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0430\u0439\u0442 \u043e\u0442\u0434\u0435\u043b\u0435\u043d \u043e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043d\u0443\u043b\u0435\u043c. \u0422\u0430\u043a\u043e\u0435 \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435 \u0447\u0442\u043e \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u044e\u043d\u0438\u043a\u043e\u0434\u043e\u043c, \u0445\u043e\u0442\u044f \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u0430 \u0438\u0434\u0435\u0442 \u0441 ANSI \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438.<\/p>\n<p>  \u042d\u0442\u0438 \u0434\u0432\u0430 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043c\u043d\u0435 \u0431\u044b\u043b\u0438 \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u044b.<\/p>\n<p>  \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441 \u0447\u0435\u0433\u043e-\u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0443\u0436\u043d\u043e, \u0438 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441 \u0435\u0433\u043e \u043a\u043e\u043d\u0446\u0430, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0432, \u0447\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u0432\u044b\u0432\u043e\u0434\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0442 \u0441 \u0442\u0430\u043a\u043e\u043c \u0431\u043b\u043e\u043a\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 (\u0442\u0430\u043c \u0433\u0434\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442):<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/877\/835\/746\/877835746610118c5626e16df765b834.png\"\/><\/div>\n<p>  \u0422\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u0433\u0440\u0430\u0444 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u0432 \u0432\u0438\u0434\u0435 \u043e\u0434\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043e\u0434\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0432\u0445\u043e\u0434\u0430 \u0438 \u043e\u0434\u043d\u0438\u043c \u0432\u044b\u0445\u043e\u0434\u043e\u043c.<\/p>\n<p>  (\u041a\u0441\u0442\u0430\u0442\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0431\u043b\u043e\u043a\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0432 \u0438\u0442\u043e\u0433\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435 \u0432\u0435\u0440\u043d\u044b\u043c).<\/p>\n<p>  \u0414\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0440\u0435\u0436\u0438\u043c CPU-View \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0430\u043c\u043e\u0439 Delphi (\u044d\u0442\u043e\u0433\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c \u0437\u0430 \u0433\u043b\u0430\u0437\u0430).<br \/>  \u041e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0431\u044b\u043b\u043e \u00abdecompiled_vm_text.exe\u00bb \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438 \u0441\u043d\u0438\u043c\u0430\u043b\u0430\u0441\u044c \u0442\u0440\u0430\u0441\u0441\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043e\u043a \u0432 \u00abWatch List\u00bb \u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0442\u0440\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445:<\/p>\n<p>  1. \u0422\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0443\u0440\u0441\u043e\u0440\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430 (\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 ESI), \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u0439 \u043e\u0442 \u0430\u0434\u0440\u0435\u0441\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430 (pWorkBuff) \u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430. (esi-$4E5008)<br \/>  2. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u044f\u0447\u0435\u0439\u043a\u0438 pWorkBuff (pbyte(esi)^)<br \/>  3. \u041e\u043d\u043e-\u0436\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 HEX \u0440\u0435\u0436\u0438\u043c\u0435.<br \/>  4. \u041e\u043a\u043d\u043e \u0434\u0430\u043c\u043f\u0430 \u0431\u044b\u043b\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430 VM ($4E5008).<\/p>\n<p>  \u0417\u042b: \u0443 \u0432\u0430\u0441 \u0430\u0434\u0440\u0435\u0441 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0438\u0441\u043b\u043e 4E5008 \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u0438 \u043d\u0430\u0447\u0430\u043b\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0438, \u043f\u043e\u0434\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 pWorkBuff.<\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a, \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b &quot;@vm_code_39D7&quot;, \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u0442\u0430\u043a:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/660\/6e8\/5ac\/6606e85ac9bdec4cbd1d948a1e086d42.png\"\/><\/div>\n<p>  \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0438 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c.<br \/>  \u0415\u0441\u043b\u0438 \u0432\u044b \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0433\u0440\u0430\u0444\u0430, \u044d\u0442\u043e \u0441\u0430\u043c\u0430\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0432 \u0441\u0432\u0435\u0440\u043d\u0443\u0442\u043e\u043c \u0431\u043b\u043e\u043a\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0430\u043c \u0441\u0435\u0431\u044f (while \u0446\u0438\u043a\u043b).<\/p>\n<p>  \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u044b\u0437\u043e\u0432\u0430 \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b, \u043a\u0443\u0440\u0441\u043e\u0440 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043d\u0430 \u044f\u0447\u0435\u0439\u043a\u0443 \u211627 (\u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0441 \u043a\u0430\u0440\u0442\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430 \u043a\u0440\u0430\u0441\u043d\u044b\u043c), \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0435 \u0447\u0438\u0441\u043b\u043e (40 \u0438\u043b\u0438 $28). \u042d\u0442\u0430 \u044f\u0447\u0435\u0439\u043a\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u0435\u0440\u0435\u0434 \u0431\u0443\u0444\u0435\u0440\u043e\u043c \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c (\u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c \u043f\u043e \u043e\u0444\u0441\u0435\u0442\u0443 28, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u043b\u043e\u0433\u0438\u043d\u0430 \u2014 \u00abM\u00bb).<br \/>  \u0417\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u044d\u0442\u043e\u0439 \u044f\u0447\u0435\u0439\u043a\u0438 \u2014 \u043e\u043d\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043b\u043e\u0433\u0438\u043a\u0438 VM.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u0432\u0435\u0440\u043d\u0443\u0442\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430:<\/p>\n<pre><code class=\"delphi\">@vm_code_39D7:   cmp byte ptr [esi], 0   \/\/ \u0440\u0430\u0432\u043d\u043e \u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u211627 \u043d\u0443\u043b\u044e?   jne @vm_code_39D8       \/\/ \u0435\u0441\u043b\u0438 \u043d\u0435\u0442, \u0438\u0449\u0435\u043c \u043f\u0440\u0430\u0432\u044b\u0439 \u043d\u043e\u043b\u044c     @vm_code_39D8:   add esi, 2              \/\/ \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u044f\u0447\u0435\u0439\u043a\u0438 \u043f\u0440\u044b\u0433\u0430\u0435\u043c \u043d\u0430 2 \u044f\u0447\u0435\u0439\u043a\u0438 \u0432\u043f\u0440\u0430\u0432\u043e   cmp byte ptr [esi], 0   \/\/ \u044f\u0447\u0435\u0439\u043a\u0430 \u0440\u0430\u0432\u043d\u0430 \u043d\u0443\u043b\u044e?   jne @vm_code_39D8       \/\/ \u0435\u0441\u043b\u0438 \u043d\u0435\u0442, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439       @vm_code_39D7_39D9:       \/\/ \u043d\u0430\u0448\u043b\u0430\u0441\u044c \u044f\u0447\u0435\u0439\u043a\u0430 \u0440\u0430\u0432\u043d\u0430\u044f \u043d\u0443\u043b\u044e?   inc byte ptr [esi]      \/\/ \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 1   cmp byte ptr [esi], 0      jne @vm_code_39DD       \/\/ \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u043f\u043e\u0438\u0441\u043a \u044f\u0447\u0435\u0439\u043a\u0438 #27     @vm_code_39DD:   sub esi, 2              \/\/ \u0438\u0449\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u043d\u043e\u043b\u044c \u0441\u043b\u0435\u0432\u0430 (\u0447\u0435\u0440\u0435\u0437 2 \u044f\u0447\u0435\u0439\u043a\u0438),                            \/\/ \u0442.\u043a. \u0441\u043f\u0440\u0430\u0432\u0430 \u0432\u0441\u0435 \u0443\u0436\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u043c\u0438, \u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u043d\u043e\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0434 \u044f\u0447\u0435\u0439\u043a\u043e\u0439 #27   cmp byte ptr [esi], 0   jne @vm_code_39DD       @vm_code_39D7_39DE:   add esi, 2              \/\/ \u043d\u0430\u0448\u043b\u0438 \u044f\u0447\u0435\u0439\u043a\u0443 #27   dec byte ptr [esi]      \/\/ \u0434\u0435\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c  \u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435   cmp byte ptr [esi], 0   \/\/ \u0438 \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u043d\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0443\u043b\u044e, \u043f\u0435\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043d\u0430\u0447\u0430\u043b\u0443 \u0446\u0438\u043a\u043b\u0430   jne @vm_code_39D7   jmp @vm_code_397A_39D8  \/\/ \u0446\u0438\u043a\u043b \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d <\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u044f \u0432\u044b\u0441\u0442\u0440\u043e\u0438\u043b \u0431\u043b\u043e\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (\u043d\u0435 \u0432 \u0442\u043e\u043c \u0432\u0438\u0434\u0435, \u043a\u0430\u043a \u043e\u043d\u0438 \u0438\u0434\u0443\u0442 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435), \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0449\u0435 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u0438\u0437 \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442?<br \/>  \u0414\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043d\u0443\u043b\u0438 (\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044e\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043b\u043e\u0433\u0438\u043d\u0430\/\u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430, \u0430 \u0442\u0430\u043a-\u0436\u0435 \u00ab\u043f\u043b\u043e\u0445\u0443\u044e\u00bb \u0438 \u00ab\u0445\u043e\u0440\u043e\u0448\u0443\u044e\u00bb \u0441\u0442\u0440\u043e\u043a\u0438) \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u043c\u0438.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0444\u0438\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0446\u0438\u043a\u043b\u0430 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/6a5\/04d\/3e3\/6a504d3e3d68871ee0ddfd9892fca9e6.png\"\/><\/div>\n<p>  \u042f\u0447\u0435\u0439\u043a\u0430 \u211627 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u0438\u043b\u0435\u043d\u0430, \u043d\u043e \u043a\u0430\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0447\u0442\u043e \u0431\u0443\u0444\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u043c\u0438, \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u043c\u0438\u0441\u044f \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u0435\u0440\u0435\u0434 \u043f\u0435\u0440\u0432\u044b\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u044b\u043c VM \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c \u00ab\u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438\u00bb, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c \u00ab\u0421\u00bb.<\/p>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043a\u0430\u043a \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b @vm_code_39D8 \u0438 @vm_code_39DD). \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0446\u0435\u0432\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0432\u0435\u0440\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u044f\u0447\u0435\u0439\u043a\u0438 \u0441 \u043d\u0443\u043b\u0435\u043c, \u0441\u0430\u043c\u044b\u0439 \u043b\u0435\u0432\u044b\u0439 \u043d\u043e\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u044f\u0447\u0435\u0439\u043a\u0438 \u211627 (\u0441\u043e \u0441\u0434\u0432\u0438\u0433\u043e\u043c), \u0430 \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u0430\u0432\u044b\u0439 \u043d\u043e\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0435\u0449\u0435 \u043d\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0435\u0434\u0438\u043d\u0438\u0446\u0435\u0439 \u044f\u0447\u0435\u0439\u043a\u0443.<\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u0443\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u043f\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 (\u0432 \u0432\u0438\u0434\u0435 \u0435\u0434\u0438\u043d\u0438\u0446) \u043a \u044f\u0447\u0435\u0439\u043a\u0435, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 while \u0446\u0438\u043a\u043b, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0441 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b @vm_code_39EB.<\/p>\n<p>  \u041e\u043d \u043d\u0430\u0447\u043d\u0435\u0442 \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u044f\u0447\u0435\u0439\u043a\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0432\u044b\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u043d\u0435\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u044f\u0447\u0435\u0439\u043a\u0438 \u2116108, \u0433\u0434\u0435 \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0441\u0438\u043c\u0432\u043e\u043b \u00ab\u0421\u00bb (\u0432\u044b\u0434\u0435\u043b\u0435\u043d \u0441\u0438\u043d\u0438\u043c), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 VM \u0441\u0435\u0439\u0447\u0430\u0441 \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0431\u0443\u0444\u0435\u0440.<\/p>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b VM \u0443\u0441\u043f\u0435\u043b\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u044b\u043b\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u044f\u0447\u0435\u0439\u043a\u0438 \u211627 \u0435\u0434\u0438\u043d\u0438\u0446\u0435\u0439, \u0442.\u043e. \u0441\u0430\u043c\u0430\u044f \u043b\u0435\u0432\u0430\u044f \u044f\u0447\u0435\u0439\u043a\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b\u0439\u0434\u0435\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e\u0438\u0441\u043a\u0430 \u043b\u0435\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0446\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0441 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u0431\u0443\u0434\u0435\u0442 \u044f\u0447\u0435\u0439\u043a\u0430 \u211626.<\/p>\n<p>  \u0418\u0442\u0430\u043a:<\/p>\n<pre><code class=\"delphi\">@vm_code_39EB:   dec esi                 \/\/ \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u043d\u0430 \u044f\u0447\u0435\u0439\u043a\u0435 \u2116108, \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u043c\u0441\u044f \u0438   cmp byte ptr [esi], 0   \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043b\u0438 \u043d\u0430 \u043d\u0435\u0435 \u0438\u043d\u0434\u0435\u043a\u0441   jne @vm_code_39ED     @vm_code_39ED:   sub esi, 2              \/\/ \u0435\u0441\u043b\u0438 \u0434\u0430, \u0442\u043e   cmp byte ptr [esi], 0   \/\/ \u0438\u0449\u0435\u043c \u043b\u0435\u0432\u044b\u0439 \u043d\u043e\u043b\u044c (\u043f\u0435\u0440\u0435\u0434 \u044f\u0447\u0435\u0439\u043a\u043e\u0439 \u211626)   jne @vm_code_39ED   jmp @vm_code_39EB_39EE   @vm_code_39EB_39EE:   inc esi                 \/\/ \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u043c\u0441\u044f \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043d\u0430 \u044f\u0447\u0435\u0439\u043a\u0443 \u211626    inc byte ptr [esi]      \/\/ \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u211626     sub esi, 20             \/\/ \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u044f\u0447\u0435\u0439\u043a\u0443 \u21166   inc byte ptr [esi]      \/\/ \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0438 \u0435\u0435   add esi, 21             \/\/ \u043f\u0440\u044b\u0433\u0430\u0435\u043c \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0435\u0434\u0438\u043d\u0438\u0446   cmp byte ptr [esi], 0    jne @vm_code_3A1D     @vm_code_3A1D:   add esi, 2              \/\/  \u0438 \u0438\u0449\u0435\u043c \u043f\u0440\u0430\u0432\u044b\u0439 \u043a\u043e\u043d\u0435\u0446 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 (\u044f\u0447\u0435\u0439\u043a\u0443 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u043d\u0430 108)   cmp byte ptr [esi], 0    jne @vm_code_3A1D   jmp @vm_code_39EB_3A1E  \/\/ \u0441\u044e\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043c \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f \u0438\u043d\u0434\u0435\u043a\u0441     @vm_code_39EB_3A1E:   dec esi                 \/\/ \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u044f\u0447\u0435\u0439\u043a\u0443 \u2116108   dec byte ptr [esi]      \/\/ \u0434\u0435\u043a\u0440\u0435\u043c\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0435\u0435 \u0438   cmp byte ptr [esi], 0   \/\/ \u043f\u043e\u043a\u0430 \u043e\u043d\u0430 \u043d\u0435 \u0440\u0430\u0432\u043d\u0430 \u043d\u0443\u043b\u044e, \u043a\u0440\u0443\u0442\u0438\u043c \u0446\u0438\u043a\u043b \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430...   jne @vm_code_39EB   jmp @vm_code_397A_39EC  \/\/ \u0432\u044b\u0445\u043e\u0434 <\/code><\/pre>\n<p>  \u041b\u043e\u0433\u0438\u043a\u0430 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f: \u043e\u043d \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u2116108 \u0432 \u044f\u0447\u0435\u0439\u043a\u0438 \u0437\u0430 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u211626 \u0438 \u21166 (\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u2014 \u0432\u043e\u0442 \u043e\u043d\u043e, \u0448\u0435\u0441\u0442\u0430\u044f \u044f\u0447\u0435\u0439\u043a\u0430 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438 \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u0443\u043a\u0430\u0437\u0430\u043b \u0435\u0449\u0435 \u0432 \u0441\u0435\u0434\u044c\u043c\u043e\u0439 \u0433\u043b\u0430\u0432\u0435).<\/p>\n<p>  \u0418 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u0436\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0430\u043c\u0430 \u043b\u043e\u0433\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 (\u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0434\u0443\u0431\u043b\u044f\u0436 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0434\u0432\u0443\u043c \u0430\u0434\u0440\u0435\u0441\u0430\u043c).<\/p>\n<p>  \u041a\u0430\u0440\u0442\u0430 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/0a5\/650\/520\/0a5650520a2eadbc9893941730840d9f.png\"\/><\/div>\n<p>  \u0417\u0435\u043b\u0435\u043d\u044b\u043c\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430\u043c\u0438 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u044b \u043c\u0435\u0441\u0442\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430 \u044f\u0447\u0435\u0439\u043a\u0430 \u2116108 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u0431\u0438\u0440\u0430\u043b\u043e\u0441\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 while \u0446\u0438\u043a\u043b \u0432 \u0433\u0440\u0430\u0444\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b &quot;@vm_code_3A2A&quot;.<\/p>\n<p>  \u041e\u043d \u043d\u0430\u0447\u043d\u0435\u0442 \u0441\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u044f\u0447\u0435\u0439\u043a\u0438 \u211626, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043a\u043e\u043f\u0438\u044f \u0447\u0438\u0441\u043b\u0430, \u0440\u0430\u043d\u0435\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 \u2116108.<\/p>\n<p>  \u041a\u043e\u0434 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"delphi\">@vm_code_3A2A:   inc esi                \/\/ \u043f\u0440\u044b\u0433\u0430\u0435\u043c \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0435\u0434\u0438\u043d\u0438\u0446   cmp byte ptr [esi], 0     jne @vm_code_3A2C     @vm_code_3A2C:   add esi, 2   cmp byte ptr [esi], 0  \/\/ \u0438\u0449\u0435\u043c \u043a\u043e\u043d\u0435\u0446 \u0438\u043d\u0434\u0435\u043a\u0441\u0430, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043d\u0430 \u044f\u0447\u0435\u0439\u043a\u0443 \u2116108   jne @vm_code_3A2C   jmp @vm_code_3A2A_3A2D       @vm_code_3A2A_3A2D:   dec esi                \/\/ \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043d\u0430 \u044f\u0447\u0435\u0439\u043a\u0443 \u2116108   inc byte ptr [esi]     \/\/ \u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0435\u0435 \u0437\u043d\u0430\u0447\u043d\u0438\u0435   dec esi                \/\/ \u0441\u0434\u0432\u0438\u043d\u0430\u0435\u043c\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430 \u0438\u043d\u0434\u0435\u043a\u0441   cmp byte ptr [esi], 0    jne @vm_code_3A33       @vm_code_3A33:   sub esi, 2             \/\/ \u0438\u0449\u0435\u043c \u043d\u0430\u0447\u0430\u043b\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430   cmp byte ptr [esi], 0    jne @vm_code_3A33   jmp @vm_code_3A2A_3A34 \/\/ \u0441\u044e\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043c \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f \u0438\u043d\u0434\u0435\u043a\u0441      @vm_code_3A2A_3A34:   inc esi                \/\/ \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u044f\u0447\u0435\u0439\u043a\u0443 \u211626   dec byte ptr [esi]     \/\/ \u0434\u0435\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0435\u0435   cmp byte ptr [esi], 0  \/\/ \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u043d\u0435 \u0440\u0430\u0432\u043d\u0430 \u043d\u0443\u043b\u044e   jne @vm_code_3A2A      \/\/ \u043a\u0440\u0443\u0442\u0438\u043c \u0446\u0438\u043a\u043b   jmp @vm_code_397A_3A2B \/\/ \u0432\u044b\u0445\u043e\u0434   <\/code><\/pre>\n<p>  \u0417\u0430\u0434\u0430\u0447\u0430 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0437 \u044f\u0447\u0435\u0439\u043a\u0438 \u211626 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u2116108, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0430\u0447\u0430\u043b \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443.<\/p>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u0430\u0440\u0442\u0443 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/4ee\/121\/b9b\/4ee121b9b8cb2630414c1d3775451da7.png\"\/><\/div>\n<p>  \u0418 \u0441\u0430\u043c\u044b\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0432 \u044d\u0442\u043e\u0439 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u044f\u0447\u0435\u0439\u043a\u0430\u043c\u0438 \u0431\u0443\u0434\u0435\u0442 \u0444\u0438\u043d\u0430\u043b, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435 &quot;@vm_code_3A41&quot;<\/p>\n<p>  \u041e\u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f:<\/p>\n<pre><code class=\"delphi\">@vm_code_3A41:   dec byte ptr [esi]   sub esi, 2   cmp byte ptr [esi], 0   jne @vm_code_3A41 <\/code><\/pre>\n<p>  \u0412\u0441\u044f \u0435\u0435 \u0437\u0430\u0434\u0430\u0447\u0430, \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0441\u0430\u043c\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u044f\u0447\u0435\u0439\u043a\u0438 \u0440\u0430\u0432\u043d\u043e\u0439 \u0435\u0434\u0438\u043d\u0438\u0446\u0435 (\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438 \u0432\u044b\u0441\u0442\u0440\u043e\u0435\u043d \u0438\u043d\u0434\u0435\u043a\u0441) \u0438 \u0443\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0438\u043d\u0434\u0435\u043a\u0441\u0430.<\/p>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a\u0430\u044f \u043a\u0430\u0440\u0442\u0430:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/3a0\/031\/998\/3a00319988edfa68520fed937a914536.png\"\/><\/div>\n<p>  \u0417\u0435\u043b\u0435\u043d\u044b\u043c \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u044b \u043f\u043e\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0431\u0440\u0430\u043b\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430, \u0430 \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u043e\u0442\u043c\u0435\u0447\u0435\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u0441\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432.<\/p>\n<p>  \u0417\u0430\u043f\u0443\u0442\u0430\u043b\u0438\u0441\u044c?<\/p>\n<p>  \u041d\u0438\u0447\u0435\u0433\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0433\u043e, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u0441\u0430\u043c\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u044f \u044d\u0442\u0430 \u043d\u0430\u0432\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u044d\u0442\u0430\u043f\u043e\u0432 \u043f\u043e \u0441\u0443\u0442\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u0434\u043d\u0443 \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e.<\/p>\n<p>  \u0418 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u044d\u0442\u0430 \u2014 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044f\u0447\u0435\u0439\u043a\u0438 \u00ab\u0410\u00bb \u044f\u0447\u0435\u0439\u043a\u0435 \u00abB\u00bb.<br \/>  \u041f\u0440\u0438\u0447\u0435\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0433\u0438\u0431\u043e\u043a \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043b\u044e\u0431\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043b\u043e\u0433\u0438\u043d\u0430\/\u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u0438\u043b\u0438 \u00ab\u0445\u043e\u0440\u043e\u0448\u0435\u0439\/\u043f\u043b\u043e\u0445\u043e\u0439\u00bb \u0441\u0442\u0440\u043e\u043a, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044f\u0447\u0435\u0439\u043a\u0443 \u211627 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u044d\u0442\u0430\u043f\u0430.<\/p>\n<p>  \u041a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u2014 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u043a\u0430\u0436\u0435\u0448\u044c, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043e\u043b\u0438\u0434\u043d\u043e \u0440\u0430\u0437\u043c\u0430\u0437\u0430\u043d\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u044f\u0447\u0435\u0439\u043a\u0430\u043c\u0438, \u043f\u0440\u0430\u0432\u0434\u0430 \u0435\u0441\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043d\u044e\u0430\u043d\u0441.<br \/>  \u041f\u043e\u043d\u044f\u0432 \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044f\u0447\u0435\u0439\u043a\u0438 \u0438 \u0438\u043c\u0435\u044f \u043d\u0430 \u0440\u0443\u043a\u0430\u0445 \u0433\u0440\u0430\u0444 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0437\u0430\u0439\u043c\u0435\u0442 \u043e\u0442 \u0441\u0438\u043b\u044b \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u0447\u0430\u0441\u0430.<\/p>\n<p>  \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0441 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0441 \u0433\u0440\u0430\u0444\u043e\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0441\u043c\u044b\u0441\u043b\u0430 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442, \u0442\u0430\u043c \u0441\u043e\u043a\u0440\u044b\u0442 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043c\u0430\u0442\u0430\u043f\u043f\u0430\u0440\u0430\u0442, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b VM, \u0435\u0441\u0442\u044c \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u043d\u043e \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0435 \u043a\u0443\u0441\u043a\u0438 \u043a\u043e\u0434\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 \u0446\u0438\u043a\u043b\u0435 \u043c\u0435\u043d\u044f\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445\/\u0442\u0440\u0435\u0445 \u044f\u0447\u0435\u0435\u043a \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u043c\u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0432\u0441\u0435 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435).<\/p>\n<h4>12. \u0420\u0430\u0437\u0431\u043e\u0440 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043b\u043e\u0433\u0438\u043a\u0438 \u043d\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435.<\/h4>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044f\u0447\u0435\u0439\u043a\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0445 \u0446\u0438\u043a\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u0433\u0440\u0430\u0444\u0435 \u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0444\u0438\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0443\u0431\u0438\u0440\u0430\u044e\u0449\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0446\u0438\u043a\u043b\u0430.<\/p>\n<p>  \u0412\u043e\u0442 \u043d\u0430 \u044d\u0442\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u044f \u0438\u0445 \u0441\u0440\u0430\u0437\u0443 \u0432\u044b\u0434\u0435\u043b\u0438\u043b \u043a\u0440\u0430\u0441\u043d\u044b\u043c\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430\u043c\u0438 \u0438 \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0441\u044f \u043e\u0442 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043b\u043e\u0433\u0438\u043a\u0438 VM:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/fca\/2db\/9b0\/fca2db9b0d87e651adce10c63c190fa9.png\"\/><\/div>\n<p>  \u0414\u0432\u0443\u043c\u044f \u0441\u0438\u043d\u0438\u043c\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430\u043c\u0438 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u044b \u0442\u0430\u043a-\u0436\u0435 \u0446\u0438\u043a\u043b\u044b \u0447\u0442\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044f\u0447\u0435\u0435\u043a, \u043d\u043e \u0442.\u043a. \u0432 \u043d\u0438\u0445 \u0437\u0430\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 Login[0] \u0438 Login[1] (\u044d\u0442\u043e \u044f \u0443\u0437\u043d\u0430\u043b \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0432 \u0432\u0441\u0435 \u0446\u0438\u043a\u043b\u044b \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430), \u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 \u0435\u0434\u0438\u043d\u0438\u0446 \u0432 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043d\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f, \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0437\u0430\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u044f\u0447\u0435\u0439\u043a\u0438 \u211626 \u0438 \u21166, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u044f\u0447\u0435\u0439\u043a\u0438 \u211626 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e.<\/p>\n<p>  \u041d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u0438\u0434\u043d\u043e (\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f zoom), \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0432\u043e\u0442 \u0432\u0442\u043e\u0440\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438\u043d\u0446\u0438\u043f, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u044f \u043e\u0431\u0432\u043e\u0434\u0438\u043b \u0431\u043b\u043e\u043a\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430\u043c\u0438:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/fa6\/404\/8dd\/fa64048dd848c464a3cef15dbc7a67c4.png\"\/><\/div>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043c\u043e\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u044f \u043f\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043b \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u0435\u0431\u044f \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043b \u043d\u0430 \u0433\u0440\u0430\u0444\u0435 \u0431\u043b\u043e\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 (\u043a\u043d\u043e\u043f\u043a\u0430 \u00ab\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u0443\u0444\u0435\u0440\u0443 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 SN\u00bb). \u041f\u043e \u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0435 \u0432\u044c\u044e\u0432\u0435\u0440 \u043f\u043e\u0434\u0433\u0440\u0443\u0437\u0438\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u043d\u0435\u0435 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 ttCheckLoginBuff \u0438 \u043f\u043e\u043a\u0430\u0436\u0435\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/36d\/435\/bed\/36d435bed8ef1dc1ae1049cca574cb91.png\"\/><\/div>\n<p>  \u0412\u0441\u0435 \u043a\u0430\u043a \u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438, \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0437 \u043b\u043e\u0433\u0438\u043a\u0438 \u0432\u044b\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u043b\u043e\u043a \u0441\u043b\u0435\u0432\u0430 \u0441\u0432\u0435\u0440\u0445\u0443 (\u043e\u0431\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u043d\u0438\u043c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u043c), \u044d\u0442\u043e \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u0438\u0437 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e, \u0447\u0442\u043e \u0432 \u043d\u0435\u043c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439.<\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u0432\u044b\u0432\u043e\u0434 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e \u0432\u0441\u0435\u0439 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u2014 \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u044d\u0442\u0430\u043f\u043e\u0432 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 (\u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u0430\u043a \u0436\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0432\u0435\u0440\u043d\u044b\u043c).<\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043c\u043d\u0435 \u0441\u0442\u0430\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0430 \u0433\u0434\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u044f \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0440\u0430\u043b \u043f\u0440\u0438\u043c\u0435\u0440 \u00abdecompiled_vm_text.exe\u00bb \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u043d\u0430 \u043d\u0443\u043b\u0438, \u0438 \u0441\u043d\u043e\u0432\u0430 \u0441\u043d\u044f\u043b \u0442\u0440\u0430\u0441\u0441\u0443 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 ttWrongSN.<br \/>  \u041f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u0448\u0430\u0433\u043e\u0432 \u044f \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0442\u0440\u0430\u0441\u0441\u044b (\u043a\u043d\u043e\u043f\u043a\u0430 \u00ab\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0442\u0440\u0430\u0441\u0441\u044b \u0441 \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u043c SN\u00bb) \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/3d0\/750\/fff\/3d0750fffe42d32972c5871b73743f2b.png\"\/><\/div>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u2014 \u0431\u0438\u043d\u0433\u043e \ud83d\ude42<br \/>  \u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u0436\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 (\u043f\u0440\u0430\u0432\u044b\u0439 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a) \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0435\u043b \u0432\u044b\u0445\u043e\u0434, \u043f\u0440\u0438\u0447\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0438\u0441\u044c \u043d\u0435 \u0432\u0441\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b (\u0431\u043b\u043e\u043a \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0439 \u043a\u0440\u0430\u0441\u043d\u044b\u043c). \u0417\u043d\u0430\u0447\u0438\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u043d\u0435\u043c \u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c \u043f\u0435\u0440\u0432\u043e\u0439 \u0436\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u0431\u0443\u0444\u0435\u0440\u043e\u043c \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043c.<\/p>\n<p>  \u0422\u043e\u0447\u043d\u0435\u0435 \u0442\u0430\u043a\u0438\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e, \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0432\u043e\u0439, \u0432\u043f\u0440\u043e\u0447\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u0445 \u043b\u043e\u0433\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f, \u0442.\u043a. \u0441\u043c\u044b\u0441\u043b \u0432\u0441\u0435\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u0435\u043d.<\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u044d\u0442\u0430\u043f\u043e\u043c \u044f \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0431\u0440\u044f\u043a\u0438 \u0432 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0435 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 (\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u043d\u044c\u0448\u0435 \u0440\u0430\u0437\u043c\u0435\u0442\u0438\u043b \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430\u043c\u0438), \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u0432 \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<br \/>  \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a:<\/p>\n<ol>\n<li>vm_code_17AB<\/li>\n<li>vm_code_1A63<\/li>\n<li>vm_code_1E74<\/li>\n<li>vm_code_2333<\/li>\n<li>vm_code_28DA \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437 \u0432 \u0446\u0438\u043a\u043b\u0435<\/li>\n<li>vm_code_2AF3<\/li>\n<li>vm_code_2D27<\/li>\n<li>vm_code_2F41<\/li>\n<\/ol>\n<p>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u0443\u044f\u0441\u044c \u043d\u0430 \u0433\u0440\u0430\u0444, \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0439\u0442\u0438\u0441\u044c \u043f\u043e \u0432\u0441\u0435\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043c\u0435\u0441\u0442\u0430\u043c (\u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u044f \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043b\u043e\u0433\u0438\u043a\u0438 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b \u043b\u043e\u0433\u0438\u043d\u0430\/SN) \u0438 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430\u0434 \u044d\u0442\u0438\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438.<\/p>\n<p>  \u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u044b \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430, \u0447\u0442\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0443\u0431\u0438\u0440\u0430\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430. \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u044f \u0431\u0443\u0434\u0443 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 (\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438\u0437 \u0435\u0434\u0438\u043d\u0438\u0446).<\/p>\n<p>  \u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u0440\u0430\u0437\u0431\u043e\u0440\u0443 \u043b\u043e\u0433\u0438\u043a\u0438:<\/p>\n<p>  <b>1. vm_code_17AB<\/b><br \/>  1.1 vm_code_1815 \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 SN[0] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21166<br \/>  1.2 vm_code_17AB_1880 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u044f\u0447\u0435\u0439\u043a\u0435 \u21166 \u0447\u0438\u0441\u043b\u043e 12<br \/>  1.3 vm_code_1903 \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 SN[4] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21167<\/p>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432 \u043e\u0431\u0435\u0438\u0445 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 (6, 7) \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0438 \u0442\u043e-\u0436\u0435 \u0447\u0438\u0441\u043b\u043e, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443: SN[4] = SN[0] + 12<\/p>\n<p>  <b>2. vm_code_1A63<\/b><br \/>  2.1 vm_code_1AD4 \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 SN[0] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21166<br \/>  2.2 vm_code_1B58 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21167<br \/>  2.3 vm_code_1BC8 \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 SN[3] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21166<br \/>  2.4 vm_code_1C4C \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u21166 \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u044f\u0447\u0435\u0439\u043a\u043e\u0439 \u21167 (\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 7)<br \/>  2.5 vm_code_1A63_1C5A \u2014 \u044f\u0447\u0435\u0439\u043a\u0430 \u21167 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0447\u0438\u0441\u043b\u043e 84<br \/>  2.6 vm_code_1D12 \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 SN[2] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21166<\/p>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432 \u043e\u0431\u0435\u0438\u0445 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 (6, 7) \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0438 \u0442\u043e-\u0436\u0435 \u0447\u0438\u0441\u043b\u043e, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u0432\u0442\u043e\u0440\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443: SN[2] = SN[0] + SN[3] + 84<\/p>\n<p>  <b>3. vm_code_1E74<\/b><br \/>  3.1 vm_code_1EE8 \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 Login[0] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21166<br \/>  3.2 vm_code_1F5B \u2014 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 6 \u0432 7 \u044f\u0447\u0435\u0439\u043a\u0443<br \/>  3.3 vm_code_1FDD \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 Login[1] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21166<br \/>  3.4 vm_code_204D \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u21166 \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u044f\u0447\u0435\u0439\u043a\u043e\u0439 \u21167 (\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 7)<br \/>  3.5 vm_code_20CB \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 SN[4] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21166<br \/>  3.6 vm_code_214F \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u21166 \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u044f\u0447\u0435\u0439\u043a\u043e\u0439 \u21167 (\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 7)<br \/>  3.7 vm_code_21C3 \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 SN[1] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21168<\/p>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432 \u043e\u0431\u0435\u0438\u0445 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 (7, 8) \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0438 \u0442\u043e-\u0436\u0435 \u0447\u0438\u0441\u043b\u043e, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u0442\u0440\u0435\u0442\u044c\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443: SN[1] = Login[0] + Login[1] + SN[4]<\/p>\n<p>  <b>4. vm_code_2333<\/b><br \/>  4.1 vm_code_239B \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 Login[8] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21167<br \/>  4.2 vm_code_2493 \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 Login[4] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21166<br \/>  4.3 vm_code_2517 \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u21166 \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u044f\u0447\u0435\u0439\u043a\u043e\u0439 \u21167 (\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 7)<br \/>  4.4 vm_code_2586 \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 Login[2] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21166<br \/>  4.5 vm_code_260A \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u21166 \u043e\u0442\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u044f\u0447\u0435\u0439\u043a\u0438 \u21167 (\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 7)<br \/>  4.6 vm_code_2689 \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 SN[5] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21166<\/p>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432 \u043e\u0431\u0435\u0438\u0445 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 (6, 7) \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0438 \u0442\u043e-\u0436\u0435 \u0447\u0438\u0441\u043b\u043e, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443: SN[5] = Login[8] + Login[4] \u2014 Login[2]<\/p>\n<p>  <b>5. vm_code_28DA<\/b> \u2014 \u0432 \u0446\u0438\u043a\u043b\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c \u043f\u043e \u0432\u0441\u0435\u043c 10 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c \u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u043c \u0438\u0445 \u0441 \u044f\u0447\u0435\u0439\u043a\u043e\u0439 \u21167<\/p>\n<p>  \u0413\u0440\u0443\u0431\u043e \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u044f\u0442\u043e\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"delphi\">Tmp := 0; for I := 0 to 9 do   Inc(Tmp, Login[I]); \/\/ \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u0438\u043d\u0430 &quot;Ms-Rem&quot; \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u043e $11 <\/code><\/pre>\n<p>  \u0421\u0443\u043c\u043c\u0430 \u0432\u0441\u0435\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043b\u043e\u0433\u0438\u043d\u0430 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 \u21167<\/p>\n<p>  <b>6. vm_code_2AF3<\/b><br \/>  6.1 vm_code_2bc5 \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 SN[8] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21166<\/p>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432 \u043e\u0431\u0435\u0438\u0445 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 (6, 7) \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0438 \u0442\u043e-\u0436\u0435 \u0447\u0438\u0441\u043b\u043e, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u0448\u0435\u0441\u0442\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443: SN[8] = Tmp (\u0441\u0443\u043c\u043c\u0430 \u0432\u0441\u0435\u0445 \u0447\u0438\u0441\u0435\u043b \u043b\u043e\u0433\u0438\u043d\u0430)<\/p>\n<p>  <b>7. vm_code_2D27<\/b><br \/>  7.1 vm_code_2D27_2D29 \u2014 \u043a \u044f\u0447\u0435\u0439\u043a\u0435 \u21167 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e 72<br \/>  7.2 vm_code_2DD5 \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 SN[9] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21168<\/p>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432 \u043e\u0431\u0435\u0438\u0445 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 (7, 8) \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0438 \u0442\u043e-\u0436\u0435 \u0447\u0438\u0441\u043b\u043e, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u0441\u0435\u0434\u044c\u043c\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443: SN[9] = Tmp (\u0441\u0443\u043c\u043c\u0430 \u0432\u0441\u0435\u0445 \u0447\u0438\u0441\u0435\u043b \u043b\u043e\u0433\u0438\u043d\u0430) + 72<\/p>\n<p>  <b>8. vm_code_2F41<\/b> (\u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u044b\u0437\u043e\u0432\u0430 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0441\u0443\u043c\u043c\u0430 \u0447\u0438\u0441\u0435\u043b \u043b\u043e\u0433\u0438\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0436\u0430\u0442\u044c \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 \u211618)<br \/>  8.1 vm_code_2FA1 \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 SN[6] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21166<br \/>  8.2 vm_code_2F41_300C \u2014 \u044f\u0447\u0435\u0439\u043a\u0430 \u21166 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0447\u0438\u0441\u043b\u043e 51<br \/>  8.3 vm_code_3071_307D + vm_code_308B \u043f\u0435\u0440\u0435\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c Tmp \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21167<br \/>  8.4 vm_code_30AA \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u21167 \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u044f\u0447\u0435\u0439\u043a\u043e\u0439 \u21166 (\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 6)<br \/>  8.5 vm_code_311D \u2014 \u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 SN[7] \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u21167<\/p>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432 \u043e\u0431\u0435\u0438\u0445 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 (6, 7) \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0438 \u0442\u043e-\u0436\u0435 \u0447\u0438\u0441\u043b\u043e, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u0432\u043e\u0441\u044c\u043c\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443: SN[7] = SN[6] + 51 + Tmp<\/p>\n<p>  \u0412\u043e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u0432\u0435\u0441\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u0441\u043e\u043a\u0440\u044b\u0442\u044b\u0439 \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435, \u043a\u0430\u043a \u043d\u0430 \u043b\u0430\u0434\u043e\u043d\u0438.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043e\u0442 \u0442\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0435\u0433\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"delphi\">program keygenme_source;   {$APPTYPE CONSOLE}   {$R *.res}   uses   Windows,   Math;   function CheckSerial(const ALogin, ASerial: AnsiString): string; const   ValidSN = 'Congratulations!!! It is valid serial!';   InvalidSN = 'Serial invalid :('; var   Login: array [0..9] of Byte;   Serial: array [0..9] of Byte;   I, A, B, Tmp: Byte;   Checked: Boolean; begin   ZeroMemory(@Login[0], 10);   Move(ALogin[1], Login[0], Min(10, Length(ALogin)));     \/\/ \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0441\u0435\u0440\u0438\u0439\u043d\u0438\u043a   for I := 0 to 9 do   begin     A := Byte(ASerial[1 + I * 2]);     B := Byte(ASerial[2 + I * 2]);     if A &gt; $39 then       Dec(A, $37)     else       Dec(A, $30);     if B &gt; $39 then       Dec(B, $37)     else       Dec(B, $30);     A := A shl 4;     Serial[I] := A or B;   end;     \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0435\u0440\u0438\u0439\u043d\u0438\u043a\u0430   Checked := True;     \/\/ \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u0442\u0430\u043f   if Serial[4] &lt;&gt; Byte(Serial[0] + 12) then     Checked := False;     \/\/ \u0432\u0442\u043e\u0440\u043e\u0439 \u044d\u0442\u0430\u043f   if Serial[2] &lt;&gt; Byte(Serial[0] + Serial[3] + 84) then     Checked := False;     \/\/ \u0442\u0440\u0435\u0442\u0438\u0439 \u044d\u0442\u0430\u043f   if Serial[1] &lt;&gt; Byte(Login[0] + Login[1] + Serial[4]) then     Checked := False;     \/\/ \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044b\u0439 \u044d\u0442\u0430\u043f   if Serial[5] &lt;&gt; Byte(Login[8] + Login[4] - Login[2]) then     Checked := False;     \/\/ \u043f\u044f\u0442\u044b\u0439 \u044d\u0442\u0430\u043f   Tmp := 0;   for I := 0 to 9 do     Inc(Tmp, Login[I]);     \/\/ \u0448\u0435\u0441\u0442\u043e\u0439 \u044d\u0442\u0430\u043f   if Serial[8] &lt;&gt; Tmp then     Checked := False;     \/\/ \u0441\u0435\u0434\u044c\u043c\u043e\u0439 \u044d\u0442\u0430\u043f   if Serial[9] &lt;&gt; Byte(Tmp + 72) then     Checked := False;     \/\/ \u0432\u043e\u0441\u044c\u043c\u043e\u0439 \u044d\u0442\u0430\u043f   if Serial[7] &lt;&gt; Byte(Serial[6] + 51 + Tmp) then     Checked := False;     \/\/ \u0432\u044b\u0432\u043e\u0434 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430   if Checked then     Result := ValidSN   else     Result := InvalidSN;   end;   begin   Writeln(CheckSerial('Ms-Rem', 'C38FB7A0CF38F73B1159'));   Readln; end. <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041d\u0443 \u0447\u0442\u043e\u2026 \u0432\u043e\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438 \u0432\u0441\u0435, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0442\u0440\u0435\u0442\u0438\u0439 \u043a\u043e\u043d\u0432\u0435\u0440\u0442 \u0441\u043d\u044f\u0442.<br \/>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c.<\/p>\n<h4>13. \u041f\u0438\u0448\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0445 \u043d\u043e\u043c\u0435\u0440\u043e\u0432.<\/h4>\n<p>  \u0412 \u0437\u0430\u0434\u0430\u0447\u0435 keygenme \u0448\u043b\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u2014 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0435\u0433\u043e \u0437\u0430\u043a\u0435\u0439\u0433\u0435\u043d\u0438\u0442\u044c, \u0442.\u0435. \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0438\u043d\u0430.<\/p>\n<p>  \u0418\u043c\u0435\u044f \u043d\u0430 \u0440\u0443\u043a\u0430\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e.<br \/>  \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043f\u043e\u043b\u044f \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e SN[0], SN[3] \u0438 SN[6] \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f, \u043e\u043d\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0442 \u043f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u043b\u0435\u0439. \u0421\u0442\u0430\u043b\u043e \u0431\u044b\u0442\u044c \u044d\u0442\u0438 \u0442\u0440\u0438 \u043f\u043e\u043b\u044f \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043b\u044e\u0431\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0443\u0436\u0435 \u043d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0435.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043a\u043e\u0434 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"delphi\">program serial_generator;   {$APPTYPE CONSOLE}   {$R *.res}   uses   Windows,   Math,   SysUtils;   function GetSN(const ALogin: AnsiString): string; var   Login: array [0..9] of Byte;   Serial: array [0..9] of Byte;   I, Tmp: Byte; begin   ZeroMemory(@Login[0], 10);   Move(ALogin[1], Login[0], Min(10, Length(ALogin)));     Randomize;     \/\/ \u044d\u0442\u0438 \u0442\u0440\u0438 \u043f\u043e\u043b\u044f \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f   Serial[0] := Random(255);   Serial[3] := Random(255);   Serial[6] := Random(255);     \/\/ \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430   Serial[4] := Serial[0] + 12;     \/\/ \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430   Serial[2] := Serial[0] + Serial[3] + 84;     \/\/ \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u044d\u0442\u0430\u043f\u0430   Serial[1] := Login[0] + Login[1] + Serial[4];     \/\/ \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430   Serial[5] := Login[8] + Login[4] - Login[2];     \/\/ \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u0441\u0443\u043c\u043c\u0443 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043b\u043e\u0433\u0438\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u043e\u043c \u043d\u0430 \u043f\u044f\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435   Tmp := 0;   for I := 0 to 9 do     Inc(Tmp, Login[I]);     \/\/ \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0448\u0435\u0441\u0442\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430   Serial[8] := Tmp;     \/\/ \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0435\u0434\u044c\u043c\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430   Serial[9] := Tmp + 72;     \/\/ \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u043e\u0441\u044c\u043c\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430   Serial[7] := Serial[6] + 51 + Tmp;     \/\/ \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0432\u0438\u0434\u0435 \u043d\u0430\u0431\u043e\u0440\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 HEX \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438   Result := '';   for I := 0 to 9 do     Result := Result + IntToHex(Serial[I], 2); end;   begin   Writeln(GetSN('Rouse_'));   Readln; end. <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412 \u0438\u0442\u043e\u0433\u0435 \u0432\u043e\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0445 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u043d\u0430 \u00abRouse_\u00bb:<\/p>\n<ol>\n<li>5E2BB2006AF04EEE6DB5<\/li>\n<li>C5929D84D1F0F9996DB5<\/li>\n<li>BC894434C8F0BA5A6DB5<\/li>\n<li>14E19B3320F0B2526DB5<\/li>\n<\/ol>\n<p>  Keygenme \u0440\u0435\u0448\u0435\u043d.<\/p>\n<h4>14. \u0412\u044b\u0432\u043e\u0434\u044b<\/h4>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043d\u043e\u0432\u043e \u043f\u0440\u043e\u0439\u0434\u0435\u043c\u0441\u044f \u043f\u043e \u044d\u0442\u0430\u043f\u0430\u043c \u0438 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c, \u043a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b\u0438\u0441\u044c \u0434\u043b\u044f \u0441\u043e\u043a\u0440\u044b\u0442\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430:<\/p>\n<p>  1. \u0421\u0431\u0440\u043e\u0441 \u0442\u043e\u0447\u043a\u0438 \u0432\u0445\u043e\u0434\u0430 \u0432 \u043d\u043e\u043b\u044c \u2014 \u043c\u0435\u0442\u043e\u0434 \u0441\u043f\u043e\u0440\u043d\u044b\u0439, \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u0442\u0440\u044e\u043a, \u0430\u043d\u0442\u0438\u0432\u0438\u0440\u0443\u0441\u044b \u0431\u0443\u0434\u0443\u0442 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u043d\u0438\u0435\u043c, \u0438\u0431\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b, \u0441\u0442\u0430\u043b\u043e \u0431\u044b\u0442\u044c \u043a\u0442\u043e-\u0442\u043e \u0435\u0433\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043b \u0447\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u043c \u0434\u043b\u044f \u0430\u043d\u0442\u0438\u0432\u0438\u0440\u0443\u0441\u0430.<\/p>\n<p>  2. \u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u2014 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043d\u0435 \u043d\u0430\u043a\u0430\u0437\u0443\u0435\u043c\u043e, \u043d\u043e \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u0441\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0438\u044f.<\/p>\n<p>  3. \u041a\u043e\u0434 \u0434\u0435\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430 \u043e\u0431\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043c\u0443\u0441\u043e\u0440\u043e\u043c \u2014 \u0441\u043f\u043e\u0440\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0443\u0441\u043e\u0440\u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438. \u041d\u0443 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u043c\u0435\u0441\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 ADD EAX, 2 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0439 \u0431\u043b\u043e\u043a (\u043f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e \u0432 \u0433\u043e\u043b\u043e\u0432\u0443):<\/p>\n<pre><code class=\"delphi\">asm   inc  eax \/\/ \u043f\u0435\u0440\u0432\u0430\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f   \/\/ \u043d\u0430\u0447\u0430\u043b\u043e \u043c\u0443\u0441\u043e\u0440\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430   push eax   lea  eax, @label   inc  eax   xchg eax, [esp]   call @label @label:   ret   \/\/ \u043a\u043e\u043d\u0435\u0446 \u043c\u0443\u0441\u043e\u0440\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430   inc eax \/\/ \u0432\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f end; <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u043e\u0439 \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u0443\u0436\u0435 \u043d\u0435 \u0441\u043d\u044f\u0442\u044c \u043d\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c, \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0445, \u0442.\u043a. \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<br \/>  \u0415\u0441\u043b\u0438 \u043d\u0430\u0434 \u0442\u0430\u043a\u0438\u043c \u0431\u043b\u043e\u043a\u043e\u043c \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0448\u0430\u043c\u0430\u043d\u0438\u0442\u044c \u0438 \u0440\u0430\u0437\u0434\u0443\u0442\u044c \u0434\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446 \u043c\u0443\u0441\u043e\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e. \u0422\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0441\u0442\u0435\u043a, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043d\u0430 \u043d\u0435\u043c \u043c\u043e\u0436\u043d\u043e, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0443\u0441\u043e\u0440\u0430, \u0445\u043e\u0442\u044c \u0442\u0435\u043e\u0440\u0435\u043c\u0443 \u0424\u0435\u0440\u043c\u0430 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0434\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0434\u043e\u0435\u0441\u0442, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \ud83d\ude42<\/p>\n<p>  4. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u2014 \u0438\u0437-\u0437\u0430 \u043d\u0435\u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u0445 \u0445\u044d\u043d\u0434\u043b\u0435\u0440\u043e\u0432 (\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 VM) \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0435 \u0430\u043d\u0430\u043b\u043e\u0433 \u043d\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0432\u0440\u0435\u043c\u044f\u0437\u0430\u0442\u0440\u0430\u0442. \u041f\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u043c\u0443 \u0432 \u0431\u043e\u0435\u0432\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0445\u0435\u043d\u0434\u043b\u0435\u0440\u044b VM \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b, \u0434\u043b\u044f \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043b\u043e\u0433\u0438\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b VM. \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0434\u043b\u044f keygenme \u044d\u0442\u043e\u0442 \u044d\u0442\u0430\u043f \u0438\u0437\u043b\u0438\u0448\u0435\u043d, \u043d\u043e \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0431\u044b\u0432\u0430\u0442\u044c \u043e \u0442\u0430\u043a\u043e\u0439 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0438.<\/p>\n<p>  5. \u041b\u043e\u0433\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b PiCode \u2014 \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u044f\u0432\u043d\u043e \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0431\u0443\u0444\u0435\u0440\u0430 \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c\/SN \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0435\u0434\u0438\u043d\u044b\u043c \u043d\u0430 \u0432\u0441\u0435\u0445 \u044d\u0442\u0430\u043f\u0430\u0445, \u0447\u0442\u043e \u0434\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430. \u0415\u0441\u043b\u0438 \u0431\u044b \u0431\u044b\u043b\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 (\u0430 \u043b\u0443\u0447\u0448\u0435 \u0441\u0432\u043e\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430) \u044d\u0442\u043e \u0431\u044b \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0438\u043b\u043e \u0430\u043d\u0430\u043b\u0438\u0437.<\/p>\n<p>  6. \u0410\u043d\u0430\u043b\u0438\u0437 VM \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043b\u0441\u044f \u0431\u044b \u0432 \u0440\u0430\u0437\u044b, \u0435\u0441\u043b\u0438 \u0431\u044b \u0432\u043d\u0443\u0442\u0440\u0438 PiCode \u0441\u0438\u0434\u0435\u043b\u0430 \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 (\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0442\u043e\u0433\u043e-\u0436\u0435 Brainfuck) \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0430 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u044e \u0441\u0432\u043e\u0435\u0433\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e PiCode.<\/p>\n<p>  <b>\u0427\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435:<\/b><\/p>\n<p>  \u041e\u0447\u0435\u043d\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 keygenme, \u0432\u0435\u043b\u0438\u043a\u043e\u043b\u0435\u043f\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043e\u0439. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043d \u043d\u0435 \u0434\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442\u0430 \u2014 \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0431\u044b\u043b \u043f\u043e\u043b\u0443\u0447\u0435\u043d PiCode \u0434\u043b\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \ud83d\ude42<\/p>\n<p>  \u042d\u0442\u043e\u0442 \u044d\u0442\u0430\u043f \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u0435\u043d \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430, \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u0432\u043e\u0438 \u043c\u0435\u0442\u043e\u0434\u044b, \u0432\u043f\u0440\u043e\u0447\u0435\u043c \u0432 \u043f\u043b\u0430\u043d\u0430\u0445 \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0438\u043a\u043e\u0434\u0430, \u043f\u0440\u0430\u0432\u0434\u0430 \u0434\u043b\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0442\u0438\u043f\u0430 VM.<\/p>\n<p>  \u0421\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043e\u0434\u0438\u043d \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0432\u0437\u043b\u043e\u043c\u0430 \u0442\u0430\u043a\u0438\u0445 VM, \u0431\u0435\u0437 \u044d\u0442\u0430\u043f\u0430 \u0434\u0435\u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u0438 \u0430\u0441\u043c \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f \u0433\u0440\u0430\u0444 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f VM.<br \/>  \u042f \u0434\u0443\u043c\u0430\u044e \u044d\u0442\u043e \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u0430\u043c \u043f\u0440\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 VM, \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0438\u0445 \u0441\u0442\u043e\u0439\u043a\u043e\u0441\u0442\u0438 \u043a \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u043c\u0443 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0443 \u0432\u0437\u043b\u043e\u043c\u0430.<\/p>\n<p>  \u041d\u0443 \u0430 \u0435\u0441\u043b\u0438 \u0432\u044b \u0435\u0449\u0435 \u043d\u0435 \u043f\u043e\u0434\u043e\u0448\u043b\u0438 \u043a \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 VM, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u0438\u043c\u0435\u0435\u0442\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \ud83d\ude42<\/p>\n<p>  \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u0435\u043c\u043e\u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043a \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u043f\u043e \u044d\u0442\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435: <a href=\"http:\/\/rouse.drkb.ru\/blog\/vm_analize.zip\">http:\/\/rouse.drkb.ru\/blog\/vm_analize.zip<\/a><\/p>\n<p>  \u0414\u0435\u043b\u0430\u0439\u0442\u0435 \u0432\u044b\u0432\u043e\u0434\u044b \u0438 \u0443\u0434\u0430\u0447\u0438 \ud83d\ude42    \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/218887\/\"> http:\/\/habrahabr.ru\/post\/218887\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0437\u0430\u0449\u0438\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \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\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u00ab\u0442\u0440\u044e\u043a\u043e\u0432\u00bb \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a: \u0441\u0431\u0440\u043e\u0441 \u0442\u043e\u0447\u043a\u0438 \u0432\u0445\u043e\u0434\u0430 \u0432 \u043d\u043e\u043b\u044c, \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043b\u0430 \u0444\u0430\u0439\u043b\u0430 \u0438 \u0434\u0435\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u043d\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u043c \u043f\u043e\u043b\u0438\u043c\u043e\u0440\u0444\u043e\u043c, \u0441\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u043b\u043e\u0433\u0438\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u0442\u0435\u043b\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b.<\/p>\n<p>  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u044f\u0436\u0435\u043b\u0430\u044f \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430, \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u043e\u0439 \u0437\u0430\u0449\u0438\u0442\u044b \u041f\u041e, \u043d\u043e \u0442\u0443\u0442 \u0443\u0436 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u0434\u0435\u043b\u0430\u0442\u044c.<\/p>\n<p>  \u0414\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0438\u043b\u0438 \u043c\u0435\u043d\u0435\u0435 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 (\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e) \u0430 \u0442\u0430\u043a-\u0436\u0435 \u043d\u0430\u0432\u044b\u043a\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u043e\u043c.<\/p>\n<p>  \u041d\u043e \u0438 \u0442\u0435\u043c, \u043a\u0442\u043e \u043d\u0430\u0434\u0435\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0443\u0442 \u0434\u0430\u043d\u044b \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0448\u0430\u0433\u0438 \u043f\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0437\u0430\u0449\u0438\u0442\u044b, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b, \u043d\u043e\u2026 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u0432\u0437\u043b\u043e\u043c\u0430 \u0438 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0440\u0435\u0432\u0435\u0440\u0441\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430.<\/p>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0446\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u0441\u0442\u0430\u0432\u0438\u043b \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0431\u043e\u0439, \u044d\u0442\u043e \u0434\u0430\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u043a\u0430\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a\u0430\u044f \u0437\u0430\u0449\u0438\u0442\u0430 \u041f\u041e, \u043d\u043e \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u043a\u0430\u043a \u043a \u044d\u0442\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442\u044c \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u0430\u0448\u0443 \u0437\u0430\u0449\u0438\u0442\u0443, \u0438\u0431\u043e \u0435\u0441\u0442\u044c \u0441\u0442\u0430\u0440\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u2014 \u043d\u0435\u043b\u044c\u0437\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u044f\u0434\u0440\u0430 \u0437\u0430\u0449\u0438\u0442\u044b, \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0441\u0435\u0431\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0435\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0432\u0437\u043b\u043e\u043c\u0430.<\/p>\n<p>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0446\u0438\u043f\u0438\u0435\u043d\u0442\u0430, \u043f\u043e \u0441\u043e\u0432\u0435\u0442\u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0430, \u044f \u0432\u044b\u0431\u0440\u0430\u043b \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u0441\u0442\u0430\u0440\u044b\u0439 (\u043d\u043e \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u0432\u0448\u0438\u0439 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0432 \u0441\u0438\u043b\u0443 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f) keygenme \u043e\u0442 \u043d\u0435\u0431\u0435\u0437\u044b\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e Ms-Rem.<\/p>\n<p>  \u0412\u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430, \u0433\u0434\u0435 \u043e\u043d \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f: <a href=\"http:\/\/exelab.ru\/f\/index.php?action=vthread&amp;forum=1&amp;topic=4732\">http:\/\/exelab.ru\/f\/index.php?action=vthread&#038;forum=1&#038;topic=4732<\/a><br \/>  \u0410 \u043f\u043e\u0442\u043e\u043c \u043e\u043d \u043f\u043e\u043f\u0430\u043b \u0432\u043e\u0442 \u0441\u044e\u0434\u0430: <a href=\"http:\/\/www.crackmes.de\/users\/ms_rem\/keygenme_by_ms_rem\/\">http:\/\/www.crackmes.de\/users\/ms_rem\/keygenme_by_ms_rem\/<\/a><br \/>  \u0413\u0434\u0435 \u0434\u0430\u043d\u043d\u043e\u043c\u0443 keygenme \u0431\u044b\u043b \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c 8 \u0438\u0437 10 (*VERY VERY* hard).<br \/>  \u0425\u043e\u0442\u044f, \u0435\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u044d\u0442\u043e \u0441\u043b\u0435\u0433\u043a\u0430 \u0437\u0430\u0432\u044b\u0448\u0435\u043d\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u2014 \u044f \u0431\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0432 \u0440\u0430\u0439\u043e\u043d\u0435 5-6 \u0431\u0430\u043b\u043b\u043e\u0432.<\/p>\n<p>  \u041f\u043e\u0436\u0430\u043b\u0443\u0439, \u043d\u0430\u0447\u043d\u0435\u043c.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-218887","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/218887","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=218887"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/218887\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=218887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=218887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=218887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}