{"id":255417,"date":"2015-04-17T03:23:02","date_gmt":"2015-04-16T23:23:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=255417"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=255417","title":{"rendered":"\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0449\u0438\u0442\u044b \u0438\u0433\u0440\u044b Limbo. \u041a\u0435\u0439\u0433\u0435\u043d"},"content":{"rendered":"\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/8e6\/bd8\/ffe\/8e6bd8ffe0a44a71a6b952abe9cc6e58.png\" \/><\/div>\n<p>  \u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041c\u043d\u043e\u0433\u0438\u0435 \u0437\u043d\u0430\u044e\u0442 \u043e\u0431 \u044d\u0442\u043e\u0439 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u0433\u0440\u0435 \u2014 <b>LIMBO<\/b>! \u0412\u044b \u0434\u0430\u0436\u0435 \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043f\u043e\u043a\u0443\u043f\u0430\u043b\u0438 \u0435\u0435 \u0432 <b>\u0421\u0442\u0438\u043c\u0435<\/b>, \u0438\u043b\u0438 \u043a\u0430\u0447\u0430\u043b\u0438 \u0441 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u043e\u0432\u2026<br \/>  \u042f \u0442\u043e\u0436\u0435 \u0435\u0435 \u043a\u0443\u043f\u0438\u043b \u043a\u043e\u0433\u0434\u0430-\u0442\u043e (<u>\u0447\u0442\u043e \u0438 \u0432\u0430\u043c \u0441\u043e\u0432\u0435\u0442\u0443\u044e!<\/u>), \u0438 \u043f\u0440\u043e\u0448\u0435\u043b). \u041d\u043e, \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u043b\u043e, \u0438 \u044f, \u0438\u0437 \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430, \u0440\u0435\u0448\u0438\u043b \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0435\u0435 \u0437\u0430\u0449\u0438\u0442\u0443. \u0422\u0430\u043a \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f <b><i>\u043a\u0435\u0439\u0433\u0435\u043d<\/i><\/b> \u043a \u0438\u0433\u0440\u0435 <b>LIMBO<\/b>.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0438 \u043f\u043e\u043a\u0430\u0436\u0443 \u0412\u0430\u043c, \u043a\u0430\u043a \u044f \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u043b.<\/p>\n<h5><b>\u042d\u0442\u0430\u043f \u043f\u0435\u0440\u0432\u044b\u0439: \u041f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u043d\u044b\u0439 \u043e\u0441\u043c\u043e\u0442\u0440 \u043f\u0430\u0446\u0438\u0435\u043d\u0442\u0430<\/b><\/h5>\n<p>  \u041f\u043e\u043b\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440 \u0438\u0433\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c <a href=\"http:\/\/playdead.com\/limbo\/download\/\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432 \u0438\u0433\u0440\u0443, \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c, \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, \u0432\u044b\u044f\u0441\u043d\u044f\u0435\u043c, \u043d\u0430 \u0447\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b. \u042f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e <a href=\"http:\/\/exeinfo.atwebpages.com\/\">ExeInfo PE<\/a>.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/10a\/d39\/91c\/10ad3991ce01477c9d5123eed137b333.png\" \/><\/div>\n<p>  \u0412\u0438\u0434\u0438\u043c: <b>Visual Studio 2008<\/b>. <b>IDA Pro<\/b> \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0441 \u043d\u0435\u0439 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0443\u0434\u0430 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043c. \u042f \u0431\u0443\u0434\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0432\u044f\u0437\u043a\u043e\u0439 <i><b>IDA Pro + HexRays<\/b><\/i>, \u0442.\u0435. \u0441 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u2014 \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<h5><b>\u042d\u0442\u0430\u043f \u0432\u0442\u043e\u0440\u043e\u0439: \u0447\u0442\u043e \u043c\u044b \u0438\u0449\u0435\u043c?<\/b><\/h5>\n<p>  \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c, \u0434\u0430\u0434\u0438\u043c <b>\u0418\u0434\u0435<\/b> \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c <b>limbo.exe<\/b> \u2014 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b \u0438\u0433\u0440\u044b.<\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435, \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043c\u044b, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0445\u043e\u0442\u0438\u043c \u043d\u0430\u0439\u0442\u0438 \u0437\u0434\u0435\u0441\u044c.=) \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0438\u0433\u0440\u0443!  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/a4f\/dc0\/035\/a4fdc0035a1247459e6ca09a5d7e6068.png\" \/><\/div>\n<p>  \u0412\u0438\u0434\u0438\u043c \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u0443\u044e \u043d\u0430\u0434\u043f\u0438\u0441\u044c &quot;<b>UNLOCK FULL GAME<\/b>&quot;. \u041d\u0430 \u043d\u0435\u0435 \u0438 \u043d\u0430\u0436\u043c\u0435\u043c. \u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0441 \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u043d\u0435\u0436\u0434\u0430\u043d\u0447\u0438\u043a (\u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u044f, \u043a\u043e\u0433\u0434\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437 \u0432\u044b\u0431\u0438\u0440\u0430\u043b \u044d\u0442\u043e\u0442 \u043f\u0443\u043d\u043a\u0442 \u043c\u0435\u043d\u044e, \u044f \u043e\u0436\u0438\u0434\u0430\u043b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u043e\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0435 \u0438\u0433\u0440\u044b, \u0438\u043b\u0438 \u0442\u0438\u043f\u0430 \u0442\u043e\u0433\u043e, \u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0432\u0441\u0435 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u0440\u043e\u0449\u0435&#8230;):  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/deb\/303\/daa\/deb303daaff44069af42e2caa8480118.png\" \/><\/div>\n<p>  \u0414\u0430, \u0434\u0430! \u0418\u043c\u0435\u043d\u043d\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u043e\u043a\u043e\u0448\u043a\u043e!=) \u041d\u0430\u043c \u0436\u0435 \u043b\u0435\u0433\u0447\u0435. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0432\u0432\u0435\u0441\u0442\u0438, \u0438 \u043d\u0430\u0436\u0430\u0442\u044c <b>Unlock<\/b>. \u041a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a:  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/2cd\/fe5\/c35\/2cdfe5c358364c839858a6ebe63ef43d.png\" \/><\/div>\n<p>  \u041d\u0443 \u0447\u0442\u043e \u0436, \u043f\u043e\u0438\u0449\u0435\u043c \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443 \u0432 <b>IDA<\/b>, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0442\u0435\u043c \u043e\u0442 \u043d\u0435\u0433\u043e \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f, \u0438 \u043d\u0430\u0439\u0442\u0438 \u043c\u0435\u0441\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438. \u0418 \u0442\u0443\u0442 \u043c\u0435\u043d\u044f \u043e\u0436\u0438\u0434\u0430\u043b \u043e\u0431\u043b\u043e\u043c\u2026<br \/>  \u041f\u043e \u0442\u0435\u043a\u0441\u0442\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u043e\u043a\u043d\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 <b>\u0418\u0434\u0430<\/b> \u043c\u043d\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0448\u043b\u0430! \u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0441\u043a\u0430\u0437\u0430\u043b \u043c\u043d\u0435 \u0438 \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443 \u0447\u0435\u0440\u0435\u0437 <b>Total Commander<\/b>. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043e. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0439\u0442\u0438 \u0432\u044b\u0437\u043e\u0432 \u043e\u043a\u043d\u0430 \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u044f\u0441\u044c \u043e\u0442 \u0432\u044b\u0437\u043e\u0432\u0430 <b>MessageBoxA\/W<\/b>. \u041d\u043e, \u044f \u043f\u043e\u0448\u0435\u043b \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0443\u0442\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e, \u043c\u0430\u043b\u043e \u0433\u0434\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442.<\/p>\n<h5><b>\u042d\u0442\u0430\u043f \u0442\u0440\u0435\u0442\u0438\u0439: \u041d\u0430\u0436\u043c\u0438 \u043c\u0435\u043d\u044f<\/b><\/h5>\n<p>  \u041c\u044b \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u041e\u0442\u043a\u0440\u043e\u0435\u043c \u043b\u044e\u0431\u043e\u0439 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0412\u0430\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u0437\u0430\u0442\u0430\u0449\u0438\u043c \u0432 \u043d\u0435\u0433\u043e \u0435\u0445\u0435-\u0448\u043d\u0438\u043a, \u043d\u0430\u0439\u0434\u0435\u043c \u043e\u043a\u043e\u0448\u043a\u043e \u0434\u0438\u0430\u043b\u043e\u0433\u0430 \u0432\u0432\u043e\u0434\u0430 \u043a\u043b\u044e\u0447\u0430, \u0430 \u0432 \u043d\u0435\u043c \u2014 \u043a\u043d\u043e\u043f\u043a\u0443 <b>Unlock<\/b>. \u0421\u043a\u0430\u0437\u0430\u043d\u043e \u2014 \u0441\u0434\u0435\u043b\u0430\u043d\u043e:  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/8bb\/27c\/3b1\/8bb27c3b11124aaba4ddc3f06457c528.png\" \/><\/div>\n<p>  \u041d\u0430 \u0441\u043a\u0440\u0438\u043d\u0435 \u044f \u0432\u044b\u0434\u0435\u043b\u0438\u043b <b>ID<\/b> \u043d\u0430\u0448\u0435\u0439 \u043a\u043d\u043e\u043f\u043a\u0438. \u041f\u043e \u043d\u0435\u043c\u0443 \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043a\u0430\u0442\u044c, \u0433\u0434\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0436\u0430\u0442\u0438\u0435. \u041e\u0442\u043a\u0440\u043e\u0435\u043c <b>\u0418\u0434\u0443<\/b>, \u043d\u0430\u0436\u043c\u0435\u043c <b>Alt+I<\/b> (<i>Search -&gt; immediate value<\/i>&#8230;), \u0432\u0432\u0435\u0434\u0435\u043c \u0447\u0438\u0441\u043b\u043e <i><b>203<\/b><\/i> (\u0431\u0435\u0437 <b>0x<\/b>, \u0442.\u043a. \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0435), \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043d\u0430\u0439\u0434\u0435\u0442\u0441\u044f. \u0410 \u043d\u0430\u0448\u043b\u043e\u0441\u044c \u0432\u043e\u0442 \u044d\u0442\u043e:  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/7db\/7cc\/34c\/7db7cc34c53b41f0a65d500a96ac6ec9.png\" \/><\/div>\n<p>  \u0412\u0438\u0434\u0438\u0442\u0435 \u0442\u0435 \u0441\u0442\u0440\u043e\u0447\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 <b>\u0418\u0434\u0430<\/b> \u043f\u043e\u043c\u0435\u0442\u0438\u043b\u0430 \u043a\u0430\u043a <b>; nIDDlgItem<\/b>? \u0421 \u043d\u0438\u0445 \u0438 \u043d\u0430\u0447\u043d\u0435\u043c. \u0414\u0432\u043e\u0439\u043d\u044b\u043c \u043a\u043b\u0438\u043a\u043e\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432:  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/bbc\/e25\/c7b\/bbce25c7b9384da890dba9c431fa25b1.png\" \/><\/div>\n<p>  \u0417\u0435\u043b\u0435\u043d\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u043e\u0439 \u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043b \u043c\u0435\u0441\u0442\u043e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043a\u0430\u0437\u0430\u043b\u0430 <b>\u0418\u0434\u0430<\/b>, \u0430 \u0447\u0443\u0442\u044c \u043d\u0438\u0436\u0435 (<i>\u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0430: \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c \u0432\u044b\u0448\u0435\/\u043d\u0438\u0436\u0435 \u0438\u0441\u043a\u043e\u043c\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430<\/i>) \u2014 \u0441\u0442\u0440\u0435\u043b\u043a\u043e\u0439 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u043c\u0435\u0441\u0442\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 API-\u0444\u0443\u043d\u043a\u0446\u0438\u0438: <b>GetDlgItemTextA<\/b>. \u0421\u0443\u0434\u044f <s>\u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e<\/s> \u043f\u043e <b>MSDN<\/b>, \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0442\u0435\u043a\u0441\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043e\u043a\u043d\u0430 \u0432 \u0431\u0443\u0444\u0435\u0440.<\/p>\n<blockquote><p><i>\u041f\u043e\u0447\u0435\u043c\u0443 \u044f \u0441\u0440\u0430\u0437\u0443 \u043d\u0435 \u0438\u0441\u043a\u0430\u043b \u043f\u043e <b>ID<\/b> \u043f\u043e\u043b\u044f \u0432\u0432\u043e\u0434\u0430? \u041c\u043e\u0436\u043d\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0438 \u0442\u0430\u043a \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041d\u043e, \u043c\u0430\u043b\u043e \u043b\u0438 \u043a\u0430\u043a\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438, \u0435\u0449\u0435 \u0434\u043e \u0432\u044b\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430 \u0438\u0437 \u043f\u043e\u043b\u044f.<\/i><\/p><\/blockquote>\n<p>  \u0418\u0442\u0430\u043a, \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u043c, \u043a\u0443\u0434\u0430 \u0443\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0438\u0439\u043d\u0438\u043a. \u041f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u043c \u043b\u0438\u0441\u0442\u0438\u043d\u0433, \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u043c\u0435\u0441\u0442\u043e \u0432\u044b\u0437\u043e\u0432\u0430 API-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0446\u0435\u043b\u0438\u043a\u043e\u043c:  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/8f1\/8de\/ed7\/8f18deed7061405d929b20237b9a7903.png\" \/><\/div>\n<p>  \u041c\u043e\u0439 &quot;<i>\u043d\u0430\u043c\u044b\u043b\u0435\u043d\u043d\u044b\u0439<\/i>&quot; \u0432\u0437\u0433\u043b\u044f\u0434 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u043d\u0435, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0431\u0443\u0444\u0435\u0440 (<b>\u0418\u0434\u0430<\/b> \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043b\u0430 \u0435\u0433\u043e \u043a\u0430\u043a <b>var_134<\/b>) \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u0438\u043a\u043e\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0437\u0430 \u0432\u044b\u0437\u043e\u0432\u043e\u043c <b>GetDlgItemTextA<\/b> \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432 <b>al<\/b> \u043d\u0443\u043b\u0435\u0432\u043e\u0435, \u043b\u0438\u0431\u043e \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (\u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u043b\u044e\u0447\u0430). \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0434\u043e\u0433\u0430\u0434\u043a\u0443\u2026<\/p>\n<h5><b>\u042d\u0442\u0430\u043f \u0447\u0435\u0442\u044b\u0440\u0435: \u0414\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f<\/b><\/h5>\n<p>  \u0417\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u0412\u0438\u0434\u0438\u043c \u0442\u0430\u043c \u043f\u0440\u044b\u0436\u043e\u043a \u043d\u0430 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0430\u0434\u0440\u0435\u0441 \u2014 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043f\u043e \u043d\u0435\u043c\u0443. \u0412\u0438\u0434\u0438\u043c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043c\u0435\u043b\u043e \u0436\u043c\u0435\u043c \u0442\u0430\u043c <b>F5<\/b> (\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c <b>HexRays Decompiler<\/b>).  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">bool __cdecl sub_48D410(int a1) {   int v1; \/\/ esi@7   char *v2; \/\/ ebp@7   unsigned int v3; \/\/ edi@7   int v4; \/\/ ST28_4@9   int v5; \/\/ edx@9   int v6; \/\/ eax@12   bool result; \/\/ al@12   char v8; \/\/ [sp+4h] [bp-44h]@8   char v9; \/\/ [sp+Ch] [bp-3Ch]@12   char v10; \/\/ [sp+1Ch] [bp-2Ch]@7   char v11; \/\/ [sp+3Ch] [bp-Ch]@12    if ( strlen((const char *)a1) != 37     || *(_BYTE *)(a1 + 5) != 45     || *(_BYTE *)(a1 + 11) != 45     || *(_BYTE *)(a1 + 17) != 45     || *(_BYTE *)(a1 + 23) != 45     || *(_BYTE *)(a1 + 30) != 45 )   {     result = 0;   }   else   {     v1 = 0;     v2 = &v10;     v3 = 0;     do     {       v8 = *(_BYTE *)(v3 + a1);       if ( v8 != 45 )       {         v4 = (char)sub_412EBD(v8);         v1 += v4 &lt;&lt; 5 * (3 - v5);         if ( v5 == 3 )         {           v2 += sprintf(v2, &quot;%05lx&quot;, v1);           v1 = 0;         }       }       ++v3;     }     while ( v3 &lt; 0x25 );     v6 = sub_40C48C(&v10, 32);     sprintf(&v9, &quot;%08x&quot;, v6);     result = strcmp(&v9, &v11) == 0;   }   return result; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043a \u0431\u043e\u043b\u0435\u0435 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e\u043c\u0443.<br \/>  \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c, \u0437\u0430\u043c\u0435\u0447\u0430\u0435\u043c, \u0447\u0442\u043e \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438\u043c\u0435\u0435\u0442 \u0442\u0438\u043f <b>int<\/b>, \u0447\u0442\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u0440\u0430\u0432\u0434\u0430. \u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c \u0435\u0433\u043e \u043a\u0430\u043a &quot;<b>char *<\/b>&quot;. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0441\u044f \u043d\u0430 \u0438\u043c\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0436\u043c\u0435\u043c \u0442\u0430\u043c \u043a\u043b\u0430\u0432\u0438\u0448\u0443 <b>Y<\/b> (<i>Set item type<\/i>). \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u0438\u043f \u0438 \u0438\u043c\u044f \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 (\u044f \u043e\u0431\u043e\u0437\u0432\u0430\u043b \u0435\u0433\u043e \u043a\u0430\u043a <b>key<\/b>).<\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435\u2026 \u0412\u0438\u0434\u0438\u043c \u0441\u0442\u0440\u043e\u0447\u043a\u0443:  <\/p>\n<pre><code class=\"cpp\">  if ( strlen(key) != 37 || key[5] != 45 || key[11] != 45 || key[17] != 45 || key[23] != 45 || key[30] != 45 ) <\/code><\/pre>\n<p>  \u0422.\u043a. \u043d\u0430\u0448 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u2014 \u0441\u0442\u0440\u043e\u043a\u0430, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432 \u0442\u0435\u0445 \u043c\u0435\u0441\u0442\u0430\u0445, \u0433\u0434\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043a\u043b\u044e\u0447\u0430 \u0441\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438, \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u043d\u0430 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u0447\u0438\u0441\u0435\u043b \u043d\u0430\u0436\u043c\u0435\u043c <b>R<\/b> (<i>Char<\/i>). \u0423\u0436\u0435 \u043b\u0443\u0447\u0448\u0435:  <\/p>\n<pre><code class=\"cpp\">  if ( strlen(key) != 37 || key[5] != '-' || key[11] != '-' || key[17] != '-' || key[23] != '-' || key[30] != '-' ) <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0446\u0438\u043a\u043b:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0426\u0438\u043a\u043b \u21161<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">    v1 = 0;     v2 = &v10;     v3 = 0;     do     {       v8 = key[v3];       if ( v8 != 45 )       {         v4 = (char)sub_412EBD(v8);         v1 += v4 &lt;&lt; 5 * (3 - v5);         if ( v5 == 3 )         {           v2 += sprintf(v2, &quot;%05lx&quot;, v1);           v1 = 0;         }       }       ++v3;     }     while ( v3 &lt; 0x25 ); <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u0434\u0438\u043c <b>v3<\/b> \u0438\u043c\u044f <b>i<\/b>, \u0442.\u043a. \u043f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440. \u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043d\u0430 \u0438\u043c\u0435\u043d\u0438 \u043a\u043b\u0430\u0432\u0438\u0448\u0438 <b>N<\/b> (<i>Name<\/i>).<br \/>  \u0417\u0430\u043c\u0435\u0447\u0430\u0435\u043c, \u0447\u0442\u043e \u0432 \u0446\u0438\u043a\u043b\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u0437\u044f\u0442\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0438\u0437 \u043a\u043b\u044e\u0447\u0430, \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0435\u0433\u043e \u0432 \u043f\u043e\u043a\u0430 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0443\u044e \u043d\u0430\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f. \u0414\u0432\u043e\u0439\u043d\u044b\u043c \u0449\u0435\u043b\u0447\u043a\u043e\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0435\u0435. \u0412\u0438\u0434\u0438\u043c \u0442\u0430\u043c \u0432\u044b\u0437\u043e\u0432 \u0435\u0449\u0435 \u043e\u0434\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0442\u0443\u0434\u0430. \u0418, \u0432\u043e\u0442 \u043e\u043d\u043e \u2014 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430! (<i>\u0417\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u043a\u0443\u0447\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u043b\u044f \u043a\u043b\u0430\u0432\u0438\u0448\u0438 <b>R<\/b>, \u043d\u043e \u044f \u043b\u0438\u0448\u044c \u043f\u043e\u043a\u0430\u0436\u0443 \u0441\u0440\u0430\u0437\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/i>).  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0443\u043d\u043a\u0446\u0438\u044f convert_char<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">char __cdecl convert_char(char C) {   char _C; \/\/ al@1    _C = C;   if ( C &lt; '0' )     return -1;   if ( C &lt;= '9' )     return C - '0';   if ( C &lt; 'A' )     return -1;   if ( C &lt;= 'Z' )   {     if ( C != 'I' && C != 'L' && C != 'O' && C != 'U' )     {       if ( C &gt;= 'U' )         _C = C - 1;       if ( _C &gt;= 'O' )         --_C;       if ( _C &gt;= 'L' )         --_C;       if ( _C &gt;= 'I' )         --_C;       return _C - '7';     }     return -1;   }   if ( C &lt; 'a' || C &gt; 'z' || C == 'i' || C == 'l' || C == 'o' || C == 'u' )     return -1;   if ( C &gt;= 'u' )     _C = C - 1;   if ( _C &gt;= 'o' )     --_C;   if ( _C &gt;= 'l' )     --_C;   if ( _C &gt;= 'i' )     --_C;   return _C - 'W'; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e! \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043d\u0430\u0437\u0430\u0434 \u043a\u043b\u0430\u0432\u0438\u0448\u0435\u0439 <b>Esc<\/b> \u0434\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0417\u0430\u043c\u0435\u0447\u0430\u0435\u043c, \u0447\u0442\u043e <b>IDA<\/b> \u0441\u0430\u043c\u0430 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0430 \u0434\u043b\u044f \u043d\u0430\u0441 \u0442\u0438\u043f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430. \u0418\u043c\u0435\u043d\u0443\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u043c \u0442\u0438\u043f\u044b, \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u0446\u0438\u043a\u043b\u0430:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0426\u0438\u043a\u043b \u21162<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">    sum = 0;     x5buf = v10;     i = 0;     do     {       C = key[i];       if ( C != '-' )       {         new_c = j_convert_char(C);         sum += new_c &lt;&lt; 5 * (3 - itr);         if ( itr == 3 )         {           x5buf += sprintf(x5buf, &quot;%05lx&quot;, sum);           sum = 0;         }       }       ++i;     }     while ( i &lt; 0x25 ); <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0442\u043e \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0431\u0430\u0433\u0430 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0435\u0440\u0430. \u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u0430\u044f \u0443 \u043c\u0435\u043d\u044f \u043a\u0430\u043a <b>itr<\/b>, \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f. \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0436\u043c\u0435\u043c <b>\u041f\u041a\u041c -&gt; Copy to assembly<\/b>, \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0433\u0434\u0435 \u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0448\u0430 <b>itr<\/b>. \u0412\u044b\u044f\u0441\u043d\u044f\u0435\u043c: \u043e\u043d\u0430 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u0432 \u044d\u0442\u043e\u043c \u0446\u0438\u043a\u043b\u0435 (\u0447\u0435\u0433\u043e \u0438 \u0441\u0442\u043e\u0438\u043b\u043e \u043e\u0436\u0438\u0434\u0430\u0442\u044c), \u0430 \u0434\u043e \u0446\u0438\u043a\u043b\u0430 \u2014 \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u0442\u0441\u044f. \u0423\u0447\u0442\u0435\u043c \u044d\u0442\u043e \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u0435\u0439\u0433\u0435\u043d\u0430.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u043b\u044e\u0447\u0430\u2026 \u0423 \u043d\u0430\u0441 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043e\u0434\u043d\u0430 \u043d\u0435\u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f, \u043a\u0441\u0442\u0430\u0442\u0438, \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 <b>CRC32<\/b>. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 (\u043f\u0443\u0441\u0442\u044c \u0438 \u043d\u0430 \u0441\u043a\u043e\u0440\u0443\u044e \u0440\u0443\u043a\u0443, \u043d\u043e \u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0439):  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">crc32<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">int __cdecl calc_crc32(char *my_key, int len) {   int i; \/\/ ebp@1   unsigned int _xor; \/\/ ecx@1   char *_my_key; \/\/ edi@2   char C; \/\/ al@3   signed int mask; \/\/ edx@3   int B; \/\/ esi@3   bool bit; \/\/ al@4   int crc32; \/\/ eax@10   signed int _len; \/\/ edx@10    i = len;   _xor = 0xFFFFFFFF;   if ( len )   {     _my_key = my_key;     do     {       C = *_my_key;       --i;       ++_my_key;       mask = 1;       B = (unsigned __int8)C;       do       {         bit = (_xor & 0x80000000) == 0x80000000;         _xor *= 2;         if ( B & mask )           bit = bit == 0;         if ( bit )           _xor ^= 0x4C11DB7u;         mask *= 2;       }       while ( (_BYTE)mask );     }     while ( i );   }   crc32 = _xor & 1;   _len = 0x1F;   do   {     _xor &gt;&gt;= 1;     crc32 = _xor & 1 | 2 * crc32;     --_len;   }   while ( _len );   return ~crc32; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041e\u0441\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u043a\u0443\u0441\u043e\u043a (\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439):  <\/p>\n<pre><code class=\"cpp\">    crc32 = j_calc_crc32(my_key, 32);     sprintf(crc32_, &quot;%08x&quot;, crc32);     result = strcmp(crc32_, &my_key[32]) == 0; <\/code><\/pre>\n<h5><b>\u042d\u0442\u0430\u043f \u043f\u044f\u0442\u044c: \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u0435\u0439\u0433\u0435\u043d\u0430<\/b><\/h5>\n<p>  \u0417\u0430\u0434\u0430\u0447\u0430: \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e \u0441 \u043a\u043b\u044e\u0447\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u041f\u0438\u0441\u0430\u0442\u044c \u044f \u0431\u0443\u0434\u0443, \u0432\u043e\u043f\u0440\u0435\u043a\u0438 \u0437\u0434\u0440\u0430\u0432\u043e\u043c\u0443 \u0441\u043c\u044b\u0441\u043b\u0443 \u0438 \u0432\u044b\u0434\u0430\u0447\u0435 <b>HexRays<\/b>, \u043d\u0430 <b>Delphi<\/b>, \u0430 \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u0442\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0449\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0412\u0430\u043c.<\/p>\n<p>  \u041f\u0443\u0442\u0435\u043c \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0432\u044b\u044f\u0441\u043d\u044f\u0435\u043c \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0435\u0434\u0448\u0435\u0435:  <\/p>\n<ol>\n<li>\u0418\u0433\u0440\u0435 \u043d\u0443\u0436\u0435\u043d \u043a\u043b\u044e\u0447 \u0432 <i><b>32<\/b> \u0441\u0438\u043c\u0432\u043e\u043b\u0430<\/i> \u0431\u0435\u0437 \u0434\u0435\u0444\u0438\u0441\u043e\u0432 (<i><b>37<\/b> \u2014 \u0441 \u0434\u0435\u0444\u0438\u0441\u0430\u043c\u0438<\/i>).<\/li>\n<li>\u0411\u0435\u0440\u0435\u0442\u0441\u044f \u043f\u043e <b><i>\u0447\u0435\u0442\u044b\u0440\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0430<\/i><\/b> \u0438\u0437 \u043a\u043b\u044e\u0447\u0430 (\u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0435\u0444\u0438\u0441\u044b). \u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <b>convert_char<\/b> \u0438 \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435: <b>sum += new_c &lt;&lt; 5 * (3 \u2014 itr)<\/b>;<\/li>\n<li>\u041a\u0430\u0436\u0434\u0430\u044f \u0442\u0430\u043a\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 <i>lower-case<\/i> \u0445\u0435\u043a\u0441-\u0441\u0442\u0440\u043e\u043a\u0443 (<i><b>5<\/b> \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/i>) \u0438 \u0434\u043e\u043a\u043b\u0435\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u0438\u043c\u0435\u044e\u0449\u0435\u0439\u0441\u044f (\u0438\u0442\u043e\u0433\u043e <i><b>40<\/b> \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/i>);<\/li>\n<li>\u0411\u0435\u0440\u0435\u0442\u0441\u044f <b>CRC32<\/b> \u043e\u0442 \u043f\u0435\u0440\u0432\u044b\u0445 <i><b>32<\/b>-\u0445<\/i> \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0439\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u043c\u0438\u0441\u044f <i><b>\u0432\u043e\u0441\u0435\u043c\u044c\u044e<\/b> \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438<\/i> \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043f\u0443\u043d\u043a\u0442\u0435 \u0441\u0442\u0440\u043e\u043a\u0438;<\/li>\n<li>\u0415\u0441\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u043b\u0438 \u2014 \u043d\u0430\u0448 \u043a\u043b\u044e\u0447 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439.<\/li>\n<\/ol>\n<p>  \u041e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0435:  <\/p>\n<ol>\n<li>\u041d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0449\u0443\u044e <i><b>40<\/b>-\u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0439<\/i> \u0445\u044d\u0448 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u043a\u043b\u044e\u0447;<\/li>\n<li>\u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c <i><b>32<\/b>-\u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0439<\/i> \u0445\u044d\u0448;<\/li>\n<li>\u041f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0442 \u043d\u0435\u0433\u043e <i><b>8<\/b>&#8212;<i>\u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0439<\/i><\/i> CRC32;<\/li>\n<li>\u0421\u043a\u043b\u0435\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u044d\u0442\u0430\u043f\u0430\u0445 (<b>2<\/b>) \u0438 (<b>3<\/b>);<\/li>\n<li>\u041f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e (<b>1<\/b>) \u2014 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0441\u043a\u043e\u043c\u044b\u0439 \u043a\u043b\u044e\u0447.<\/li>\n<\/ol>\n<p>  \u041c\u044b\u0441\u043b\u0438 \u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0449\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:  <\/p>\n<ol>\n<li>\u0422.\u043a. \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0445\u044d\u0448 \u0431\u044b\u043b \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u0438\u0437 <b>\u0432\u043e\u0441\u044c\u043c\u0438<\/b> <i><b>5<\/b>-\u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0445<\/i> \u0445\u044d\u0448-\u043a\u0443\u0441\u043a\u043e\u0432, \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0442\u0430\u043a \u0436\u0435, \u043f\u043e &quot;<i><b>\u043f\u044f\u0442\u0435\u0440\u043a\u0430\u043c<\/b><\/i>&quot;;<\/li>\n<li>\u041a\u0430\u0436\u0434\u0430\u044f &quot;<b><i>\u043f\u044f\u0442\u0435\u0440\u043a\u0430<\/i><\/b>&quot; \u0431\u044b\u043b\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0430 \u0438\u0437 <i><b>\u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/b><\/i> \u043a\u043b\u044e\u0447\u0430;<\/li>\n<li>\u0422.\u043a. \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 &quot;<b><i>\u043f\u044f\u0442\u0435\u0440\u043a\u0438<\/i><\/b>&quot;, \u043e\u043d\u0430 \u0441\u0434\u0432\u0438\u0433\u0430\u043b\u0430\u0441\u044c \u043d\u0430 <b><i>5 \u0431\u0438\u0442 \u0432\u043b\u0435\u0432\u043e<\/i><\/b>, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0430 <i><b>\u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b<\/b><\/i> \u043a\u043b\u044e\u0447\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f <i><b>5<\/b> \u0431\u0438\u0442<\/i>;<\/li>\n<li>\u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 convert_char \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043d\u0430\u0441 \u043a \u0442\u0430\u043a\u043e\u0439 \u043c\u044b\u0441\u043b\u0438, \u0447\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043a\u043b\u044e\u0447\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 &quot;<i><b>0123456789ABCDEFGHJKMNPQRSTVWXYZ<\/b><\/i>&quot;;<\/li>\n<li>\u0418\u0442\u043e\u0433\u043e: <i><b>32<\/b> \u0441\u0438\u043c\u0432\u043e\u043b\u0430<\/i> \u0445\u044d\u0448\u0430 \u0433\u0435\u043d\u0435\u0440\u044f\u0442\u0441\u044f \u0438\u0437 &quot;<b><i>\u043f\u044f\u0442\u0435\u0440\u043e\u043a<\/i><\/b>&quot;. <i><b>32 % 5 = 24 \u0446\u0435\u043b\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u0430<\/b> \u0438 <b>2 \u0432 \u043e\u0441\u0442\u0430\u0442\u043a\u0435<\/b><\/i> \u2014 \u0442.\u0435. \u0434\u0432\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043d\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0438\u0442\u044c.<\/li>\n<\/ol>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u0445\u044d\u0448 (Delphi)<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"delphi\">function GenHash(len: byte): string; var   i, k: byte;   sum: integer; begin   Randomize;   Result := '';   sum := 0;   k := 0;    for i := 1 to len do   begin     sum := sum + (Random(Length(alphabet)) shl ((3 - k) * 5));     Inc(k);      if k = 4 then     begin       Result := Result + AnsiLowerCase(Int2Hex(sum, 5));       sum := 0;       k := 0;     end;   end;    Result := Result + 'a0'; \/\/ \u0420\u0435\u0448\u0438\u043b \u043d\u0435 \u0431\u0430\u043b\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0430 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0432\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0445\u0435\u043a\u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 end; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u043c <b>CRC32<\/b> \u043e\u0442 \u0445\u044d\u0448\u0430:  <\/p>\n<pre><code class=\"delphi\">var   key, hash, crc32: string;  begin   hash := GenHash(24);   crc32 := Crc32b(hash); \/\/ \u043d\u0430\u0448\u0435\u043b \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u043f\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u044c, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u0434\u0430\u043d\u043d\u044b\u0439 \u0445\u044d\u0448-\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c <\/code><\/pre>\n<p>  \u041d\u0443 \u0438, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430:  <\/p>\n<pre><code class=\"delphi\">  key := Hash2Code(hash + crc32);   lic_code := Format('%s-%s-%s-%s-%s-%s', [Copy(key, 1, 5),                                               Copy(key, 6, 5),                                               Copy(key, 11, 5),                                               Copy(key, 16, 5),                                               Copy(key, 21, 6),                                               Copy(key, 27, 6)                                               ]); <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0438\u2026 <b>\u0412\u0432\u043e\u0434 \u0441\u0433\u0435\u043d\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043b \u0438\u0433\u0440\u0443, \u043f\u0443\u043d\u043a\u0442 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0438\u0441\u0447\u0435\u0437!<\/b><\/p>\n<h5><b>\u0418\u0442\u043e\u0433\u0438<\/b><\/h5>\n<p>  <i>\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u0435\u0439\u0433\u0435\u043d\u0430 \u2014 \u0443\u043c\u0435\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0434\u0443\u043c\u0430\u0442\u044c!=) \u0422.\u0435. \u0443\u043c\u0435\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u043c \u0442\u043e\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u0438\u043c\u0435\u0435\u0442\u0435. \u042d\u0442\u043e \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430, \u043d\u043e, \u0438 \u043e\u043d\u0430 \u0440\u0435\u0448\u0430\u0435\u043c\u0430 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432!<\/i><\/p>\n<h5><b>P.S.<\/b><\/h5>\n<p>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u0443\u043c\u0431\u0443\u0440\u043d\u043e\u0439, \u043d\u0435 \u0437\u043d\u0430\u044e. \u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0438\u0434\u0435\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u0445\u043e\u0442\u0435\u043b \u0435\u0439 \u0434\u043e\u043d\u0435\u0441\u0442\u0438: \u043a\u0435\u0439\u0433\u0435\u043d \u2014 \u043d\u0435 \u0442\u0430\u043a\u0430\u044f \u0438 \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0448\u0442\u0443\u043a\u0430, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043c\u043e\u0437\u0433\u0438, \u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0443\u0441\u0438\u0434\u0447\u0438\u0432\u043e\u0441\u0442\u044c\u044e.<\/p>\n<h5><b>P.P.S.<\/b><\/h5>\n<p>  \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043e\u043f\u0438\u0448\u0443, \u043a\u0430\u043a \u044f \u043f\u0438\u0441\u0430\u043b \u043a\u0435\u0439\u0433\u0435\u043d \u043a \u0434\u0440\u0443\u0433\u043e\u0439 \u0438\u0433\u0440\u0435 \u2014 <b>Unepic<\/b>.     \t<\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/255935\/\"> http:\/\/habrahabr.ru\/post\/255935\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/8e6\/bd8\/ffe\/8e6bd8ffe0a44a71a6b952abe9cc6e58.png\" \/><\/div>\n<p>  \u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041c\u043d\u043e\u0433\u0438\u0435 \u0437\u043d\u0430\u044e\u0442 \u043e\u0431 \u044d\u0442\u043e\u0439 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u0433\u0440\u0435 \u2014 <b>LIMBO<\/b>! \u0412\u044b \u0434\u0430\u0436\u0435 \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043f\u043e\u043a\u0443\u043f\u0430\u043b\u0438 \u0435\u0435 \u0432 <b>\u0421\u0442\u0438\u043c\u0435<\/b>, \u0438\u043b\u0438 \u043a\u0430\u0447\u0430\u043b\u0438 \u0441 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u043e\u0432\u2026<br \/>  \u042f \u0442\u043e\u0436\u0435 \u0435\u0435 \u043a\u0443\u043f\u0438\u043b \u043a\u043e\u0433\u0434\u0430-\u0442\u043e (<u>\u0447\u0442\u043e \u0438 \u0432\u0430\u043c \u0441\u043e\u0432\u0435\u0442\u0443\u044e!<\/u>), \u0438 \u043f\u0440\u043e\u0448\u0435\u043b). \u041d\u043e, \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u043b\u043e, \u0438 \u044f, \u0438\u0437 \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430, \u0440\u0435\u0448\u0438\u043b \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0435\u0435 \u0437\u0430\u0449\u0438\u0442\u0443. \u0422\u0430\u043a \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f <b><i>\u043a\u0435\u0439\u0433\u0435\u043d<\/i><\/b> \u043a \u0438\u0433\u0440\u0435 <b>LIMBO<\/b>.  <\/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-255417","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/255417","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=255417"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/255417\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=255417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=255417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=255417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}