{"id":324570,"date":"2021-06-08T15:00:43","date_gmt":"2021-06-08T15:00:43","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=324570"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=324570","title":{"rendered":"\u0414\u0430\u043c\u043f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 Logitech K360 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GreatFET"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\"><a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/561178\/\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/sg\/ea\/om\/sgeaomrhi65vsnveoqg49jpkrfg.jpeg\"><\/div>\n<p><\/a><\/p>\n<p>  \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0447\u0438\u0441\u0442\u043e \u0440\u0430\u0434\u0438 \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u044f \u0440\u0435\u0448\u0438\u043b \u0445\u0430\u043a\u043d\u0443\u0442\u044c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443, \u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u043e\u0434\u043e\u043f\u044b\u0442\u043d\u043e\u0439 \u0432\u044b\u0431\u0440\u0430\u043b \u0441\u0430\u043c\u0443\u044e \u0434\u0435\u0448\u0435\u0432\u0443\u044e \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c Logitech K360. \u041e\u043d\u0430 \u0443\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0430, \u0430 \u0435\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0430 \u0442\u0430\u043a\u0436\u0435, \u043a\u0430\u043a \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438, \u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0438\u0441\u044c. \u041c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/youtu.be\/00A36VABIA4\">\u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044e Mousejack<\/a> \u041c\u0430\u0440\u043a\u0430 \u041d\u044c\u044e\u043b\u0438\u043d\u0430, \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"http:\/\/travisgoodspeed.blogspot.com\/2011\/02\/promiscuity-is-nrf24l01s-duty.html\">\u0440\u0430\u0431\u043e\u0442\u0443 \u0422\u0440\u044d\u0432\u0438\u0441\u0430 \u0413\u0443\u0434\u0441\u043f\u0438\u0434\u0430 \u043f\u043e \u0441\u043d\u0438\u0444\u0444\u0438\u043d\u0433\u0443 nRF24<\/a>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c\u043e\u0439 \u0432 \u044d\u0442\u0438\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u0445 <a href=\"http:\/\/www.remote-exploit.org\/articles\/keykeriki_v2_0__8211_2_4ghz\/index.html\">\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 KeyKeriki<\/a>. <\/p>\n<p>  \u042f \u0436\u0435 \u0437\u0430\u043d\u044f\u043b\u0441\u044f \u0432\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0435\u0436\u0435\u043b\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0437\u043d\u0430\u043b, \u0447\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0443. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u0430\u044f \u0437\u0430\u0442\u0435\u044f \u0441\u0442\u0430\u043d\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u0444\u043b\u044d\u0448-\u043f\u0430\u043c\u044f\u0442\u0438 \u0433\u043e\u043b\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438. <a name=\"habracut\"><\/a><\/p>\n<h2><font color=\"#3AC1EF\">\u0420\u0430\u0437\u0431\u043e\u0440\u043a\u0430 \u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u0441\u043c\u043e\u0442\u0440<\/font><\/h2>\n<p>  \u0420\u0435\u0432\u0435\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e \u0441 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0432\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438. \u041f\u043e\u0441\u043b\u0435 \u0441\u043d\u044f\u0442\u0438\u044f \u0441 \u043f\u0435\u0440\u0435\u0434\u043d\u0435\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 \u043f\u0440\u0438\u043a\u043b\u0435\u0438\u0432\u0430\u044e\u0449\u0435\u0439\u0441\u044f \u043f\u043b\u0430\u0441\u0442\u0438\u043d\u044b \u0440\u0430\u0437\u0431\u043e\u0440\u043a\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0432\u044b\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0441\u043a\u0440\u0435\u043f\u043b\u044f\u044e\u0449\u0438\u0435 \u043a\u043e\u0440\u043f\u0443\u0441 \u0448\u0443\u0440\u0443\u043f\u044b. \u0412\u043d\u0443\u0442\u0440\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043a\u043b\u0430\u0432\u0438\u0448 \u0441 \u0440\u0435\u0437\u0438\u043d\u043e\u0432\u044b\u043c \u043a\u0443\u043f\u043e\u043b\u043e\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043f\u043b\u0430\u0442\u0430 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438. \u0418\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043d\u0430 \u043d\u0435\u0439 \u0440\u0430\u0441\u043f\u043b\u043e\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0438\u043f nRF24LE1:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/cl\/az\/2q\/claz2qacw54z55joyfddv8hgbag.png\"><br \/>  <i><font color=\"#999999\">\u041b\u0438\u0446\u0435\u0432\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043f\u043b\u0430\u0442\u044b<\/font><\/i><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/5m\/tc\/ug\/5mtcugmmkp_vnlkjr9qsctsmsjg.png\"><br \/>  <i><font color=\"#999999\">\u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043f\u043b\u0430\u0442\u044b<\/font><\/i><\/p>\n<p>  \u0421\u043b\u0435\u0432\u0430 \u043e\u0442 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e \u0448\u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u044b\u0445 \u043f\u043b\u043e\u0449\u0430\u0434\u043e\u043a \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u042f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u044d\u0442\u043e \u0443\u0434\u0430\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u043d\u0430\u0447\u0430\u043b \u0441 \u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0438 \u0449\u0443\u043f\u043e\u0432 \u043f\u0440\u0438\u0436\u0438\u043c\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432. TP8 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u043b \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u0442\u0430\u043a\u0442 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435, \u0430 TP4 \u044f\u0432\u043b\u044f\u043b\u0441\u044f \u0437\u0435\u043c\u043b\u0435\u0439, \u043d\u043e \u043f\u0430\u0441\u0441\u0438\u0432\u043d\u043e\u0435 \u00ab\u043f\u0440\u043e\u0449\u0443\u043f\u044b\u0432\u0430\u043d\u0438\u0435\u00bb \u043d\u0435 \u0432\u044b\u044f\u0432\u043b\u044f\u043b\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438. \u0422\u0443\u0442 \u043c\u043d\u0435 \u0441\u0442\u0430\u043b\u043e \u044f\u0441\u043d\u043e, \u0447\u0442\u043e \u0433\u0440\u0443\u043f\u043f\u0430 \u0438\u0437 \u0448\u0435\u0441\u0442\u0438 \u0441\u043b\u043e\u0432 \u0441\u043f\u0440\u0430\u0432\u0430 \u043e\u0442 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b \u043a\u0430\u043a \u0440\u0430\u0437 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u0430 \u044d\u0442\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u044b\u0435 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u0445 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b. <\/p>\n<h2><font color=\"#3AC1EF\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a GreatFET \u0438 \u043f\u0440\u043e\u0431\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/font><\/h2>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0437\u043e\u043d\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 SPI \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b \u044d\u0442\u0438 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 \u043a \u0433\u0440\u0435\u0431\u0435\u043d\u043a\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u043c\u0430\u043b\u044c\u043f\u0440\u043e\u0432\u043e\u0434\u0430, \u0430 \u0441 \u043d\u0438\u043c\u0438 \u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b TP5 \u0438 TP7. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 nRF24LE1, TP7 \u0432\u0435\u0434\u0435\u0442 \u043a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0443 PROG, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u043c\u0443 \u0434\u043b\u044f \u201c\u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u043b\u044d\u0448-\u043f\u0430\u043c\u044f\u0442\u0438\u00bb, \u0430 TP5 \u043a RESET (\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d \u0441\u0440\u0430\u0437\u0443 \u0440\u044f\u0434\u043e\u043c \u0441 TP5). Reset \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u043c \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/-b\/kz\/ug\/-bkzug_gzjiznfah4es55epzsnq.png\"><br \/>  <i><font color=\"#999999\">\u0421\u0445\u0435\u043c\u0430 \u0440\u0430\u0441\u043f\u0438\u043d\u043e\u0432\u043a\u0438 nRF24LE1<\/font><\/i><\/p>\n<p>  \u041a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u044b\u0435 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 \u0441 10 \u043f\u043e 13 \u044f \u0442\u0440\u043e\u0433\u0430\u0442\u044c \u043d\u0435 \u0441\u0442\u0430\u043b, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u0438 \u0438\u0434\u0443\u0442 \u043a \u043e\u0431\u0449\u0438\u043c \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u043c \u0432\u0432\u043e\u0434\u0430\/\u0432\u044b\u0432\u043e\u0434\u0430 \u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043d\u0430 \u0434\u043e\u0440\u043e\u0436\u043a\u0430\u0445, \u0432\u0435\u0434\u0443\u0449\u0438\u0445 \u043a \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u043a\u043b\u0430\u0432\u0438\u0448.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/m7\/2q\/9n\/m72q9ngw9r6uqdaqko80maw5kqk.png\"><br \/>  <i><font color=\"#999999\">\u041f\u0440\u043e\u0432\u043e\u0434\u0430 SPI<\/font><\/i><\/p>\n<p>  \u042f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 SPI \u043a SPI-\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u043c \u043d\u0430 GreatFET, GND \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0437 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u0437\u0435\u043c\u043b\u0438 \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043b \u043a\u043e\u043d\u0442\u0430\u043a\u0442 \u0432\u0432\u043e\u0434\u0430\/\u0432\u044b\u0432\u043e\u0434\u0430 \u043a \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0435 RESET. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u044f \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u043d\u0430 GreatFET \u043a\u043e\u043d\u0442\u0430\u043a\u0442 3V3 \u0434\u043b\u044f \u043f\u0440\u044f\u043c\u043e\u0439 \u043f\u043e\u0434\u0430\u0447\u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043a \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0435 nRF24 \u0447\u0435\u0440\u0435\u0437 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0443 VMCU. <\/p>\n<pre><code class=\"bash\">gf = GreatFET() reset_pin = gf.gpio.get_pin('J1_P4') reset_pin.high()<\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 SPI, \u043d\u043e \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b:<\/p>\n<pre><code class=\"bash\">In [6]: gf.spi.transmit([0x05], receive_length=1) Out[6]: b'\\xff'  In [7]: gf.spi.transmit([0x03, 0x00, 0x00], receive_length=4) Out[7]: b'\\xff\\xff\\xff\\xff'<\/code><\/pre>\n<p>  \u0422\u043e\u0433\u0434\u0430 \u044f \u0432\u043d\u043e\u0432\u044c \u043e\u0431\u0440\u0430\u0442\u0438\u043b\u0441\u044f \u043a \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u043b, \u0447\u0442\u043e \u0448\u0438\u043d\u0430 SPI \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u043b\u044d\u0448-\u043f\u0430\u043c\u044f\u0442\u0438, \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u043c PROG, \u0438\u043c\u0435\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432. \u042d\u0442\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u043b\u0438 \u0441 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u044f \u043f\u043e\u0434\u043f\u0430\u044f\u043b\u0441\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u043d\u0435 \u0432\u0435\u0434\u0443\u0442 \u043b\u0438 \u043e\u043d\u0438 \u043a \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0430\u043c. <\/p>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043c\u043d\u0435 \u043f\u043e\u043c\u043e\u0433 \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0442\u0440, \u043d\u043e \u0432\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0434\u043e\u0440\u043e\u0436\u043a\u0438 \u043d\u0430 \u0444\u043e\u0442\u043e \u0441\u0430\u043c\u043e\u0439 \u043f\u043b\u0430\u0442\u044b. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043a \u044d\u0442\u0438\u043c \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u043c (P1.2, P1.5, P1.6 \u0438 P2.0) \u0432\u0435\u0434\u0443\u0442 \u0442\u0435 \u0441\u0430\u043c\u044b\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043c\u043d\u043e\u0439 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e TP10-TP13. \u0422\u0430\u043a \u043a\u0430\u043a \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u0447\u0435\u0442\u044b\u0440\u0435 \u043d\u043e\u0432\u044b\u0445 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438, \u044f \u043d\u0435 \u0441\u0442\u0430\u043b \u043f\u0430\u044f\u0442\u044c, \u0430 \u0441\u043d\u043e\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0449\u0443\u043f\u044b PCBite. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/66\/cw\/vf\/66cwvfbtahibphxfaoyoaxhue5y.png\"><br \/>  <i><font color=\"#999999\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0444\u043b\u044d\u0448-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/font><\/i><\/p>\n<p>  \u0414\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 SPI \u043d\u0443\u0436\u043d\u043e \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0430\u043a\u0442 PROG \u043d\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0438 \u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u0430\u0447\u0435\u0439 \u043d\u0430 RESET \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u042f \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0430\u043a\u0442 \u0432\u0432\u043e\u0434\u0430\/\u0432\u044b\u0432\u043e\u0434\u0430 GreatFET \u0434\u043b\u044f PROG, \u0430 \u0437\u0430\u0442\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0432 \u0441\u043a\u0440\u0438\u043f\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043d\u0430 RESET \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f.<\/p>\n<pre><code class=\"bash\">#!\/usr\/bin\/env python3 import hexdump import time from greatfet import GreatFET  def reset(gf, reset_pin):     reset_pin.low()     time.sleep(0.001)     reset_pin.high()     time.sleep(0.001)   def main():     gf = GreatFET()     reset_pin = gf.gpio.get_pin('J1_P4')     prog_pin = gf.gpio.get_pin('J1_P6')      # Reset is active low     reset_pin.high()      # Enter prog mode     prog_pin.high()     time.sleep(0.01)     reset(gf, reset_pin)      # ...  if __name__ == '__main__':     main()<\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0441\u0431\u0440\u043e\u0441\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 SPI-\u043a\u043e\u043c\u0430\u043d\u0434 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0444\u043b\u044d\u0448-\u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0435\u0435 \u0437\u0430\u0449\u0438\u0442\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u0435. <\/p>\n<pre><code class=\"bash\">fsr = ord(gf.spi.transmit([0x05], receive_length=1)) fpcr = ord(gf.spi.transmit([0x89], receive_length=1)) print(f'flash status register: {fsr:#02x}') print(f'flash protect register: {fpcr:#02x}')  # test read print('test read:') data = gf.spi.transmit([0x03, 0x00, 0x00], receive_length=256) hexdump.hexdump(data)<\/code><\/pre>\n<p>  \u041d\u043e \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u044f \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u043b \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 (\u043b\u0438\u0448\u044c \u0432\u0441\u0435 \u0442\u0443 \u0436\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u0430\u0439\u0442\u043e\u0432 <code>0xFF<\/code>). \u0412 \u0438\u0442\u043e\u0433\u0435, \u0432\u043e\u043e\u0440\u0443\u0436\u0438\u0432\u0448\u0438\u0441\u044c \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444\u043e\u043c, \u044f \u0432\u0437\u044f\u043b\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0435\u0445 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0434\u043b\u044f GreatFET \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u043b \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444\u043e\u043c \u043a\u043e\u043d\u0442\u0430\u043a\u0442 RESET, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043d\u0430 \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 Reset \u043d\u0430 \u0449\u0443\u043f\u0435 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438.<\/p>\n<p>  \u041f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 RESET \u0438 PROG \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0437\u0430\u043c\u0435\u0440 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0448\u0443\u043d\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043b\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u0431\u0440\u043e\u0441. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u0432 \u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c PROG:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/k6\/yv\/8z\/k6yv8z1hskpu0vyuydkhinatfze.png\"><br \/>  <i><font color=\"#999999\">\u0421\u0431\u0440\u043e\u0441 \u043f\u0440\u0438 \u043d\u0438\u0437\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 PROG<\/font><\/i><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qf\/ym\/7s\/qfym7segqoapc6vwmiiismtlgxg.png\"><br \/>  <i><font color=\"#999999\">\u0421\u0431\u0440\u043e\u0441 \u043f\u0440\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 PROG<\/font><\/i><\/p>\n<p>  \u041e\u0434\u0438\u043d \u0438\u0437 \u0449\u0443\u043f\u043e\u0432 SPI, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0431\u044b\u043b \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d, \u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444 \u043f\u043e\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u0432\u0441\u0435 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u044f \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u043b \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0441\u043c\u043e\u0433 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438 \u0443\u0436\u0435 \u0432\u0440\u0430\u0437\u0443\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435:<\/p>\n<pre><code class=\"bash\">$ .\/test.py flash status register: 0x80 flash protect register: 0x0 test read: 00000000: 80 A3 A3 02 00 03 78 FF  E4 F6 D8 FD 90 00 00 7F  ......x......... 00000010: 00 7E 04 E4 F0 A3 DF FC  DE FA 75 81 7E 02 07 82  .~........u.~... 00000020: FC 00 FF D9 00 11 01 FF  E0 FF E0 00 01 02 FF E1  ................ 00000030: FF E1 00 01 02 FF E2 FF  E6 00 01 02 FF E7 FF EB  ................ 00000040: 00 01 02 FF EC FF EF 00  04 02 FF F0 FF FF 00 01  ................ 00000050: 00 57 69 72 65 6C 65 73  73 20 4B 65 79 62 6F 61  .Wireless Keyboa 00000060: 72 64 20 00 34 D9 1D F0  40 01 00 00 00 61 02 20  rd .4...@....a. ...<\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 <code>Wireless keyboard<\/code>. \u0417\u0430\u0442\u0435\u043c \u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043e\u0434\u043d\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u0435 18432 \u0431\u0430\u0439\u0442\u043e\u0432 \u2013 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c, \u0435\u0441\u043b\u0438 \u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. \u041d\u0430 \u0432\u044b\u0432\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0442\u043e\u043b\u043a\u043e\u0432\u044b\u0439 \u0434\u0430\u043c\u043f \u0444\u043b\u044d\u0448-\u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0412 nRF24LE1 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043e\u0442 8051, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u043a\u043e\u0434, \u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b \u0435\u0433\u043e \u0432 Ghidra \u0432 \u0432\u0438\u0434\u0435 BLOB-\u043e\u0431\u044a\u0435\u043a\u0442\u0430 8051. \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0437\u043d\u0430\u0447\u0438\u0442 \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u043e\u0434. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/dk\/eo\/0u\/dkeo0uo9wruza2ix-itoxioce8m.png\"> <br \/>  <i><font color=\"#999999\">\u0422\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 Ghidra<\/font><\/i><\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0438 \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u044d\u0445\u043e\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0444\u043b\u044d\u0448-\u043f\u0430\u043c\u044f\u0442\u0438 \u044f \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0448\u0438\u043b \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u0443\u044e \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 InfoPage:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/6i\/hz\/-i\/6ihz-i9ywwlx0rri90viinrgtxi.png\"><br \/>  <i><font color=\"#999999\">\u0420\u0430\u0437\u0434\u0435\u043b InfoPage \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 nRF24LE1<\/font><\/i><\/p>\n<p>  \u0414\u043b\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f InfoPage \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0431\u0438\u0442 <code>INFEN <\/code>\u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0444\u043b\u044d\u0448-\u043f\u0430\u043c\u044f\u0442\u0438, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>write flash status register<\/code>:<\/p>\n<pre><code class=\"bash\">def read_fsr(gf):     fsr = gf.spi.transmit([0x05], receive_length=1)     return ord(fsr)  def write_fsr(gf, fsr):     fsr &amp;= 0xff     gf.spi.transmit([0x01, fsr])  def read_flash(gf, address, count):     command = struct.pack('&gt;BH', 0x03, address)     data = gf.spi.transmit(command, receive_length=count)     return data  def get_infoblock(gf):     flash_stat_reg = read_fsr(gf)      # INFEN is bit 3 (2^3)     write_fsr(gf, flash_stat_reg | 8)     time.sleep(0.001)      infoblock = read_flash(gf, 0, 512)      # Unset INFEN bit     write_fsr(gf, flash_stat_reg &amp; (~8 &amp; 0xff))      return infoblock<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u044f \u043c\u043e\u0433\u0443 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c InfoPage, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0438 \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u044d\u0445\u043e\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0445\u043e\u0434\u0435 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u0447\u0442\u0435\u043d\u0438\u044f \u0443\u0436\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u043e \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u044d\u0445\u043e\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430, \u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432 \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u043c\u043d\u0435 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0414\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043b\u0438\u0448\u043d\u0438\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u044d\u043a\u0430\u043f InfoPage \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439, \u0435\u0441\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u0435\u0435 \u044f \u0441\u043e\u0442\u0440\u0443 \u0444\u043b\u044d\u0448-\u043f\u0430\u043c\u044f\u0442\u044c. <\/p>\n<p>  \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432 \u043a\u043e\u0434 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u043d\u0435\u0441\u0442\u0438 \u0432\u0441\u0435\u0433\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0438 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0434\u0430\u043c\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438\/\u0438\u043b\u0438 InfoPage \u0432 \u0444\u0430\u0439\u043b\u044b:<\/p>\n<pre><code class=\"bash\">$ .\/k360_spi.py --dump flashdump.bin flash status register: 0x80 flash protect register: 0x0 InfoBlock content: 00000000: 00 A3 A3 48 31 57 54 79  70 14 0A 12 FF FF 98 04  ...H1WTyp....... 00000010: 79 7C 88 23 B1 50 0F 05  FF FF FF FF 82 79 FF FF  y|.#.P.......y.. 00000020: FF FF FF FF FF FF FF FF  FF FF FF FF FF FF FF FF  ................ 00000030: FF FF FF 4C 45 31 4F FF  FF FF FF FF FF FF FF FF  ...LE1O......... ... 000001F0: FF FF FF FF FF FF FF FF  FF FF FF FF FF FF FF FF  ................ Flash readback protection: False (ff) HW debug enabled: False (ff) wrote flash dump to flashdump.bin<\/code><\/pre>\n<p>  \u0412\u0435\u0441\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f <code>k360_spi.py<\/code> \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c: <a href=\"https:\/\/gist.github.com\/jamchamb\/b2892a22ac0760346d4d617fedf9b541\">https:\/\/gist.github.com\/jamchamb\/b2892a22ac0760346d4d617fedf9b541<\/a>. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0430\u043d\u0430\u043b\u0438\u0437 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438.<\/p>\n<p>  <a href=\"https:\/\/ruvds.com\/news\/read\/142?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=Bright_Translate&amp;utm_content=damp_proshivki_besprovodnoj_logitech_k360_s_pomoshhyu_greatfet\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" width=\"100%\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/fe0\/411\/6e6\/fe04116e6f4217957b5c55be7f0f826b.jpg\"><\/div>\n<p><\/a><br \/>  <a href=\"http:\/\/ruvds.com\/ru-rub?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=Bright_Translate&amp;utm_content=damp_proshivki_besprovodnoj_logitech_k360_s_pomoshhyu_greatfet\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ou\/g5\/kh\/oug5kh6sjydt9llengsiebnp40w.png\"><\/a><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/561178\/\"> https:\/\/habr.com\/ru\/company\/ruvds\/blog\/561178\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\"><a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/561178\/\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/sg\/ea\/om\/sgeaomrhi65vsnveoqg49jpkrfg.jpeg\"><\/div>\n<p><\/a><\/p>\n<p>  \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0447\u0438\u0441\u0442\u043e \u0440\u0430\u0434\u0438 \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u044f \u0440\u0435\u0448\u0438\u043b \u0445\u0430\u043a\u043d\u0443\u0442\u044c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443, \u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u043e\u0434\u043e\u043f\u044b\u0442\u043d\u043e\u0439 \u0432\u044b\u0431\u0440\u0430\u043b \u0441\u0430\u043c\u0443\u044e \u0434\u0435\u0448\u0435\u0432\u0443\u044e \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c Logitech K360. \u041e\u043d\u0430 \u0443\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0430, \u0430 \u0435\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0430 \u0442\u0430\u043a\u0436\u0435, \u043a\u0430\u043a \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438, \u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0438\u0441\u044c. \u041c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/youtu.be\/00A36VABIA4\">\u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044e Mousejack<\/a> \u041c\u0430\u0440\u043a\u0430 \u041d\u044c\u044e\u043b\u0438\u043d\u0430, \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"http:\/\/travisgoodspeed.blogspot.com\/2011\/02\/promiscuity-is-nrf24l01s-duty.html\">\u0440\u0430\u0431\u043e\u0442\u0443 \u0422\u0440\u044d\u0432\u0438\u0441\u0430 \u0413\u0443\u0434\u0441\u043f\u0438\u0434\u0430 \u043f\u043e \u0441\u043d\u0438\u0444\u0444\u0438\u043d\u0433\u0443 nRF24<\/a>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c\u043e\u0439 \u0432 \u044d\u0442\u0438\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u0445 <a href=\"http:\/\/www.remote-exploit.org\/articles\/keykeriki_v2_0__8211_2_4ghz\/index.html\">\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 KeyKeriki<\/a>. <\/p>\n<p>  \u042f \u0436\u0435 \u0437\u0430\u043d\u044f\u043b\u0441\u044f \u0432\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0435\u0436\u0435\u043b\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0437\u043d\u0430\u043b, \u0447\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0443. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u0430\u044f \u0437\u0430\u0442\u0435\u044f \u0441\u0442\u0430\u043d\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u0444\u043b\u044d\u0448-\u043f\u0430\u043c\u044f\u0442\u0438 \u0433\u043e\u043b\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\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-324570","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/324570","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=324570"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/324570\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=324570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=324570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=324570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}