{"id":292295,"date":"2019-07-19T09:01:57","date_gmt":"2019-07-19T09:01:57","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=292295"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=292295","title":{"rendered":"\u041f\u043e \u0441\u043b\u0435\u0434\u0430\u043c Industrial Ninja: \u043a\u0430\u043a \u0432\u0437\u043b\u0430\u043c\u044b\u0432\u0430\u043b\u0438 \u041f\u041b\u041a \u043d\u0430 Positive Hack Days 9"},"content":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\"><a href=\"https:\/\/habr.com\/ru\/company\/pt\/blog\/460615\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qt\/2p\/3g\/qt2p3gfe43jhcxqqpuer8lzvgvc.png\"><\/a><\/p>\n<p>  \u041d\u0430 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0435\u043c PHDays 9 \u043c\u044b \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0438 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0432\u0437\u043b\u043e\u043c\u0443 \u0437\u0430\u0432\u043e\u0434\u0430 \u043f\u043e \u043f\u0435\u0440\u0435\u043a\u0430\u0447\u043a\u0435 \u0433\u0430\u0437\u0430 \u2014 \u043a\u043e\u043d\u043a\u0443\u0440\u0441 <a href=\"https:\/\/www.phdays.com\/ru\/program\/contests\/industrial-ninja\/\">Industrial Ninja<\/a>. \u041d\u0430 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0435 \u0431\u044b\u043b\u043e \u0442\u0440\u0438 \u0441\u0442\u0435\u043d\u0434\u0430 \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 (No Security, Low Security, High Security), \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441: \u0432 \u0432\u043e\u0437\u0434\u0443\u0448\u043d\u044b\u0439 \u0448\u0430\u0440 \u0437\u0430\u043a\u0430\u0447\u0438\u0432\u0430\u043b\u0441\u044f (\u0430 \u043f\u043e\u0442\u043e\u043c \u0441\u043f\u0443\u0441\u043a\u0430\u043b\u0441\u044f) \u0432\u043e\u0437\u0434\u0443\u0445 \u043f\u043e\u0434 \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c. <\/p>\n<p>  \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0441\u043e\u0441\u0442\u0430\u0432 \u0441\u0442\u0435\u043d\u0434\u043e\u0432 \u0431\u044b\u043b \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432: \u041f\u041b\u041a Siemens Simatic \u0441\u0435\u0440\u0438\u0438 S7-300; \u043a\u043d\u043e\u043f\u043a\u0430 \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u0441\u0434\u0443\u0432\u0430 \u0438 \u043f\u0440\u0438\u0431\u043e\u0440 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u044f (\u043f\u043e\u0434\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043a \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c \u0432\u0445\u043e\u0434\u0430\u043c \u041f\u041b\u041a (DI)); \u043a\u043b\u0430\u043f\u0430\u043d\u044b, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u043d\u0430 \u043d\u0430\u043a\u0430\u0447\u043a\u0443 \u0438 \u0441\u043f\u0443\u0441\u043a \u0432\u043e\u0437\u0434\u0443\u0445\u0430 (\u043f\u043e\u0434\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043a \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c \u0432\u044b\u0445\u043e\u0434\u0430\u043c \u041f\u041b\u041a (DO)) \u2014 \u0441\u043c. \u0440\u0438\u0441\u0443\u043d\u043e\u043a \u043d\u0438\u0436\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/2u\/fq\/om\/2ufqommgoloxmjwohpy2sphrbha.png\"><\/p>\n<p>  \u041f\u041b\u041a, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u043b \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u0441\u0434\u0443\u0432\u0435 \u0438\u043b\u0438 \u043d\u0430\u0434\u0443\u0432\u0435 \u0448\u0430\u0440\u0438\u043a\u0430 (\u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043b \u0438 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u043b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043a\u043b\u0430\u043f\u0430\u043d\u044b). \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u0432\u0441\u0435\u0445 \u0441\u0442\u0435\u043d\u0434\u0430\u0445 \u0431\u044b\u043b \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u0440\u0435\u0436\u0438\u043c \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0432\u0430\u043b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438 \u043a\u043b\u0430\u043f\u0430\u043d\u043e\u0432 \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>  \u0421\u0442\u0435\u043d\u0434\u044b \u043e\u0442\u043b\u0438\u0447\u0430\u043b\u0438\u0441\u044c \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430: \u043d\u0430 \u043d\u0435\u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u043c \u0441\u0442\u0435\u043d\u0434\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e, \u0430 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435 High Security, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u043b\u043e\u0436\u043d\u0435\u0435.<\/p>\n<p>  \u0417\u0430 \u0434\u0432\u0430 \u0434\u043d\u044f \u0431\u044b\u043b\u0438 \u0440\u0435\u0448\u0435\u043d\u044b \u043f\u044f\u0442\u044c \u0438\u0437 \u0448\u0435\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u0447; \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a, \u0437\u0430\u043d\u044f\u0432\u0448\u0438\u0439 \u043f\u0435\u0440\u0432\u043e\u0435 \u043c\u0435\u0441\u0442\u043e, \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b 233 \u0431\u0430\u043b\u043b\u0430 (\u043e\u043d \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u043d\u0430 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u043a \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u0443 \u043d\u0435\u0434\u0435\u043b\u044e). \u0422\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u0438\u0437\u0435\u0440\u043e\u0432: I \u043c\u0435\u0441\u0442\u043e \u2014 a1exdandy, II \u2014 Rubikoid, III \u2014 Ze.<\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f PHDays \u043d\u0438\u043a\u0442\u043e \u0438\u0437 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043d\u0435 \u0441\u043c\u043e\u0433 \u043e\u0434\u043e\u043b\u0435\u0442\u044c \u0432\u0441\u0435 \u0442\u0440\u0438 \u0441\u0442\u0435\u043d\u0434\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u043d\u043b\u0430\u0439\u043d-\u043a\u043e\u043d\u043a\u0443\u0440\u0441 \u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0438\u044e\u043d\u044f \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0438 \u0441\u0430\u043c\u043e\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435. \u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u043b\u0438 \u0437\u0430 \u043c\u0435\u0441\u044f\u0446 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u0438\u0435, \u043d\u0430\u0439\u0442\u0438 \u0444\u043b\u0430\u0433, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435. <\/p>\n<p>  \u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u043c\u044b \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c \u0440\u0430\u0437\u0431\u043e\u0440 \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0438\u0437 \u043f\u0440\u0438\u0441\u043b\u0430\u043d\u043d\u044b\u0445 \u0437\u0430 \u043c\u0435\u0441\u044f\u0446, \u0435\u0433\u043e \u043d\u0430\u0448\u0435\u043b \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u041a\u043e\u0432\u0440\u0438\u0436\u043d\u044b\u0445 (a1exdandy) \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Digital Security, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043d\u044f\u043b I \u043c\u0435\u0441\u0442\u043e \u0432 \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f PHDays. \u041d\u0438\u0436\u0435 \u043c\u044b \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u0435\u0433\u043e \u0442\u0435\u043a\u0441\u0442 \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438.<a name=\"habracut\"><\/a><\/p>\n<h2>\u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437<\/h2>\n<p>  \u0418\u0442\u0430\u043a, \u0432 \u0437\u0430\u0434\u0430\u043d\u0438\u0438 \u0431\u044b\u043b \u0430\u0440\u0445\u0438\u0432 \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438:<\/p>\n<ul>\n<li>block_upload_traffic.pcapng<\/li>\n<li>DB100.bin<\/li>\n<li>hints.txt<\/li>\n<\/ul>\n<p>  \u0424\u0430\u0439\u043b hints.txt \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f. \u0412\u043e\u0442 \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435:<\/p>\n<blockquote>\n<ol>\n<li>\u041f\u0435\u0442\u0440\u043e\u0432\u0438\u0447 \u043c\u043d\u0435 \u0432\u0447\u0435\u0440\u0430 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u0438\u0437 PlcSim \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0431\u043b\u043e\u043a\u0438 \u0432 Step7.<\/li>\n<li>\u041d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u041f\u041b\u041a Siemens Simatic \u0441\u0435\u0440\u0438\u0438 S7-300.<\/li>\n<li> PlcSim \u2014 \u044d\u0442\u043e \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u041f\u041b\u041a, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0438 \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u041f\u041b\u041a Siemens S7.<\/li>\n<\/ol>\n<\/blockquote>\n<p>  <\/p>\n<pre>\u0424\u0430\u0439\u043b DB100.bin, \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0431\u043b\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445 DB100 \u041f\u041b\u041a: 00000000: 0100 0102 6e02 0401 0206 0100 0101 0102  ....n........... 00000010: 1002 0501 0202 2002 0501 0206 0100 0102  ...... ......... 00000020: 0102 7702 0401 0206 0100 0103 0102 0a02  ..w............. 00000030: 0501 0202 1602 0501 0206 0100 0104 0102  ................ 00000040: 7502 0401 0206 0100 0105 0102 0a02 0501  u............... 00000050: 0202 1602 0501 0206 0100 0106 0102 3402  ..............4. 00000060: 0401 0206 0100 0107 0102 2602 0501 0202  ..........&amp;..... 00000070: 4c02 0501 0206 0100 0108 0102 3302 0401  L...........3... 00000080: 0206 0100 0109 0102 0a02 0501 0202 1602  ................ 00000090: 0501 0206 0100 010a 0102 3702 0401 0206  ..........7..... 000000a0: 0100 010b 0102 2202 0501 0202 4602 0501  ......\".....F... 000000b0: 0206 0100 010c 0102 3302 0401 0206 0100  ........3....... 000000c0: 010d 0102 0a02 0501 0202 1602 0501 0206  ................ 000000d0: 0100 010e 0102 6d02 0401 0206 0100 010f  ......m......... 000000e0: 0102 1102 0501 0202 2302 0501 0206 0100  ........#....... 000000f0: 0110 0102 3502 0401 0206 0100 0111 0102  ....5........... 00000100: 1202 0501 0202 2502 0501 0206 0100 0112  ......%......... 00000110: 0102 3302 0401 0206 0100 0113 0102 2602  ..3...........&amp;. 00000120: 0501 0202 4c02 0501 0206 0100            ....L.......<\/pre>\n<p>  \u0421\u0443\u0434\u044f \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e, \u0444\u0430\u0439\u043b block_upload_traffic.pcapng \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u0430\u043c\u043f \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0431\u043b\u043e\u043a\u043e\u0432 \u043d\u0430 \u041f\u041b\u041a.<\/p>\n<p>  \u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0434\u0430\u043c\u043f \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043d\u0430 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0435 \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u044b\u043b\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043b\u044f TeslaSCADA2. \u0418\u0437 \u043d\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e RC4 \u0434\u0430\u043c\u043f \u0438 \u043a\u0430\u043a\u043e\u0439 \u043a\u043b\u044e\u0447 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0435\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438. \u0414\u0430\u043c\u043f\u044b \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 S7. \u042f \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0434\u0435\u043c\u043e\u043a\u043b\u0438\u0435\u043d\u0442 \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 Snap7.<\/p>\n<h2>\u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438\u0437 \u0434\u0430\u043c\u043f\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430<\/h2>\n<p>  \u0412\u0437\u0433\u043b\u044f\u043d\u0443\u0432 \u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0434\u0430\u043c\u043f\u0430, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0432 \u043d\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 OB1, FC1, FC2 \u0438 FC3:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/sz\/43\/yd\/sz43ydme-e17zhg3yuudd1xxmva.png\"><\/p>\n<p>  \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u044d\u0442\u0438 \u0431\u043b\u043e\u043a\u0438. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0432 \u0442\u0440\u0430\u0444\u0438\u043a \u0438\u0437 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 pcapng \u0432 pcap:<\/p>\n<pre><code class=\"python\">#!\/usr\/bin\/env python2  import struct from scapy.all import *  packets = rdpcap('block_upload_traffic.pcap') s7_hdr_struct = '&gt;BBHHHHBB' s7_hdr_sz = struct.calcsize(s7_hdr_struct) tpkt_cotp_sz = 7 names = iter(['OB1.bin', 'FC1.bin', 'FC2.bin', 'FC3.bin']) buf = ''  for packet in packets:     if packet.getlayer(IP).src == '10.0.102.11':         tpkt_cotp_s7 = str(packet.getlayer(TCP).payload)         if len(tpkt_cotp_s7) &lt; tpkt_cotp_sz + s7_hdr_sz:             continue         s7 = tpkt_cotp_s7[tpkt_cotp_sz:]         s7_hdr = s7[:s7_hdr_sz]         param_sz = struct.unpack(s7_hdr_struct, s7_hdr)[4]         s7_param = s7[12:12+param_sz]         s7_data = s7[12+param_sz:]         if s7_param in ('\\x1e\\x00', '\\x1e\\x01'):  # upload             buf += s7_data[4:]         elif s7_param == '\\x1f':             with open(next(names), 'wb') as f:                 f.write(buf)             buf = ''<\/code><\/pre>\n<p>  \u0418\u0437\u0443\u0447\u0438\u0432 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 \u0431\u0430\u0439\u0442\u043e\u0432 70 70 (pp). \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430 \u043a \u0437\u0430\u0434\u0430\u043d\u0438\u044e \u043d\u0430\u0432\u043e\u0434\u0438\u0442 \u043d\u0430 \u043c\u044b\u0441\u043b\u044c, \u0447\u0442\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c PlcSim.<\/p>\n<h2>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0438\u0437 \u0431\u043b\u043e\u043a\u043e\u0432<\/h2>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c S7-PlcSim, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0432 \u0432 \u043d\u0435\u0433\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043b\u043e\u043a\u043e\u0432 \u0441 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u043c\u0438\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 (= Q 0.0) \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u041f\u041e Simatic Manager, \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0432 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 PLC \u0432 \u0444\u0430\u0439\u043b example.plc. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430, \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u043f\u043e \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0435 70 70, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0438 \u0440\u0430\u043d\u0435\u0435. \u041f\u0435\u0440\u0435\u0434 \u0431\u043b\u043e\u043a\u0430\u043c\u0438, \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u043b\u043e\u043a\u0430 \u0432 \u0432\u0438\u0434\u0435 4-\u0431\u0430\u0439\u0442\u043e\u0432\u043e\u0433\u043e little-endian \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/01\/vp\/ra\/01vpra5veml-vbfozvhainxy-ig.png\"><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 plc-\u0444\u0430\u0439\u043b\u043e\u0432, \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u043b\u0430\u043d \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c PLC S7:<\/p>\n<ol>\n<li>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Simatic Manager \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0432 S7-PlcSim \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0431\u043b\u043e\u043a\u043e\u0432, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0443\u044e \u0442\u043e\u0439, \u0447\u0442\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0438\u0437 \u0434\u0430\u043c\u043f\u0430. \u0414\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0431\u043b\u043e\u043a\u043e\u0432 (\u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432 \u043d\u0443\u0436\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439) \u0438 \u0438\u0445 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b (OB1, FC1, FC2, FC3).<\/li>\n<li>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c PLC \u0432 \u0444\u0430\u0439\u043b.<\/li>\n<li>\u0417\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0432 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043d\u0430 \u0431\u043b\u043e\u043a\u0438 \u0438\u0437 \u0434\u0430\u043c\u043f\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u041d\u0430\u0447\u0430\u043b\u043e \u0431\u043b\u043e\u043a\u043e\u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u043e \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0435.<\/li>\n<li>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0432 S7-PlcSim \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0432 Simatic Manager.<\/li>\n<\/ol>\n<p>  \u0417\u0430\u043c\u0435\u043d\u0443 \u0431\u043b\u043e\u043a\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043a\u043e\u0434\u043e\u043c:<\/p>\n<pre><code class=\"python\">with open('original.plc', 'rb') as f:     plc = f.read() blocks = [] for fname in ['OB1.bin', 'FC1.bin', 'FC2.bin', 'FC3.bin']:     with open(fname, 'rb') as f:         blocks.append(f.read())  i = plc.find(b'pp') for block in blocks:     plc = plc[:i] + block + plc[i+len(block):]     i = plc.find(b'pp', i + 1)  with open('target.plc', 'wb') as f:     f.write(plc)<\/code><\/pre>\n<p>  <\/p>\n<blockquote><p>\u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u043f\u043e\u0448\u0435\u043b \u043f\u043e, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u043c\u0443, \u043d\u043e \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u0443\u0442\u0438. \u041c\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u0438, \u0447\u0442\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 NetToPlcSim, \u0447\u0442\u043e\u0431\u044b c PlcSim \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0441\u0435\u0442\u0438, \u0437\u0430\u0433\u0440\u0443\u0437\u044f\u0442 \u0431\u043b\u043e\u043a\u0438 \u0432 PlcSim \u0447\u0435\u0440\u0435\u0437 Snap7, \u0430 \u043f\u043e\u0442\u043e\u043c \u0441\u043a\u0430\u0447\u0430\u044e\u0442 \u044d\u0442\u0438 \u0431\u043b\u043e\u043a\u0438 \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u0437 PlcSim \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0440\u0435\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438.<\/p><\/blockquote>\n<p>  \u041e\u0442\u043a\u0440\u044b\u0432 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0432 S7-PlcSim, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Simatic Manager. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u0431\u043b\u043e\u043a\u0435 FC1. \u041e\u0441\u043e\u0431\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f #TEMP0, \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439, \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u041f\u041b\u041a \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0443\u0447\u043d\u043e\u0439 \u0440\u0435\u0436\u0438\u043c \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 M2.2 \u0438 M2.3. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 #TEMP0 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 FC3.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/02\/tq\/pt\/02tqptegvjst2hzny9d8sc4rmva.png\"><\/p>\n<p>  \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e FC3 \u0438 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0432\u0435\u0440\u043d\u0443\u043b\u0430 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0435\u0434\u0438\u043d\u0438\u0446\u0443.<\/p>\n<p>  \u0411\u043b\u043e\u043a\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u041f\u041b\u041a \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435 Low Security \u043d\u0430 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0435 \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u0430 \u0431\u044b\u043b\u0438 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043d\u043e \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 #TEMP0 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 my ninja way \u0432 \u0431\u043b\u043e\u043a DB1. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0431\u043b\u043e\u043a\u0435 \u0431\u044b\u043b\u0430 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0430 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 High Security \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u044f\u0445 \u044f\u0437\u044b\u043a\u0430 STL (\u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u041f\u041b\u041a S7).<\/p>\n<h2>\u0420\u0435\u0432\u0435\u0440\u0441 \u0431\u043b\u043e\u043a\u0430 FC3<\/h2>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0431\u043b\u043e\u043a\u0430 FC3 \u0432 STL \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">      L     B#16#0       T     #TEMP13       T     #TEMP15       L     P#DBX 0.0       T     #TEMP4       CLR          =     #TEMP14 M015: L     #TEMP4       LAR1         OPN   DB   100       L     DBLG       TAR1         &lt;=D          JC    M016       L     DW#16#0       T     #TEMP0       L     #TEMP6       L     W#16#0       &lt;&gt;I          JC    M00d       L     P#DBX 0.0       LAR1   M00d: L     B [AR1,P#0.0]       T     #TEMP5       L     W#16#1       ==I          JC    M007       L     #TEMP5       L     W#16#2       ==I          JC    M008       L     #TEMP5       L     W#16#3       ==I          JC    M00f       L     #TEMP5       L     W#16#4       ==I          JC    M00e       L     #TEMP5       L     W#16#5       ==I          JC    M011       L     #TEMP5       L     W#16#6       ==I          JC    M012       JU    M010 M007: +AR1  P#1.0       L     P#DBX 0.0       LAR2         L     B [AR1,P#0.0]       L     C#8       *I           +AR2         +AR1  P#1.0       L     B [AR1,P#0.0]       JL    M003       JU    M001       JU    M002       JU    M004 M003: JU    M005 M001: OPN   DB   101       L     B [AR2,P#0.0]       T     #TEMP0       JU    M006 M002: OPN   DB   101       L     B [AR2,P#0.0]       T     #TEMP1       JU    M006 M004: OPN   DB   101       L     B [AR2,P#0.0]       T     #TEMP2       JU    M006 M00f: +AR1  P#1.0       L     B [AR1,P#0.0]       L     C#8       *I           T     #TEMP11       +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP7       L     P#M 100.0       LAR2         L     #TEMP7       L     C#8       *I           +AR2         TAR2  #TEMP9       TAR1  #TEMP4       OPN   DB   101       L     P#DBX 0.0       LAR1         L     #TEMP11       +AR1         LAR2  #TEMP9       L     B [AR2,P#0.0]       T     B [AR1,P#0.0]       L     #TEMP4       LAR1         JU    M006 M008: +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP3       +AR1  P#1.0       L     B [AR1,P#0.0]       JL    M009       JU    M00b       JU    M00a       JU    M00c M009: JU    M005 M00b: L     #TEMP3       T     #TEMP0       JU    M006 M00a: L     #TEMP3       T     #TEMP1       JU    M006 M00c: L     #TEMP3       T     #TEMP2       JU    M006 M00e: +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP7       L     P#M 100.0       LAR2         L     #TEMP7       L     C#8       *I           +AR2         TAR2  #TEMP9       +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP8       L     P#M 100.0       LAR2         L     #TEMP8       L     C#8       *I           +AR2         TAR2  #TEMP10       TAR1  #TEMP4       LAR1  #TEMP9       LAR2  #TEMP10       L     B [AR1,P#0.0]       L     B [AR2,P#0.0]       AW           INVI         T     #TEMP12       L     B [AR1,P#0.0]       L     B [AR2,P#0.0]       OW           L     #TEMP12       AW           T     B [AR1,P#0.0]       L     DW#16#0       T     #TEMP0       L     MB   101       T     #TEMP1       L     MB   102       T     #TEMP2       L     #TEMP4       LAR1         JU    M006 M011: +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP7       L     P#M 100.0       LAR2         L     #TEMP7       L     C#8       *I           +AR2         TAR2  #TEMP9       +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP8       L     P#M 100.0       LAR2         L     #TEMP8       L     C#8       *I           +AR2         TAR2  #TEMP10       TAR1  #TEMP4       LAR1  #TEMP9       LAR2  #TEMP10       L     B [AR1,P#0.0]       L     B [AR2,P#0.0]       -I           T     B [AR1,P#0.0]       L     DW#16#0       T     #TEMP0       L     MB   101       T     #TEMP1       L     MB   102       T     #TEMP2       L     #TEMP4       LAR1         JU    M006 M012: L     #TEMP15       INC   1       T     #TEMP15       +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP7       L     P#M 100.0       LAR2         L     #TEMP7       L     C#8       *I           +AR2         TAR2  #TEMP9       +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP8       L     P#M 100.0       LAR2         L     #TEMP8       L     C#8       *I           +AR2         TAR2  #TEMP10       TAR1  #TEMP4       LAR1  #TEMP9       LAR2  #TEMP10       L     B [AR1,P#0.0]       L     B [AR2,P#0.0]       ==I          JCN   M013       JU    M014 M013: L     P#DBX 0.0       LAR1         T     #TEMP4       L     B#16#0       T     #TEMP6       JU    M006 M014: L     #TEMP4       LAR1         L     #TEMP13       L     L#1       +I           T     #TEMP13       JU    M006 M006: L     #TEMP0       T     MB   100       L     #TEMP1       T     MB   101       L     #TEMP2       T     MB   102       +AR1  P#1.0       L     #TEMP6       +     1       T     #TEMP6       JU    M005 M010: L     P#DBX 0.0       LAR1         L     0       T     #TEMP6       TAR1  #TEMP4 M005: TAR1  #TEMP4       CLR          =     #TEMP16       L     #TEMP13       L     L#20       ==I          S     #TEMP16       L     #TEMP15       ==I          A     #TEMP16       JC    M017       L     #TEMP13       L     L#20       &lt;I           S     #TEMP16       L     #TEMP15       ==I          A     #TEMP16       JC    M018       JU    M019 M017: SET          =     #TEMP14       JU    M016 M018: CLR          =     #TEMP14       JU    M016 M019: CLR          O     #TEMP14       =     #RET_VAL       JU    M015 M016: CLR          O     #TEMP14       =     #RET_VAL<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041a\u043e\u0434 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u0439 \u0438 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443, \u043d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u043e\u043c\u0443 \u0441 STL, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u043c. \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u044f\u0437\u044b\u043a\u0430 STL \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u043c\u0430\u043d\u0443\u0430\u043b\u0435: <a href=\"https:\/\/cache.industry.siemens.com\/dl\/files\/814\/109751814\/att_933093\/v1\/STEP_7_-_Statement_List_for_S7-300_and_S7-400.pdf\">Statement List (STL) for S7-300 and S7-400 Programming<\/a>. \u0417\u0434\u0435\u0441\u044c \u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0442\u043e\u0442 \u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u043a\u043e\u0434 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u2014 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u043a \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 STL. \u0421\u0440\u0430\u0437\u0443 \u043e\u0442\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0432 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u043e\u043c \u0431\u043b\u043e\u043a\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0430\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0430\u0439\u0442-\u043a\u043e\u0434, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0439\u0441\u044f \u0432 \u0431\u043b\u043e\u043a\u0435 DB100, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 1 \u0431\u0430\u0439\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u0431\u0430\u0439\u0442\u044b \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0431\u0430\u0439\u0442\u0443 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442. \u0412\u0441\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0438\u043c\u0435\u044e\u0442 \u043f\u043e \u0434\u0432\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430, \u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043b \u043a\u0430\u043a X \u0438 Y.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/b><\/p>\n<div class=\"spoiler_text\">]  <\/p>\n<pre><code class=\"perl\"># \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445       L     B#16#0       T     #CHECK_N        # \u0421\u0447\u0435\u0442\u0447\u0438\u043a \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a       T     #COUNTER_N      # \u0421\u0447\u0435\u0442\u0447\u0438\u043a \u043e\u0431\u0449\u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a       L     P#DBX 0.0       T     #POINTER        # \u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e       CLR          =     #PRE_RET_VAL  # \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0438\u043a\u043b \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 \u0431\u0430\u0439\u0442-\u043a\u043e\u0434\u0430 LOOP: L     #POINTER       LAR1         OPN   DB   100       L     DBLG       TAR1         &lt;=D                   # \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u044b\u0445\u043e\u0434\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b       JC    FINISH       L     DW#16#0       T     #REG0       L     #TEMP6       L     W#16#0       &lt;&gt;I          JC    M00d       L     P#DBX 0.0       LAR1    # \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f switch - case \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043e\u043f\u043a\u043e\u0434\u043e\u0432 M00d: L     B [AR1,P#0.0]       T     #OPCODE       L     W#16#1       ==I          JC    OPCODE_1       L     #OPCODE       L     W#16#2       ==I          JC    OPCODE_2       L     #OPCODE       L     W#16#3       ==I          JC    OPCODE_3       L     #OPCODE       L     W#16#4       ==I          JC    OPCODE_4       L     #OPCODE       L     W#16#5       ==I          JC    OPCODE_5       L     #OPCODE       L     W#16#6       ==I          JC    OPCODE_6       JU    OPCODE_OTHER  # \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043e\u043f\u043a\u043e\u0434\u0430 01: \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 DB101[X] \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 Y # OP01(X, Y): REG[Y] = DB101[X] OPCODE_1: +AR1  P#1.0       L     P#DBX 0.0       LAR2         L     B [AR1,P#0.0]   # \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 X (\u0438\u043d\u0434\u0435\u043a\u0441 \u0432 DB101)       L     C#8       *I           +AR2         +AR1  P#1.0       L     B [AR1,P#0.0]   # \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 Y (\u0438\u043d\u0434\u0435\u043a\u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430)       JL    M003            # \u0410\u043d\u0430\u043b\u043e\u0433 switch - case \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f Y       JU    M001            # \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438.       JU    M002            # \u041f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445       JU    M004            # \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u043d\u0438\u0436\u0435 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439 M003: JU    LOOPEND M001: OPN   DB   101       L     B [AR2,P#0.0]       T     #REG0           # \u0417\u0430\u043f\u0438\u0441\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f DB101[X] \u0432 REG[0]       JU    PRE_LOOPEND M002: OPN   DB   101       L     B [AR2,P#0.0]       T     #REG1           # \u0417\u0430\u043f\u0438\u0441\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f DB101[X] \u0432 REG[1]       JU    PRE_LOOPEND M004: OPN   DB   101       L     B [AR2,P#0.0]       T     #REG2           # \u0417\u0430\u043f\u0438\u0441\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f DB101[X] \u0432 REG[2]       JU    PRE_LOOPEND  # \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043e\u043f\u043a\u043e\u0434\u0430 02: \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f X \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 Y # OP02(X, Y): REG[Y] = X OPCODE_2: +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP3       +AR1  P#1.0       L     B [AR1,P#0.0]       JL    M009       JU    M00b       JU    M00a       JU    M00c M009: JU    LOOPEND M00b: L     #TEMP3       T     #REG0       JU    PRE_LOOPEND M00a: L     #TEMP3       T     #REG1       JU    PRE_LOOPEND M00c: L     #TEMP3       T     #REG2       JU    PRE_LOOPEND  # \u041e\u043f\u043a\u043e\u0434 03 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0435\u0433\u043e ...  # \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043e\u043f\u043a\u043e\u0434\u0430 04: \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 X \u0438 Y # OP04(X, Y): REG[0] = 0; REG[X] = (REG[X] == REG[Y]) OPCODE_4: +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP7          # \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 - X       L     P#M 100.0       LAR2         L     #TEMP7       L     C#8       *I           +AR2         TAR2  #TEMP9          # REG[X]       +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP8       L     P#M 100.0       LAR2         L     #TEMP8       L     C#8       *I           +AR2         TAR2  #TEMP10         # REG[Y]       TAR1  #POINTER       LAR1  #TEMP9          # REG[X]       LAR2  #TEMP10         # REG[Y]       L     B [AR1,P#0.0]       L     B [AR2,P#0.0]       AW           INVI         T     #TEMP12         # ~(REG[Y] &amp; REG[X])       L     B [AR1,P#0.0]       L     B [AR2,P#0.0]       OW           L     #TEMP12       AW                    # (~(REG[Y] &amp; REG[X])) &amp; (REG[Y] | REG[X]) - \u0430\u043d\u0430\u043b\u043e\u0433 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e       T     B [AR1,P#0.0]       L     DW#16#0       T     #REG0       L     MB   101       T     #REG1       L     MB   102       T     #REG2       L     #POINTER       LAR1         JU    PRE_LOOPEND  # \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043e\u043f\u043a\u043e\u0434\u0430 05: \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 Y \u0438\u0437 X # OP05(X, Y): REG[0] = 0; REG[X] = REG[X] - REG[Y] OPCODE_5: +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP7       L     P#M 100.0       LAR2         L     #TEMP7       L     C#8       *I           +AR2         TAR2  #TEMP9          # REG[X]       +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP8       L     P#M 100.0       LAR2         L     #TEMP8       L     C#8       *I           +AR2         TAR2  #TEMP10         # REG[Y]       TAR1  #POINTER       LAR1  #TEMP9       LAR2  #TEMP10       L     B [AR1,P#0.0]       L     B [AR2,P#0.0]       -I                    # ACCU1 = ACCU2 - ACCU1, REG[X] - REG[Y]       T     B [AR1,P#0.0]       L     DW#16#0       T     #REG0       L     MB   101       T     #REG1       L     MB   102       T     #REG2       L     #POINTER       LAR1         JU    PRE_LOOPEND  # \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043e\u043f\u043a\u043e\u0434\u0430 06: \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 #CHECK_N \u043f\u0440\u0438 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 X \u0438 Y # OP06(X, Y): #CHECK_N += (1 if REG[X] == REG[Y] else 0) OPCODE_6: L     #COUNTER_N       INC   1       T     #COUNTER_N       +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP7          #  REG[X]            L     P#M 100.0       LAR2         L     #TEMP7       L     C#8       *I           +AR2         TAR2  #TEMP9          #  REG[X]         +AR1  P#1.0       L     B [AR1,P#0.0]       T     #TEMP8       L     P#M 100.0       LAR2         L     #TEMP8       L     C#8       *I           +AR2         TAR2  #TEMP10         # REG[Y]       TAR1  #POINTER       LAR1  #TEMP9          # REG[Y]       LAR2  #TEMP10         # REG[X]       L     B [AR1,P#0.0]       L     B [AR2,P#0.0]       ==I          JCN   M013       JU    M014 M013: L     P#DBX 0.0       LAR1         T     #POINTER       L     B#16#0       T     #TEMP6       JU    PRE_LOOPEND M014: L     #POINTER       LAR1   # \u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f #CHECK_N       L     #CHECK_N       L     L#1       +I           T     #CHECK_N       JU    PRE_LOOPEND  PRE_LOOPEND: L     #REG0       T     MB   100       L     #REG1       T     MB   101       L     #REG2       T     MB   102       +AR1  P#1.0       L     #TEMP6       +     1       T     #TEMP6       JU    LOOPEND  OPCODE_OTHER: L     P#DBX 0.0       LAR1         L     0       T     #TEMP6       TAR1  #POINTER  LOOPEND: TAR1  #POINTER       CLR          =     #TEMP16       L     #CHECK_N       L     L#20       ==I          S     #TEMP16       L     #COUNTER_N       ==I          A     #TEMP16 # \u0412\u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u044b, \u0435\u0441\u043b\u0438 #CHECK_N == #COUNTER_N == 20       JC    GOOD       L     #CHECK_N       L     L#20       &lt;I           S     #TEMP16       L     #COUNTER_N       ==I          A     #TEMP16       JC    FAIL       JU    M019 GOOD: SET          =     #PRE_RET_VAL       JU    FINISH FAIL: CLR          =     #PRE_RET_VAL       JU    FINISH M019: CLR          O     #PRE_RET_VAL       =     #RET_VAL       JU    LOOP FINISH: CLR          O     #PRE_RET_VAL       =     #RET_VAL<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0431 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0431\u0430\u0439\u0442-\u043a\u043e\u0434\u0430 \u0432 \u0431\u043b\u043e\u043a\u0435 DB100:<\/p>\n<pre><code class=\"python\">import string alph = string.ascii_letters + string.digits  with open('DB100.bin', 'rb') as f:     m = f.read()  pc = 0  while pc &lt; len(m):     op = m[pc]     if op == 1:         print('R{} = DB101[{}]'.format(m[pc + 2], m[pc + 1]))         pc += 3     elif op == 2:         c = chr(m[pc + 1])         c = c if c in alph else '?'         print('R{} = {:02x} ({})'.format(m[pc + 2], m[pc + 1], c))         pc += 3     elif op == 4:         print('R0 = 0; R{} = (R{} == R{})'.format(             m[pc + 1], m[pc + 1], m[pc + 2]))         pc += 3     elif op == 5:         print('R0 = 0; R{} = R{} - R{}'.format(             m[pc + 1], m[pc + 1], m[pc + 2]))         pc += 3     elif op == 6:         print('CHECK (R{} == R{})\\n'.format(             m[pc + 1], m[pc + 2]))         pc += 3     else:         print('unk opcode {}'.format(op))         break<\/code><\/pre>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">R1 = DB101[0] R2 = 6e (n) R0 = 0; R1 = (R1 == R2) CHECK (R1 == R0)  R1 = DB101[1] R2 = 10 (?) R0 = 0; R1 = R1 - R2 R2 = 20 (?) R0 = 0; R1 = R1 - R2 CHECK (R1 == R0)  R1 = DB101[2] R2 = 77 (w) R0 = 0; R1 = (R1 == R2) CHECK (R1 == R0)  R1 = DB101[3] R2 = 0a (?) R0 = 0; R1 = R1 - R2 R2 = 16 (?) R0 = 0; R1 = R1 - R2 CHECK (R1 == R0)  R1 = DB101[4] R2 = 75 (u) R0 = 0; R1 = (R1 == R2) CHECK (R1 == R0)  R1 = DB101[5] R2 = 0a (?) R0 = 0; R1 = R1 - R2 R2 = 16 (?) R0 = 0; R1 = R1 - R2 CHECK (R1 == R0)  R1 = DB101[6] R2 = 34 (4) R0 = 0; R1 = (R1 == R2) CHECK (R1 == R0)  R1 = DB101[7] R2 = 26 (?) R0 = 0; R1 = R1 - R2 R2 = 4c (L) R0 = 0; R1 = R1 - R2 CHECK (R1 == R0)  R1 = DB101[8] R2 = 33 (3) R0 = 0; R1 = (R1 == R2) CHECK (R1 == R0)  R1 = DB101[9] R2 = 0a (?) R0 = 0; R1 = R1 - R2 R2 = 16 (?) R0 = 0; R1 = R1 - R2 CHECK (R1 == R0)  R1 = DB101[10] R2 = 37 (7) R0 = 0; R1 = (R1 == R2) CHECK (R1 == R0)  R1 = DB101[11] R2 = 22 (?) R0 = 0; R1 = R1 - R2 R2 = 46 (F) R0 = 0; R1 = R1 - R2 CHECK (R1 == R0)  R1 = DB101[12] R2 = 33 (3) R0 = 0; R1 = (R1 == R2) CHECK (R1 == R0)  R1 = DB101[13] R2 = 0a (?) R0 = 0; R1 = R1 - R2 R2 = 16 (?) R0 = 0; R1 = R1 - R2 CHECK (R1 == R0)  R1 = DB101[14] R2 = 6d (m) R0 = 0; R1 = (R1 == R2) CHECK (R1 == R0)  R1 = DB101[15] R2 = 11 (?) R0 = 0; R1 = R1 - R2 R2 = 23 (?) R0 = 0; R1 = R1 - R2 CHECK (R1 == R0)  R1 = DB101[16] R2 = 35 (5) R0 = 0; R1 = (R1 == R2) CHECK (R1 == R0)  R1 = DB101[17] R2 = 12 (?) R0 = 0; R1 = R1 - R2 R2 = 25 (?) R0 = 0; R1 = R1 - R2 CHECK (R1 == R0)  R1 = DB101[18] R2 = 33 (3) R0 = 0; R1 = (R1 == R2) CHECK (R1 == R0)  R1 = DB101[19] R2 = 26 (?) R0 = 0; R1 = R1 - R2 R2 = 4c (L) R0 = 0; R1 = R1 - R2 CHECK (R1 == R0)<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u0434\u0430\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u0438\u0437 DB101 \u043d\u0430 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u0418\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a: n0w u 4r3 7h3 m4573r. \u0415\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u0431\u043b\u043e\u043a DB101, \u0442\u043e \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0440\u0443\u0447\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u041f\u041b\u041a \u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0437\u043e\u0440\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u0441\u0434\u0443\u0442\u044c \u0432\u043e\u0437\u0434\u0443\u0448\u043d\u044b\u0439 \u0448\u0430\u0440.\u2028<\/p>\n<p>  \u0412\u043e\u0442 \u0438 \u0432\u0441\u0435! \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0437\u043d\u0430\u043d\u0438\u0439, \u0434\u043e\u0441\u0442\u043e\u0439\u043d\u044b\u0439 \u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0438\u043d\u0434\u0437\u044f \ud83d\ude42 \u041f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u044e \u043c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043f\u0430\u043c\u044f\u0442\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u044b. \u0411\u043e\u043b\u044c\u0448\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0432\u0441\u0435\u043c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c!<\/p><\/div>\n<p>               <script class=\"js-mediator-script\">!function(e){function t(t,n){if(!(n in e)){for(var r,a=e.document,i=a.scripts,o=i.length;o--;)if(-1!==i[o].src.indexOf(t)){r=i[o];break}if(!r){r=a.createElement(\"script\"),r.type=\"text\/javascript\",r.async=!0,r.defer=!0,r.src=t,r.charset=\"UTF-8\";var d=function(){var e=a.getElementsByTagName(\"script\")[0];e.parentNode.insertBefore(r,e)};\"[object Opera]\"==e.opera?a.addEventListener?a.addEventListener(\"DOMContentLoaded\",d,!1):e.attachEvent(\"onload\",d):d()}}}t(\"\/\/mediator.mail.ru\/script\/2820404\/\",\"_mediator\")}(window);<\/script>     <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\/company\/pt\/blog\/460615\/\"> https:\/\/habr.com\/ru\/company\/pt\/blog\/460615\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\"><a href=\"https:\/\/habr.com\/ru\/company\/pt\/blog\/460615\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qt\/2p\/3g\/qt2p3gfe43jhcxqqpuer8lzvgvc.png\"><\/a><\/p>\n<p>  \u041d\u0430 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0435\u043c PHDays 9 \u043c\u044b \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0438 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0432\u0437\u043b\u043e\u043c\u0443 \u0437\u0430\u0432\u043e\u0434\u0430 \u043f\u043e \u043f\u0435\u0440\u0435\u043a\u0430\u0447\u043a\u0435 \u0433\u0430\u0437\u0430 \u2014 \u043a\u043e\u043d\u043a\u0443\u0440\u0441 <a href=\"https:\/\/www.phdays.com\/ru\/program\/contests\/industrial-ninja\/\">Industrial Ninja<\/a>. \u041d\u0430 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0435 \u0431\u044b\u043b\u043e \u0442\u0440\u0438 \u0441\u0442\u0435\u043d\u0434\u0430 \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 (No Security, Low Security, High Security), \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441: \u0432 \u0432\u043e\u0437\u0434\u0443\u0448\u043d\u044b\u0439 \u0448\u0430\u0440 \u0437\u0430\u043a\u0430\u0447\u0438\u0432\u0430\u043b\u0441\u044f (\u0430 \u043f\u043e\u0442\u043e\u043c \u0441\u043f\u0443\u0441\u043a\u0430\u043b\u0441\u044f) \u0432\u043e\u0437\u0434\u0443\u0445 \u043f\u043e\u0434 \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c. <\/p>\n<p>  \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0441\u043e\u0441\u0442\u0430\u0432 \u0441\u0442\u0435\u043d\u0434\u043e\u0432 \u0431\u044b\u043b \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432: \u041f\u041b\u041a Siemens Simatic \u0441\u0435\u0440\u0438\u0438 S7-300; \u043a\u043d\u043e\u043f\u043a\u0430 \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u0441\u0434\u0443\u0432\u0430 \u0438 \u043f\u0440\u0438\u0431\u043e\u0440 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u044f (\u043f\u043e\u0434\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043a \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c \u0432\u0445\u043e\u0434\u0430\u043c \u041f\u041b\u041a (DI)); \u043a\u043b\u0430\u043f\u0430\u043d\u044b, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u043d\u0430 \u043d\u0430\u043a\u0430\u0447\u043a\u0443 \u0438 \u0441\u043f\u0443\u0441\u043a \u0432\u043e\u0437\u0434\u0443\u0445\u0430 (\u043f\u043e\u0434\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043a \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c \u0432\u044b\u0445\u043e\u0434\u0430\u043c \u041f\u041b\u041a (DO)) \u2014 \u0441\u043c. \u0440\u0438\u0441\u0443\u043d\u043e\u043a \u043d\u0438\u0436\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/2u\/fq\/om\/2ufqommgoloxmjwohpy2sphrbha.png\"><\/p>\n<p>  \u041f\u041b\u041a, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u043b \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u0441\u0434\u0443\u0432\u0435 \u0438\u043b\u0438 \u043d\u0430\u0434\u0443\u0432\u0435 \u0448\u0430\u0440\u0438\u043a\u0430 (\u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043b \u0438 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u043b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043a\u043b\u0430\u043f\u0430\u043d\u044b). \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u0432\u0441\u0435\u0445 \u0441\u0442\u0435\u043d\u0434\u0430\u0445 \u0431\u044b\u043b \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u0440\u0435\u0436\u0438\u043c \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0432\u0430\u043b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438 \u043a\u043b\u0430\u043f\u0430\u043d\u043e\u0432 \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>  \u0421\u0442\u0435\u043d\u0434\u044b \u043e\u0442\u043b\u0438\u0447\u0430\u043b\u0438\u0441\u044c \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430: \u043d\u0430 \u043d\u0435\u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u043c \u0441\u0442\u0435\u043d\u0434\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e, \u0430 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435 High Security, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u043b\u043e\u0436\u043d\u0435\u0435.<\/p>\n<p>  \u0417\u0430 \u0434\u0432\u0430 \u0434\u043d\u044f \u0431\u044b\u043b\u0438 \u0440\u0435\u0448\u0435\u043d\u044b \u043f\u044f\u0442\u044c \u0438\u0437 \u0448\u0435\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u0447; \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a, \u0437\u0430\u043d\u044f\u0432\u0448\u0438\u0439 \u043f\u0435\u0440\u0432\u043e\u0435 \u043c\u0435\u0441\u0442\u043e, \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b 233 \u0431\u0430\u043b\u043b\u0430 (\u043e\u043d \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u043d\u0430 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u043a \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u0443 \u043d\u0435\u0434\u0435\u043b\u044e). \u0422\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u0438\u0437\u0435\u0440\u043e\u0432: I \u043c\u0435\u0441\u0442\u043e \u2014 a1exdandy, II \u2014 Rubikoid, III \u2014 Ze.<\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f PHDays \u043d\u0438\u043a\u0442\u043e \u0438\u0437 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043d\u0435 \u0441\u043c\u043e\u0433 \u043e\u0434\u043e\u043b\u0435\u0442\u044c \u0432\u0441\u0435 \u0442\u0440\u0438 \u0441\u0442\u0435\u043d\u0434\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u043d\u043b\u0430\u0439\u043d-\u043a\u043e\u043d\u043a\u0443\u0440\u0441 \u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0438\u044e\u043d\u044f \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0438 \u0441\u0430\u043c\u043e\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435. \u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u043b\u0438 \u0437\u0430 \u043c\u0435\u0441\u044f\u0446 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u0438\u0435, \u043d\u0430\u0439\u0442\u0438 \u0444\u043b\u0430\u0433, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435. <\/p>\n<p>  \u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u043c\u044b \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c \u0440\u0430\u0437\u0431\u043e\u0440 \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0438\u0437 \u043f\u0440\u0438\u0441\u043b\u0430\u043d\u043d\u044b\u0445 \u0437\u0430 \u043c\u0435\u0441\u044f\u0446, \u0435\u0433\u043e \u043d\u0430\u0448\u0435\u043b \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u041a\u043e\u0432\u0440\u0438\u0436\u043d\u044b\u0445 (a1exdandy) \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Digital Security, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043d\u044f\u043b I \u043c\u0435\u0441\u0442\u043e \u0432 \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f PHDays. \u041d\u0438\u0436\u0435 \u043c\u044b \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u0435\u0433\u043e \u0442\u0435\u043a\u0441\u0442 \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\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-292295","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/292295","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=292295"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/292295\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=292295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=292295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=292295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}