{"id":360508,"date":"2024-05-21T00:54:41","date_gmt":"2024-05-21T00:54:41","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=360508"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=360508","title":{"rendered":"<span>\u0420\u0430\u0437\u0431\u043e\u0440 crackme \u043e\u0442 KilLo (.net)<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/xb\/gl\/7i\/xbgl7i6c0mxsb1r86m0ltloye_u.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/xb\/gl\/7i\/xbgl7i6c0mxsb1r86m0ltloye_u.jpeg\" data-blurred=\"true\"\/><\/p>\n<h1 id=\"preduprezhdenie\">\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435<\/h1>\n<p>  <\/p>\n<p>Crackme (\u043a\u0430\u043a, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f) \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u0432\u0437\u043b\u043e\u043c\u0430\u0442\u044c (\u043f\u043e\u043d\u044f\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c, \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u043f\u0430\u0440\u043e\u043b\u0435\u0439, \u043a\u043b\u044e\u0447\u0435\u0439, \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0445 \u043d\u043e\u043c\u0435\u0440\u043e\u0432). \u041f\u043e\u0434\u0445\u043e\u0434\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435, \u043d\u0438 \u0432 \u043a\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u043c\u0443 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044e, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043d\u0435 \u043e\u0434\u043e\u0431\u0440\u0435\u043d\u044b \u044f\u0432\u043d\u043e (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f\u0445, \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u0430\u0445, \u0438 \u0442.\u0434.). \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0446\u0435\u043b\u044f\u0445, \u0438 \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u043b\u0435\u0433\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0432 \u043e\u0431\u0445\u043e\u0434 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432 \u0437\u0430\u0449\u0438\u0442\u044b, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c.<\/p>\n<p>  <\/p>\n<h1 id=\"vvedenie\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h1>\n<p>  <\/p>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 crackme \u044d\u0442\u043e (\u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438) \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u0435, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0435 \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0449\u0438 \u043f\u043e\u0434 \u043d\u0435\u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u043c \u0443\u0433\u043b\u043e\u043c. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u0430\u0442\u0447\u0438\u0442\u044c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 .NET-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0435 \u043f\u0440\u0438\u0431\u0435\u0433\u0430\u044f \u043a \u043f\u0435\u0440\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<p>\u0410\u0432\u0442\u043e\u0440 <a href=\"https:\/\/crackmes.one\/crackme\/641d471733c5d447bc761c04\">crackme<\/a> \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u043a\u043b\u044e\u0447 (\u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0431\u044b\u0447\u043d\u043e, \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439, \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c) \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0438 \u043d\u0430\u0448\u0430 \u0446\u0435\u043b\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u043f\u0430\u0442\u0447\u0435\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0443\u044e \u043b\u044e\u0431\u043e\u0439 \u043a\u043b\u044e\u0447.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">Welcome to KilLo's CrackMe!  The key is always randomly generated on startup, you can hold shift to dump the key to a TXT file, but that's kind of cheating...  This is a challenge program made for you to crack. The goal is to make a \"Cracked\" version of this program that always allows access no matter the license key, or you can make a keygen if you know how.  Created by KilLo youtube.com\/KilLo445<\/code><\/pre>\n<p>  <\/p>\n<h1 id=\"nachinaem-issledovanie\">\u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435<\/h1>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mv\/1u\/zq\/mv1uzq8isl3xcz4r_kyppn4uhwo.png\" alt=\"Crackme main window\" data-src=\"https:\/\/habrastorage.org\/webt\/mv\/1u\/zq\/mv1uzq8isl3xcz4r_kyppn4uhwo.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u043a\u043d\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0441 \u043f\u0440\u043e\u0441\u044f\u0442 \u0432\u0432\u0435\u0441\u0442\u0438 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u044b\u0439 \u043a\u043b\u044e\u0447. \u041f\u0440\u0438 \u0432\u0432\u043e\u0434\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0445) \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 &#171;Invalid license key&#187;.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/w0\/uw\/kb\/w0uwkbppwr1hxrmw9dlf34qeeu4.png\" alt=\"Invalid license key\" data-src=\"https:\/\/habrastorage.org\/webt\/w0\/uw\/kb\/w0uwkbppwr1hxrmw9dlf34qeeu4.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u0435\u0446 \u0432 dotPeek \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/vw\/td\/d_\/vwtdd_r0nypusyaeascw3bpjwdi.png\" alt=\"dotPeek\" data-src=\"https:\/\/habrastorage.org\/webt\/vw\/td\/d_\/vwtdd_r0nypusyaeascw3bpjwdi.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0412 Assembly explorer \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043a\u043b\u0430\u0441\u0441 MainWindows, \u0438 \u043f\u043e \u0438\u043c\u0435\u043d\u0430\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u0447\u0442\u043e \u043a\u043d\u043e\u043f\u043a\u0430, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0430\u044f \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong>CheckButton<\/strong>, \u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u2014 <strong>CheckButton_Click<\/strong>. \u041a\u043e\u0434 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043d\u0438\u0436\u0435.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">MainWindow.InputUsername = this.UsernameInput.Text; MainWindow.InputKey = this.KeyInput.Text; if (MainWindow.InputUsername == null || MainWindow.InputUsername == \"\") {     int num1 = (int) MessageBox.Show(\"Please enter a username.\", \"\", MessageBoxButton.OK, MessageBoxImage.Hand); } else if (MainWindow.InputKey == null || MainWindow.InputKey == \"\") {     int num2 = (int) MessageBox.Show(\"Please enter a license key.\", \"\", MessageBoxButton.OK, MessageBoxImage.Hand); } else {     if (MainWindow.InputUsername != null)       MainWindow.InputKey = Convert.ToBase64String(Encoding.UTF8.GetBytes(MainWindow.InputKey));     if (string.Equals(MainWindow.LicenseKey, MainWindow.InputKey))       this.CorrectKey();     else       this.IncorrectKey(); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u043a\u043b\u044e\u0447\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c else-\u0431\u043b\u043e\u043a\u0435 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e if&#8217;\u0430. \u041f\u043e \u043a\u043e\u0434\u0443 \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e:<\/p>\n<p>  <\/p>\n<ol>\n<li>\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u043d\u043e \u043e\u043d\u043e \u043d\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438;<\/li>\n<li>\u0423 \u043a\u043b\u0430\u0441\u0441\u0430 MainWindow \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u0435 <strong>LicenseKey<\/strong>, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0448 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 <strong>InputKey<\/strong>.<\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0442\u043e, \u043a\u0430\u043a \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f <strong>LicenseKey<\/strong>. \u0412 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">MainWindow.LicenseKey = MainWindow.RandomString(5) + \"-\" + MainWindow.RandomString(5) + \"-\" + MainWindow.RandomString(5) + \"-\" + MainWindow.RandomString(5) + \"-\" + MainWindow.RandomString(5); MainWindow.LicenseKey = Convert.ToBase64String(Encoding.UTF8.GetBytes(MainWindow.LicenseKey));<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c, \u043a\u043b\u044e\u0447 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437 \u043f\u044f\u0442\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u0435\u0442\u043e\u0434\u0430 <strong>RandomString<\/strong>, \u043f\u043e 5 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u0431\u043b\u043e\u043a\u0435, \u0438 \u0438\u043c\u0435\u0435\u0442 \u0432\u0438\u0434 <strong>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA<\/strong>. <\/p>\n<p>  <\/p>\n<p>\u041c\u0435\u0442\u043e\u0434 <strong>RandomString<\/strong> \u0438\u043c\u0435\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0438\u0434:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">public static string RandomString(int length) => new string(Enumerable.Repeat&lt;string>(\"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\", length).Select&lt;string, char>((Func&lt;string, char>) (s => s[MainWindow.random.Next(s.Length)])).ToArray&lt;char>());<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"https:\/\/otus.pw\/UXb5\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/jt\/gl\/uw\/jtgluwzk-dmheaqhrc-ww6shkhy.png\" data-src=\"https:\/\/habrastorage.org\/webt\/jt\/gl\/uw\/jtgluwzk-dmheaqhrc-ww6shkhy.png\"\/><br \/>  <\/a><\/p>\n<p>  <\/p>\n<p>\u0418\u0437 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430 \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:<\/p>\n<p>  <\/p>\n<ol>\n<li>\u0414\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u043b\u044e\u0447\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0444\u0430\u0432\u0438\u0442 (<strong>A-Z 0-9<\/strong>).<\/li>\n<li>&#171;\u0423\u0433\u0430\u0434\u0430\u0442\u044c&#187; \u043a\u043b\u044e\u0447 \u043d\u0435\u043b\u044c\u0437\u044f. \u0422\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0431\u0435\u0437 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u0441 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u043d\u0435 \u0438\u0437\u0432\u043b\u0435\u0447\u044c.<\/li>\n<li>\u0418\u0437 \u043f.1 \u0438 \u043f.2 \u0441\u043b\u0435\u0434\u0443\u0435\u0442, \u0447\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c keygen \u043a \u0434\u0430\u043d\u043d\u043e\u043c\u0443 crackme \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u0430\u044f.<\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u041a\u0430\u043a\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f?<\/p>\n<p>  <\/p>\n<h1 id=\"invazivnye-metody-lecheniya\">\u0418\u043d\u0432\u0430\u0437\u0438\u0432\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b &#171;\u043b\u0435\u0447\u0435\u043d\u0438\u044f&#187;<\/h1>\n<p>  <\/p>\n<p>\u0418\u043d\u0432\u0430\u0437\u0438\u0432\u043d\u044b\u0435 (\u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0438\u0435 \u0445\u0438\u0440\u0443\u0440\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u043c\u0435\u0448\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e) \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0435\u0448\u0435\u043d\u0438\u044f crackme \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435:<\/p>\n<p>  <\/p>\n<ol>\n<li>\u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 <strong>if (string.Equals(MainWindow.LicenseKey, MainWindow.InputKey))<\/strong> \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u043b\u044e\u0447\u0430 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u043b\u044f \u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 (\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u0432\u043e\u0434\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0443\u0433\u0430\u0434\u0430\u0442\u044c \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u043a\u043b\u044e\u0447) \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u0430\u0432\u0430\u043b\u0430 true.<\/li>\n<li>\u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u0430 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043a\u043b\u044e\u0447 \u0441\u043e\u0441\u0442\u043e\u044f\u043b \u0438\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0439 \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0430.<\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u042f \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b \u044d\u0442\u0438 \u0434\u0432\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u0430, \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u043d\u0438\u0445 \u043d\u0438\u0436\u0435.<\/p>\n<p>  <\/p>\n<h1 id=\"1-byte-patch\">1-byte patch<\/h1>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043c\u0435\u0442\u043e\u0434, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 IL-\u043a\u043e\u0434\u0430 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u043f\u0435\u0440\u0435\u0434 <strong>string.Equals<\/strong> \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043e\u0442\u0440\u0438\u0446\u0430\u043d\u0438\u0435, \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0447\u0442\u043e\u0431\u044b \u043b\u044e\u0431\u043e\u0439 \u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043b \u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u0430 <strong>CorrectKey()<\/strong>.<\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f:<\/p>\n<p>  <\/p>\n<ol>\n<li>IL Disassembler<\/li>\n<li>CFF Explorer<\/li>\n<\/ol>\n<p>  <\/p>\n<h2 id=\"il-to-bytes\">IL to bytes<\/h2>\n<p>  <\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u0430\u0439\u0442\u044b, \u0438 \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044e \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u0437\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 ILDasm \u0438\u0437 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 VisualStudio. \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043d\u0430\u0448 \u043e\u0431\u0440\u0430\u0437\u0435\u0446 \u0432 ILDasm \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0424\u0430\u0439\u043b \u2014 \u0414\u0430\u043c\u043f. \u0412 \u043e\u0442\u043a\u0440\u044b\u0432\u0448\u0435\u043c\u0441\u044f \u043e\u043a\u043d\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043e\u043f\u0446\u0438\u0438 (\u043f\u043e\u0434 \u043e\u043f\u0446\u0438\u0435\u0439 &#171;\u0412\u044b\u0432\u0435\u0441\u0442\u0438 IL-\u043a\u043e\u0434&#187;):<\/p>\n<p>  <\/p>\n<ol>\n<li>\u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u0430\u0439\u0442\u044b<\/li>\n<li>\u041d\u043e\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u043e\u043a<\/li>\n<\/ol>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/dx\/y7\/2a\/dxy72am8pstspqmn0eo87mg2rbk.png\" alt=\"ildasm\" data-src=\"https:\/\/habrastorage.org\/webt\/dx\/y7\/2a\/dxy72am8pstspqmn0eo87mg2rbk.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c &#171;\u041e\u041a&#187;, \u0432\u0432\u043e\u0434\u0438\u043c \u0438\u043c\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u043b\u044e\u0431\u044b\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c. \u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043f\u043e\u0438\u0441\u043a\u043e\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043c\u0435\u0442\u043e\u0434 <strong>CheckButton_Click<\/strong>, \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0435\u0433\u043e IL-\u043a\u043e\u0434.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">.method private hidebysig instance void            CheckButton_Click(object sender,                             class [PresentationCore]System.Windows.RoutedEventArgs e) cil managed   \/\/ SIG: 20 02 01 1C 12 55   {     \/\/ \u041c\u0435\u0442\u043e\u0434 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043f\u043e RVA 0x2498     \/\/ \u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0434\u0430:       185 (0xb9)     .maxstack  4     .locals init (string V_0)     IL_0000:  \/* 02   |                  *\/ ldarg.0     IL_0001:  \/* 7B   | (04)000012       *\/ ldfld      class [PresentationFramework]System.Windows.Controls.TextBox KilLo_s_CrackMe.MainWindow::UsernameInput     IL_0006:  \/* 6F   | (0A)00003D       *\/ callvirt   instance string [PresentationFramework]System.Windows.Controls.TextBox::get_Text()     IL_000b:  \/* 80   | (04)00000E       *\/ stsfld     string KilLo_s_CrackMe.MainWindow::InputUsername     IL_0010:  \/* 02   |                  *\/ ldarg.0     IL_0011:  \/* 7B   | (04)000013       *\/ ldfld      class [PresentationFramework]System.Windows.Controls.TextBox KilLo_s_CrackMe.MainWindow::KeyInput     IL_0016:  \/* 6F   | (0A)00003D       *\/ callvirt   instance string [PresentationFramework]System.Windows.Controls.TextBox::get_Text()     IL_001b:  \/* 80   | (04)00000D       *\/ stsfld     string KilLo_s_CrackMe.MainWindow::InputKey     IL_0020:  \/* 7E   | (04)00000E       *\/ ldsfld     string KilLo_s_CrackMe.MainWindow::InputUsername     IL_0025:  \/* 2C   | 11               *\/ brfalse.s  IL_0038      IL_0027:  \/* 7E   | (04)00000E       *\/ ldsfld     string KilLo_s_CrackMe.MainWindow::InputUsername     IL_002c:  \/* 72   | (70)0003C0       *\/ ldstr      \"\"     IL_0031:  \/* 28   | (0A)00003E       *\/ call       bool [mscorlib]System.String::op_Equality(string,                                                                                                  string)     IL_0036:  \/* 2C   | 14               *\/ brfalse.s  IL_004c      IL_0038:  \/* 72   | (70)0003EC       *\/ ldstr      \"Please enter a username.\"     IL_003d:  \/* 72   | (70)0003C0       *\/ ldstr      \"\"     IL_0042:  \/* 16   |                  *\/ ldc.i4.0     IL_0043:  \/* 1F   | 10               *\/ ldc.i4.s   16     IL_0045:  \/* 28   | (0A)000035       *\/ call       valuetype [PresentationFramework]System.Windows.MessageBoxResult [PresentationFramework]System.Windows.MessageBox::Show(string,                                                                                                                                                                                string,                                                                                                                                                                                valuetype [PresentationFramework]System.Windows.MessageBoxButton,                                                                                                                                                                                valuetype [PresentationFramework]System.Windows.MessageBoxImage)     IL_004a:  \/* 26   |                  *\/ pop     IL_004b:  \/* 2A   |                  *\/ ret      IL_004c:  \/* 7E   | (04)00000D       *\/ ldsfld     string KilLo_s_CrackMe.MainWindow::InputKey     IL_0051:  \/* 2C   | 11               *\/ brfalse.s  IL_0064      IL_0053:  \/* 7E   | (04)00000D       *\/ ldsfld     string KilLo_s_CrackMe.MainWindow::InputKey     IL_0058:  \/* 72   | (70)0003C0       *\/ ldstr      \"\"     IL_005d:  \/* 28   | (0A)00003E       *\/ call       bool [mscorlib]System.String::op_Equality(string,                                                                                                  string)     IL_0062:  \/* 2C   | 14               *\/ brfalse.s  IL_0078      IL_0064:  \/* 72   | (70)00041E       *\/ ldstr      \"Please enter a license key.\"     IL_0069:  \/* 72   | (70)0003C0       *\/ ldstr      \"\"     IL_006e:  \/* 16   |                  *\/ ldc.i4.0     IL_006f:  \/* 1F   | 10               *\/ ldc.i4.s   16     IL_0071:  \/* 28   | (0A)000035       *\/ call       valuetype [PresentationFramework]System.Windows.MessageBoxResult [PresentationFramework]System.Windows.MessageBox::Show(string,                                                                                                                                                                                string,                                                                                                                                                                                valuetype [PresentationFramework]System.Windows.MessageBoxButton,                                                                                                                                                                                valuetype [PresentationFramework]System.Windows.MessageBoxImage)     IL_0076:  \/* 26   |                  *\/ pop     IL_0077:  \/* 2A   |                  *\/ ret      IL_0078:  \/* 7E   | (04)00000E       *\/ ldsfld     string KilLo_s_CrackMe.MainWindow::InputUsername     IL_007d:  \/* 2C   | 1B               *\/ brfalse.s  IL_009a      IL_007f:  \/* 28   | (0A)000016       *\/ call       class [mscorlib]System.Text.Encoding [mscorlib]System.Text.Encoding::get_UTF8()     IL_0084:  \/* 7E   | (04)00000D       *\/ ldsfld     string KilLo_s_CrackMe.MainWindow::InputKey     IL_0089:  \/* 6F   | (0A)000032       *\/ callvirt   instance uint8[] [mscorlib]System.Text.Encoding::GetBytes(string)     IL_008e:  \/* 28   | (0A)000033       *\/ call       string [mscorlib]System.Convert::ToBase64String(uint8[])     IL_0093:  \/* 0A   |                  *\/ stloc.0     IL_0094:  \/* 06   |                  *\/ ldloc.0     IL_0095:  \/* 80   | (04)00000D       *\/ stsfld     string KilLo_s_CrackMe.MainWindow::InputKey     IL_009a:  \/* 7E   | (04)00000A       *\/ ldsfld     string KilLo_s_CrackMe.MainWindow::LicenseKey     IL_009f:  \/* 7E   | (04)00000D       *\/ ldsfld     string KilLo_s_CrackMe.MainWindow::InputKey     IL_00a4:  \/* 28   | (0A)00001B       *\/ call       bool [mscorlib]System.String::Equals(string,                                                                                             string)     IL_00a9:  \/* 2C   | 07               *\/ brfalse.s  IL_00b2      IL_00ab:  \/* 02   |                  *\/ ldarg.0     IL_00ac:  \/* 28   | (06)000011       *\/ call       instance void KilLo_s_CrackMe.MainWindow::CorrectKey()     IL_00b1:  \/* 2A   |                  *\/ ret      IL_00b2:  \/* 02   |                  *\/ ldarg.0     IL_00b3:  \/* 28   | (06)000012       *\/ call       instance void KilLo_s_CrackMe.MainWindow::IncorrectKey()     IL_00b8:  \/* 2A   |                  *\/ ret   } \/\/ end of method MainWindow::CheckButton_Click<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0435 \u043d\u0430 if-else \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u0441\u0430\u043c\u043e\u043c \u043a\u043e\u043d\u0446\u0435 \u0442\u0435\u043b\u0430 \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">IL_00a4:  \/* 28   | (0A)00001B       *\/ call       bool [mscorlib]System.String::Equals(string,                                                                                             string) IL_00a9:  \/* 2C   | 07               *\/ brfalse.s  IL_00b2<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <strong>call<\/strong> \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 <strong>string.Equals<\/strong>, \u0430 <strong>brfalse.s<\/strong>, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0432\u0435\u043d false \u043f\u0435\u0440\u0435\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u0441 \u043d\u0430 7 \u0431\u0430\u0439\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432\u043f\u0435\u0440\u0435\u0434 (\u043d\u0430 <strong>IncorrectKey<\/strong>).<br \/>  \u0412 MSDN \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438, \u0447\u0442\u043e \u0434\u043b\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 <strong>brfalse.s<\/strong> \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <a href=\"https:\/\/learn.microsoft.com\/ru-ru\/dotnet\/api\/system.reflection.emit.opcodes.brtrue_s?view=net-7.0\">brtrue.s<\/a> \u0441 \u043e\u043f\u043a\u043e\u0434\u043e\u043c <strong>2D<\/strong>. \u0422\u043e \u0435\u0441\u0442\u044c \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 exe-\u0444\u0430\u0439\u043b\u0435 \u0431\u0430\u0439\u0442 <strong>2C<\/strong> \u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0435\u0433\u043e \u043d\u0430 <strong>2D<\/strong>.<\/p>\n<p>  <\/p>\n<h2 id=\"cff-explorer\">CFF Explorer<\/h2>\n<p>  <\/p>\n<p>\u0412 \u043f\u043e\u0438\u0441\u043a\u0435 \u0438 \u0437\u0430\u043c\u0435\u043d\u0435 \u0431\u0430\u0439\u0442\u0430 \u043e\u043f\u043a\u043e\u0434\u0430 \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c CFF Explorer. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0443\u0442\u0438\u043b\u0438\u0442\u0443, \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0432 \u043d\u0435\u0435 \u043d\u0430\u0448 \u0444\u0430\u0439\u043b. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ff\/4p\/uy\/ff4puyqj_sw2ners6pkoi8kfcci.png\" alt=\"CFF explorer\" data-src=\"https:\/\/habrastorage.org\/webt\/ff\/4p\/uy\/ff4puyqj_sw2ners6pkoi8kfcci.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430\u0447\u0430\u043b\u043e \u043c\u0435\u0442\u043e\u0434\u0430 <strong>CheckButton_Click<\/strong> \u0438 \u0437\u0430\u0442\u0435\u043c \u043e\u0442 \u043d\u0435\u0433\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0443\u0436\u043d\u044b\u0439 \u0431\u0430\u0439\u0442. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ny\/ea\/b8\/nyeab8eriaf9z4rqqfhpf6swsbo.png\" alt=\"CFF Explorer\" data-src=\"https:\/\/habrastorage.org\/webt\/ny\/ea\/b8\/nyeab8eriaf9z4rqqfhpf6swsbo.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0443 \u0438\u0437 ildasm. \u0412 \u0441\u0430\u043c\u043e\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e <strong>\u041c\u0435\u0442\u043e\u0434 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043f\u043e RVA 0x2498<\/strong>. RVA (relative virtual address) \u2014 \u044d\u0442\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 Windows \u0434\u043b\u044f \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 \u0443\u0447\u0430\u0441\u0442\u043a\u043e\u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u0412 CFF Explorer \u043c\u044b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 Address converter (\u0441\u043b\u0435\u0432\u0430) \u0438 \u0432 \u043f\u043e\u043b\u0435 RVA \u0432\u0432\u043e\u0434\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <strong>2498<\/strong>, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043d\u0430\u0441 \u043f\u0435\u0440\u0435\u043a\u0438\u043d\u0435\u0442 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e \u0431\u0430\u0439\u0442-\u043a\u043e\u0434\u0430 \u043c\u0435\u0442\u043e\u0434\u0430. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/fh\/vf\/ga\/fhvfgayikbrv-kdptm-fjeyj9og.png\" alt=\"CFF Explorer\" data-src=\"https:\/\/habrastorage.org\/webt\/fh\/vf\/ga\/fhvfgayikbrv-kdptm-fjeyj9og.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435, \u0438\u0449\u0435\u043c \u0431\u0430\u0439\u0442\u044b \u0438\u0437 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430: <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">IL_00a9:  \/* 2C   | 07               *\/ brfalse.s  IL_00b2 IL_00ab:  \/* 02   |                  *\/ ldarg.0 IL_00ac:  \/* 28   | (06)000011       *\/ call       instance void KilLo_s_CrackMe.MainWindow::CorrectKey()<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c <strong>2C 07 02 28<\/strong>. \u041e\u043d\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0430 \u043f\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044e 740. \u0422\u0435\u043f\u0435\u0440\u044c, \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u2014 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c <strong>2C<\/strong> \u043d\u0430 <strong>2D<\/strong>. \u0412 \u044d\u0442\u043e\u043c \u0436\u0435 hex-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u0430\u0439\u0442, \u0432\u0432\u0435\u0434\u044f \u0431\u0443\u043a\u0432\u0443 <strong>d<\/strong> \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0444\u0430\u0439\u043b, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c, \u0432\u0432\u043e\u0434\u0438\u043c \u043a\u043b\u044e\u0447, \u0438 \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/s2\/qo\/ut\/s2qoutj9o_cayhwpz9xetffzhao.png\" alt=\"patch ok\" data-src=\"https:\/\/habrastorage.org\/webt\/s2\/qo\/ut\/s2qoutj9o_cayhwpz9xetffzhao.png\"\/><\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/dh\/sc\/rh\/dhscrhvzwljawaz3q07ra4xevl0.png\" alt=\"patch ok\" data-src=\"https:\/\/habrastorage.org\/webt\/dh\/sc\/rh\/dhscrhvzwljawaz3q07ra4xevl0.png\"\/><\/p>\n<p>  <\/p>\n<h2 id=\"feel-like-a-bolshevik\">Feel like a Bolshevik<\/h2>\n<p>  <\/p>\n<p>\u0425\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0431\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0432\u0438\u043a\u043e\u043c, \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0432 \u0430\u043b\u0444\u0430\u0432\u0438\u0442? \u0422\u043e\u0433\u0434\u0430 \u043f\u043e\u0435\u0445\u0430\u043b\u0438! \u0417\u0434\u0435\u0441\u044c \u043d\u0430\u043c \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f CFF Explorer, \u043d\u043e \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043c\u044b, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0432 \u0444\u0430\u0439\u043b, \u043f\u043e\u0439\u0434\u0435\u043c \u0432 \u043c\u0435\u043d\u044e <strong>.NET Directory \u2014 Meta Data Streams \u2014 US<\/strong>. \u0417\u0434\u0435\u0441\u044c \u0443\u0436\u0435 \u0433\u043b\u0430\u0437\u0430\u043c\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e <strong>ABCDE&#8230;<\/strong> \u0438 \u043f\u0440\u0430\u0432\u0438\u043c \u0442\u0443\u0442 \u0436\u0435 \u043d\u0435 \u043e\u0442\u0445\u043e\u0434\u044f \u043e\u0442 \u043a\u0430\u0441\u0441\u044b. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u043d\u0430\u0448\u0438 \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u043e \u043d\u0430\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0431\u0443\u043a\u0432\u044b A \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043e\u0432\u043f\u0430\u043b\u0438 \u0441 A, \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u043c\u0438 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/i1\/wl\/h5\/i1wlh50vq1n7s8qzcxbwjx0qkws.png\" alt=\"string fix\" data-src=\"https:\/\/habrastorage.org\/webt\/i1\/wl\/h5\/i1wlh50vq1n7s8qzcxbwjx0qkws.png\"\/><\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/9q\/p_\/56\/9qp_56c3gumxtqhy0dxw5h1f3ie.png\" alt=\"patch ok\" data-src=\"https:\/\/habrastorage.org\/webt\/9q\/p_\/56\/9qp_56c3gumxtqhy0dxw5h1f3ie.png\"\/><\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/lo\/5f\/xc\/lo5fxc9h_y00wudmwpzyyq5kfni.png\" alt=\"patch ok\" data-src=\"https:\/\/habrastorage.org\/webt\/lo\/5f\/xc\/lo5fxc9h_y00wudmwpzyyq5kfni.png\"\/><\/p>\n<p>  <\/p>\n<h1 id=\"vyvody\">\u0412\u044b\u0432\u043e\u0434\u044b<\/h1>\n<p>  <\/p>\n<p>\u0421\u043f\u043e\u0441\u043e\u0431\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043c\u043d\u043e\u0439 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b, \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u043c\u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u0435\u0439 \u0413\u0421\u0427 \u0438\u043b\u0438 \u043f\u043e\u0434\u043c\u0435\u043d\u043e\u0439 \u0442\u0435\u043b\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 <strong>RandomString<\/strong>, \u043d\u043e, \u043e\u0431 \u044d\u0442\u043e\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/otus.pw\/UXb5\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/qt\/mz\/yf\/qtmzyfwkrn1snee-zgcykifv7yq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/qt\/mz\/yf\/qtmzyfwkrn1snee-zgcykifv7yq.png\"\/><\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/774724\/\"> https:\/\/habr.com\/ru\/articles\/774724\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/xb\/gl\/7i\/xbgl7i6c0mxsb1r86m0ltloye_u.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/xb\/gl\/7i\/xbgl7i6c0mxsb1r86m0ltloye_u.jpeg\" data-blurred=\"true\"\/><\/p>\n<h1 id=\"preduprezhdenie\">\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435<\/h1>\n<p>  <\/p>\n<p>Crackme (\u043a\u0430\u043a, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f) \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u0432\u0437\u043b\u043e\u043c\u0430\u0442\u044c (\u043f\u043e\u043d\u044f\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c, \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u043f\u0430\u0440\u043e\u043b\u0435\u0439, \u043a\u043b\u044e\u0447\u0435\u0439, \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0445 \u043d\u043e\u043c\u0435\u0440\u043e\u0432). \u041f\u043e\u0434\u0445\u043e\u0434\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435, \u043d\u0438 \u0432 \u043a\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u043c\u0443 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044e, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043d\u0435 \u043e\u0434\u043e\u0431\u0440\u0435\u043d\u044b \u044f\u0432\u043d\u043e (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f\u0445, \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u0430\u0445, \u0438 \u0442.\u0434.). \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0446\u0435\u043b\u044f\u0445, \u0438 \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u043b\u0435\u0433\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0432 \u043e\u0431\u0445\u043e\u0434 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432 \u0437\u0430\u0449\u0438\u0442\u044b, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c.<\/p>\n<p>  <\/p>\n<h1 id=\"vvedenie\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h1>\n<p>  <\/p>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 crackme \u044d\u0442\u043e (\u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438) \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u0435, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0435 \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0449\u0438 \u043f\u043e\u0434 \u043d\u0435\u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u043c \u0443\u0433\u043b\u043e\u043c. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u0430\u0442\u0447\u0438\u0442\u044c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 .NET-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0435 \u043f\u0440\u0438\u0431\u0435\u0433\u0430\u044f \u043a \u043f\u0435\u0440\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<\/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-360508","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/360508","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=360508"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/360508\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=360508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=360508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=360508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}