{"id":307754,"date":"2020-07-30T15:01:12","date_gmt":"2020-07-30T15:01:12","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=307754"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=307754","title":{"rendered":"\u041a\u0430\u043a \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044f \u0432 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/513036\/\"><a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/513036\/\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/0n\/of\/y-\/0nofy-hmj4td1hcqegkohx34a6a.jpeg\"><\/div>\n<p><\/a><br \/>  Toyota \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442 \u0441\u0432\u043e\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0432 \u043d\u0435\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435. \u041c\u043e\u0439 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c \u044d\u0442\u043e\u0439 \u043c\u0430\u0440\u043a\u0438, \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043c\u043d\u0435 \u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a:<\/p>\n<p>  <code>CALIBRATION\u00eaXi \u00ba <br \/>  attach.att<br \/>  \u00d3\u00cf[Format]<br \/>  Version=4<\/p>\n<p>  [Vehicle]<br \/>  Number=0<br \/>  DateOfIssue=2019-08-26<br \/>  VehicleType=GUN1**<br \/>  EngineType=1GD-FTV,2GD-FTV<br \/>  VehicleName=IMV<br \/>  ModelYear=15-<br \/>  ContactType=CAN<br \/>  KindOfECU=0<br \/>  NumberOfCalibration=1<\/p>\n<p>  [CPU01]<br \/>  CPUImageName=3F0S7300.xxz<br \/>  FlashCodeName=<br \/>  NewCID=3F0S7300<br \/>  LocationID=0002000100070720<br \/>  CPUType=87<br \/>  NumberOfTargets=3<br \/>  01_TargetCalibration=3F0S7200<br \/>  01_TargetData=3531464734383B3A<br \/>  02_TargetCalibration=3F0S7100<br \/>  02_TargetData=3747354537494A39<br \/>  03_TargetCalibration=3F0S7000<br \/>  03_TargetData=3732463737463B4A<\/p>\n<p>  3F0S7300forIMV.txt \u00b8Ni\u00b6m5A56001000820EE13FE2030133E20301<br \/>  33E2030133C20EF13FE2030133E20301<br \/>  33E2030133E2030133E2030133E20301<br \/>  33E2030133C20EF13FE2030133E20301<br \/>  33E2030133C20EF13FE2030133E20301<br \/>  33E2030133C20EF13FE2030133E20301<br \/>  33E2030133E2030133E2030133E20301<br \/>  33E2030133C20EF13FE2030133E20301<br \/>  33E2030133E20911381959FAB0EE9000<br \/>  81C9E03ADE35CEEEEFC5CF8DE9AC0910<br \/>  38C2E031DE35CEEEEFC8CF87E95C0920<br \/>  ...<\/code><br \/>  \u0414\u0430\u043b\u044c\u0448\u0435 \u0438\u0434\u0443\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e 32 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u044b.<\/p>\n<p>  \u0425\u043e\u0437\u044f\u0438\u043d\u0443 \u0438 \u043f\u0440\u043e\u0447\u0438\u043c \u0443\u043c\u0435\u043b\u044c\u0446\u0430\u043c \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u0435\u0440\u0435\u0434 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043c \u0432\u043d\u0443\u0442\u0440\u0438: \u0437\u0430\u0441\u0443\u043d\u0443\u0442\u044c \u0435\u0435 \u0432 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0430 \u0434\u0435\u043b\u0430\u0435\u0442.<a name=\"habracut\"><\/a><\/p>\n<p>  \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0443 \u043d\u0435\u0433\u043e \u0438\u043c\u0435\u043b\u0441\u044f \u0434\u0430\u043c\u043f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e:<\/p>\n<pre><code class=\"plaintext\">0000: 80 07 80 00 00 00 00 00 \u2502 00 00 00 00 00 00 00 00 0010: 80 07 00 00 00 00 00 00 \u2502 00 00 00 00 00 00 00 00 0020: 00 00 00 00 00 00 00 00 \u2502 00 00 00 00 00 00 00 00 0030: 80 07 00 00 00 00 00 00 \u2502 00 00 00 00 00 00 00 00 0040: 80 07 00 00 00 00 00 00 \u2502 00 00 00 00 00 00 00 00 0050: 80 07 00 00 00 00 00 00 \u2502 00 00 00 00 00 00 00 00 0060: 00 00 00 00 00 00 00 00 \u2502 00 00 00 00 00 00 00 00 0070: 80 07 00 00 00 00 00 00 \u2502 00 00 00 00 00 00 00 00 0080: E0 07 60 01 2A 06 00 FF \u2502 00 00 0A 58 EA FF 20 00 0090: FF 57 40 00 EB 51 B2 05 \u2502 80 07 48 01 E0 FF 20 00 ...<\/code><\/pre>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0434\u0430\u0436\u0435 \u0431\u043b\u0438\u0437\u043a\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0433\u043e \u043d\u0430 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0445 \u0446\u0438\u0444\u0440 \u0432 \u0444\u0430\u0439\u043b\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438. \u0412\u0441\u0442\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441: \u0432 \u043a\u0430\u043a\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430, \u0438 \u043a\u0430\u043a \u0435\u0435 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c? \u042d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u0445\u043e\u0437\u044f\u0438\u043d \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044f \u043f\u043e\u0440\u0443\u0447\u0438\u043b \u043c\u043d\u0435.<\/p>\n<h2><font color=\"#3AC1EF\">\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b<\/font><\/h2>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430 \u0442\u0435 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u0447\u043a\u0438:<\/p>\n<p>  <code>5A56001000820EE13F<u>E2030133E20301<\/u><br \/>  <u>33E2030133<\/u>C20EF13F<u>E2030133E20301<\/u><br \/>  <u>33E2030133E2030133E2030133E20301<\/u><br \/>  <u>33E2030133<\/u>C20EF13FE<u>2030133E20301<\/u><br \/>  <u>33E2030133<\/u>C20EF13FE<u>2030133E20301<\/u><br \/>  <u>33E2030133<\/u>C20EF13FE<u>2030133E20301<\/u><br \/>  <u>33E2030133E2030133E2030133E20301<\/u><br \/>  <u>33E2030133<\/u>C20EF13FE<u>2030133E20301<\/u><br \/>  <u>33E2030133<\/u>E20911381959FAB0EE9000<br \/>  81C9E03ADE35CEEEEFC5CF8DE9AC0910<br \/>  38C2E031DE35CEEEEFC8CF87E95C0920<br \/>  ...<br \/>  <\/code><\/p>\n<p>  \u0412\u0438\u0434\u0438\u043c \u0432\u043e\u0441\u0435\u043c\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u0437 \u0442\u0440\u0435\u0445\u043a\u0440\u0430\u0442\u043d\u043e\u0433\u043e <code>E2030133<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0442 \u0432\u043e\u0441\u0435\u043c\u044c \u043f\u0435\u0440\u0432\u044b\u0445 \u0441\u0442\u0440\u043e\u0447\u0435\u043a \u0434\u0430\u043c\u043f\u0430, \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430 12 \u043d\u0443\u043b\u0435\u0432\u044b\u0445 \u0431\u0430\u0439\u0442. \u0421\u0440\u0430\u0437\u0443 \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0440\u0438 \u0432\u044b\u0432\u043e\u0434\u0430:<\/p>\n<ol>\n<li>\u041f\u044f\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0445 \u0431\u0430\u0439\u0442 <code>5A56001000<\/code> \u2014 \u044d\u0442\u043e \u043d\u0435\u043a\u0438\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u043d\u0435 \u0432\u043b\u0438\u044f\u044e\u0449\u0438\u0439 \u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0434\u0430\u043c\u043f\u0430;<\/li>\n<li>\u0414\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043e \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u043f\u043e 4 \u0431\u0430\u0439\u0442\u0430, \u043f\u0440\u0438\u0447\u0435\u043c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u0431\u0430\u0439\u0442\u0430\u043c \u0434\u0430\u043c\u043f\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0431\u0430\u0439\u0442\u044b \u0432 \u0444\u0430\u0439\u043b\u0435:\n<ul>\n<li><code>E2030133 \u2192 00000000<\/code><\/li>\n<li><code>820EE13F \u2192 80078000<\/code><\/li>\n<li><code>C20EF13F \u2192 80070000<\/code><\/li>\n<li><code>E2091138 \u2192 E0076001<\/code><\/li>\n<li><code>1959FAB0 \u2192 2A0600FF<\/code><\/li>\n<li><code>EE900081 \u2192 00000A58<\/code><\/li>\n<li><code>C9E03ADE \u2192 EAFF2000<\/code><\/li>\n<\/ul>\n<\/li>\n<li>\u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435 XOR-\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0430 \u043d\u0435\u0447\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435; \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u043e\u0445\u043e\u0436\u0438\u043c \u0431\u043b\u043e\u043a\u0430\u043c \u0434\u0430\u043c\u043f\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u0431\u043b\u043e\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0438\u0442\u0430 <code>80078000\u219280070000<\/code> \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0438\u0442\u0430 <code>820EE13F\u2192C20EF13F<\/code>.<\/li>\n<\/ol>\n<p>  <\/p>\n<h2><font color=\"#3AC1EF\">\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0431\u043b\u043e\u043a\u0430\u043c\u0438<\/font><\/h2>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u043f\u0430\u0440 (\u0431\u043b\u043e\u043a \u0444\u0430\u0439\u043b\u0430, \u0431\u043b\u043e\u043a \u0434\u0430\u043c\u043f\u0430), \u0438 \u043f\u043e\u0438\u0449\u0435\u043c \u0432 \u043d\u0435\u043c \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"python\">$ xxd -r -p firmware.txt decoded  $ python &gt;&gt;&gt; f = open('decoded','rb') &gt;&gt;&gt; data=f.read() &gt;&gt;&gt; words=[data[i:i+4] for i in range(0,4096,4)] &gt;&gt;&gt; f = open('dump','rb') &gt;&gt;&gt; data=f.read()[:4096] &gt;&gt;&gt; reference=[data[i:i+4] for i in range(0,4096,4)] &gt;&gt;&gt; list(zip(words,reference))[:3] [(b'\\x82\\x0e\\xe1?', b'\\x80\\x07\\x80\\x00'), (b'\\xe2\\x03\\x013', b'\\x00\\x00\\x00\\x00'), (b'\\xe2\\x03\\x013', b'\\x00\\x00\\x00\\x00')] &gt;&gt;&gt; dict(zip(words,reference)) {b'\\x82\\x0e\\xe1?': b'\\x80\\x07\\x80\\x00', b'\\xe2\\x03\\x013': b'\\x00\\x00\\x00\\x00', b'\\xc2\\x0e\\xf1?': b'\\x80\\x07\\x00\\x00', ...} &gt;&gt;&gt; decode=dict(zip((w.hex() for w in words), (r.hex() for r in reference))) &gt;&gt;&gt; decode {'820ee13f': '80078000', 'e2030133': '00000000', 'c20ef13f': '80070000', ...} &gt;&gt;&gt; sorted(decode.items()) [('00beb5ff', '4c07a010'), ('02057139', '0000f00f'), ('03ef5ed0', '50ff710f'), ...] <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u0430\u0440\u044b \u0432 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435:<\/p>\n<pre> 00beb5ff \u2192 4c07a010 02057139 \u2192 0000f00f 03ef5ed0 \u2192 50ff710f \\ \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0431\u0438\u0442\u0435 24 \u0432 \u0434\u0430\u043c\u043f\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u0431\u0438\u0442\u044b 8, 10, 24-27 \u0432 \u0444\u0430\u0439\u043b\u0435 04ef5bd0 \u2192 51ff710f &lt;  0408ed38 \u2192 14002d06  \\ 05f92ed7 \u2192 ffffd087   | 0a5d22bb \u2192 f602dffe    &gt; \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0431\u0438\u0442\u0435 25 \u0432 \u0434\u0430\u043c\u043f\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u0431\u0438\u0442\u044b 11, 25-27 \u0432 \u0444\u0430\u0439\u043b\u0435 0a62f9a9 \u2192 e10f5761   | 0acdc6e4 \u2192 a25d2c06  \/ 0aef53d0 \u2192 53ff710f &lt; 0aef5cd0 \u2192 52ff710f \/ \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0431\u0438\u0442\u0435 24 \u0432 \u0434\u0430\u043c\u043f\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u0431\u0438\u0442\u044b 8-11 \u0432 \u0444\u0430\u0439\u043b\u0435 0bdebd6f \u2192 4c57a410 0d0c7fec \u2192 0064ffff 0d0fe57f \u2192 18402c57 0d8fa4d0 \u2192 bfff88ff 0ee882d7 \u2192 eafd7f00 1001c5c6 \u2192 6c570042 \\ 1008d238 \u2192 42003e06  &gt; \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0431\u0438\u0442\u0435 1 \u0432 \u0434\u0430\u043c\u043f\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u0431\u0438\u0442\u044b 0, 3, 16-19 \u0432 \u0444\u0430\u0439\u043b\u0435 100ec5cf \u2192 6c570040 \/ 109ec58f \u2192 6c070050 10e1ebdf \u2192 62ff6008 10ec4cdd \u2192 dafd4c07 119f0f8f \u2192 08006d57 11c0feee \u2192 2c5f0500 120ff07e \u2192 20420452 125ef13e \u2192 20f600c8 125fc14e \u2192 60420032 126f02af \u2192 02006d67 1281d09f \u2192 400f3488 1281d19f \u2192 400f3088 12a6d0bb \u2192 40073498 12a6d1bb \u2192 40073098 \\ 12aed0bf \u2192 40073490  &gt; \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0431\u0438\u0442\u0435 3 \u0432 \u0434\u0430\u043c\u043f\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u0431\u0438\u0442\u044b 2 \u0438 19 \u0432 \u0444\u0430\u0439\u043b\u0435 12aed1bf \u2192 40073090 \/&gt; \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0431\u0438\u0442\u0435 10 \u0432 \u0434\u0430\u043c\u043f\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u0431\u0438\u0442 8 \u0432 \u0444\u0430\u0439\u043b\u0435 12c3f1ea \u2192 20560001 \\ 12c9f1ea \u2192 20560002 \/  \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0431\u0438\u0442\u0430\u0445 0 \u0438 1 \u0432 \u0434\u0430\u043c\u043f\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u0431\u0438\u0442\u044b 17 \u0438 19 \u0432 \u0444\u0430\u0439\u043b\u0435 ...<\/pre>\n<p>  \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0432\u0438\u0434\u043d\u044b \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0431\u0438\u0442\u0430\u0445 0-3 \u0432 \u0434\u0430\u043c\u043f\u0435 \u043c\u0435\u043d\u044f\u044e\u0442 \u0431\u0438\u0442\u044b 0-3 \u0438 16-19 \u0432 \u0444\u0430\u0439\u043b\u0435 (\u043c\u0430\u0441\u043a\u0430 <code>000F000F<\/code>)<\/li>\n<li>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0431\u0438\u0442\u0430\u0445 24-25 \u0432 \u0434\u0430\u043c\u043f\u0435 \u043c\u0435\u043d\u044f\u044e\u0442 \u0431\u0438\u0442\u044b 8-11 \u0438 24-27 \u0432 \u0444\u0430\u0439\u043b\u0435 (\u043c\u0430\u0441\u043a\u0430 <code>0F000F00<\/code>)<\/li>\n<\/ul>\n<p>  \u041d\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u0430, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0435 4 \u0431\u0438\u0442\u0430 \u0432 \u0434\u0430\u043c\u043f\u0435 \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0442\u0435 \u0436\u0435 \u0441\u0430\u043c\u044b\u0435 4 \u0431\u0438\u0442\u0430 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 16-\u0431\u0438\u0442\u043d\u043e\u0439 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0435 32-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430.<\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u2014 \u00ab\u043e\u0442\u0440\u0435\u0436\u0435\u043c\u00bb \u0441\u0442\u0430\u0440\u0448\u0438\u0435 4 \u0431\u0438\u0442\u0430 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u043e\u043b\u0443\u0431\u043b\u043e\u043a\u0435, \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a\u0438\u0435 \u043f\u0430\u0440\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0441\u044f:<\/p>\n<pre><code class=\"python\">&gt;&gt;&gt; ints=[int.from_bytes(w, 'big') for w in words] &gt;&gt;&gt; [hex(i) for i in ints][:3] ['0x820ee13f', '0xe2030133', '0xe2030133'] &gt;&gt;&gt; scrambled=[((i &amp; 0xf000f000) &gt;&gt; 12, (i &amp; 0x0f000f00) &gt;&gt; 8, (i &amp; 0x00f000f0) &gt;&gt; 4, (i &amp; 0x000f000f)) for i in ints] &gt;&gt;&gt; scrambled=[tuple(((i &gt;&gt; 16) &lt;&lt; 4) | (i &amp; 15) for i in q) for q in scrambled] &gt;&gt;&gt; scrambled[:3] [(142, 33, 3, 239), (224, 33, 3, 51), (224, 33, 3, 51)] &gt;&gt;&gt; [tuple(hex(i) for i in q) for q in scrambled][:3] [('0x8e', '0x21', '0x3', '0xef'), ('0xe0', '0x21', '0x3', '0x33'), ('0xe0', '0x21', '0x3', '0x33')] &gt;&gt;&gt; [b''.join(bytes([i]) for i in q) for q in scrambled][:3] [b'\\x8e!\\x03\\xef', b'\\xe0!\\x033', b'\\xe0!\\x033'] &gt;&gt;&gt; decode=dict(zip((b''.join(bytes([i]) for i in q).hex() for q in scrambled), (r.hex() for r in reference))) &gt;&gt;&gt; sorted(decode.items()) [('025efd97', 'ffffd087'), ('02a25bdb', 'f602dffe'), ('053eedf0', '50ff710f'), ...] &gt;&gt;&gt; decode=dict(zip((b''.join(bytes([i]) for i in q[1:]).hex() for q in scrambled), (r.hex()[1:4]+r.hex()[5:8] for r in reference))) &gt;&gt;&gt; sorted(decode.items()) [('018d90', '0f63ff'), ('020388', '200e06'), ('050309', 'c03000'), ...] <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u043e\u0434\u0431\u043b\u043e\u043a\u043e\u0432 \u043f\u043e 4 \u0431\u0438\u0442\u0430 \u0432 \u043a\u043b\u044e\u0447\u0435 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043f\u0430\u0440\u0430\u043c\u0438 \u043f\u043e\u0434\u0431\u043b\u043e\u043a\u043e\u0432 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u044f\u0432\u043d\u044b\u043c\u0438:<\/p>\n<pre><code class=\"plaintext\">018d90 \u2192 0f63ff 020388 \u2192 200e06    \\ 050309 \u2192 c03000 \\   | \u0431\u043b\u043e\u043a xx0xxx0x \u0432 \u0434\u0430\u043c\u043f\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043b\u043e\u043a\u0443 xx0xxx3x \u0432 \u0444\u0430\u0439\u043b\u0435 05030e \u2192 c0f000  |  | 05036e \u2192 c06000  | \/ 050c16 \u2192 c57042  | 050cef \u2192 c57040  | 05971e \u2192 c88007   &gt; \u0431\u043b\u043e\u043a xCxxx0xx \u0432 \u0434\u0430\u043c\u043f\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043b\u043e\u043a\u0443 x0xxx5xx \u0432 \u0444\u0430\u0439\u043b\u0435 0598ef \u2192 c07050  | 05bfef \u2192 c07010  | 05db59 \u2192 c9000f  | 05ed0e \u2192 cff000 &lt; 060ecc \u2192 264fff  | 065ba7 \u2192 205fff  | 0bed1f \u2192 2ff008 &lt;| 0bfd15 \u2192 2ff086  | 0cedcd \u2192 afdc07 &lt;| 10f2e7 \u2192 e06a7e   &gt; \u0431\u043b\u043e\u043a xxFxxx0x \u0432 \u0434\u0430\u043c\u043f\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043b\u043e\u043a\u0443 xxExxxDx \u0432 \u0444\u0430\u0439\u043b\u0435 118d5a \u2192 9fdfff  | \\ 13032b \u2192 40010a  |  &gt; \u0431\u043b\u043e\u043a xxFxxxFx \u0432 \u0434\u0430\u043c\u043f\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043b\u043e\u043a\u0443 xx8xxxDx \u0432 \u0444\u0430\u0439\u043b\u0435 148d3d \u2192 fff6fc  | \/ 16b333 \u2192 f00e30  | 16ed15 \u2192 fffe06 \/ 1b63e6 \u2192 52e883 1c98ff \u2192 400b57 \\ 1d4d97 \u2192 aff1b7  | \u0431\u043b\u043e\u043a xx00xx57 \u0432 \u0434\u0430\u043c\u043f\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043b\u043e\u043a\u0443 xx9Fxx8F \u0432 \u0444\u0430\u0439\u043b\u0435 1ece0e \u2192 c5f500  | 1f98ff \u2192 800d57 \/ 20032f \u2192 00e400 \\ 200398 \u2192 007401  | 2007fe \u2192 042452  | 2020ef \u2192 057490  | 206284 \u2192 067463   &gt; \u0431\u043b\u043e\u043a x0xxx4xx \u0432 \u0434\u0430\u043c\u043f\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043b\u043e\u043a\u0443 x2xxx0xx \u0432 \u0444\u0430\u0439\u043b\u0435 20891f \u2192 00f488  | 20ab6b \u2192 007498  | \\ 20abef \u2192 007490  | \/ \u0431\u043b\u043e\u043a xx0xxx9x \u0432 \u0434\u0430\u043c\u043f\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043b\u043e\u043a\u0443 xxAxxxBx \u0432 \u0444\u0430\u0439\u043b\u0435 20ed1d \u2192 0ff404  | 20fb6e \u2192 0064c0 \/ 21030e \u2192 00f000 \\ 21032a \u2192 00b008  | 210333 \u2192 000000  | 210349 \u2192 00c008  | 21034b \u2192 003007  | 210359 \u2192 00000f  | 210388 \u2192 000006   &gt; \u0431\u043b\u043e\u043a x00xx00x \u0432 \u0434\u0430\u043c\u043f\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043b\u043e\u043a\u0443 x20xx13x \u0432 \u0444\u0430\u0439\u043b\u0435 21038b \u2192 00300b  | 210398 \u2192 007001  | 2103c6 \u2192 007004  | 2103d2 \u2192 008000  | 2103e1 \u2192 008009  | 2103ef \u2192 007000 \/ ... <\/code><\/pre>\n<p>  <\/p>\n<h2><font color=\"#3AC1EF\">\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0434\u0431\u043b\u043e\u043a\u0430\u043c\u0438<\/font><\/h2>\n<p>  \u0412 \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u0432\u0438\u0434\u043d\u044b \u0442\u0430\u043a\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f:<\/p>\n<ul>\n<li>\u0414\u043b\u044f \u043c\u0430\u0441\u043a\u0438 <code>0F000F00<\/code>:\n<ul>\n<li><code>x0xxx0xx<\/code> \u0432 \u0434\u0430\u043c\u043f\u0435 \u2192 <code>x2xxx1xx<\/code> \u0432 \u0444\u0430\u0439\u043b\u0435<\/li>\n<li><code>x0xxx4xx<\/code> \u0432 \u0434\u0430\u043c\u043f\u0435 \u2192 <code>x2xxx0xx<\/code> \u0432 \u0444\u0430\u0439\u043b\u0435<\/li>\n<li><code>xCxxx0xx<\/code> \u0432 \u0434\u0430\u043c\u043f\u0435 \u2192 <code>x0xxx5xx<\/code> \u0432 \u0444\u0430\u0439\u043b\u0435<\/li>\n<\/ul>\n<\/li>\n<li>\u0414\u043b\u044f \u043c\u0430\u0441\u043a\u0438 <code>00F000F0<\/code>:\n<ul>\n<li><code>xx0xxx0x<\/code> \u0432 \u0434\u0430\u043c\u043f\u0435 \u2192 <code>xx0xxx3x<\/code> \u0432 \u0444\u0430\u0439\u043b\u0435<\/li>\n<li><code>xx0xxx5x<\/code> \u0432 \u0434\u0430\u043c\u043f\u0435 \u2192 <code>xx9xxx8x<\/code> \u0432 \u0444\u0430\u0439\u043b\u0435<\/li>\n<li><code>xx0xxx9x<\/code> \u0432 \u0434\u0430\u043c\u043f\u0435 \u2192 <code>xxAxxxBx<\/code> \u0432 \u0444\u0430\u0439\u043b\u0435<\/li>\n<li><code>xxFxxx0x<\/code> \u0432 \u0434\u0430\u043c\u043f\u0435 \u2192 <code>xxExxxDx<\/code> \u0432 \u0444\u0430\u0439\u043b\u0435<\/li>\n<li><code>xxFxxxFx<\/code> \u0432 \u0434\u0430\u043c\u043f\u0435 \u2192 <code>xx8xxxDx<\/code> \u0432 \u0444\u0430\u0439\u043b\u0435<\/li>\n<\/ul>\n<\/li>\n<li>\u0414\u043b\u044f \u043c\u0430\u0441\u043a\u0438 <code>000F000F<\/code>:\n<ul>\n<li><code>xxx0xxx7<\/code> \u0432 \u0434\u0430\u043c\u043f\u0435 \u2192 <code>xxxFxxxF<\/code> \u0432 \u0444\u0430\u0439\u043b\u0435<\/li>\n<li><code>xxx7xxx0<\/code> \u0432 \u0434\u0430\u043c\u043f\u0435 \u2192 <code>xxxExxxF<\/code> \u0432 \u0444\u0430\u0439\u043b\u0435<\/li>\n<li><code>xxx7xxx1<\/code> \u0432 \u0434\u0430\u043c\u043f\u0435 \u2192 <code>xxx9xxx8<\/code> \u0432 \u0444\u0430\u0439\u043b\u0435<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 32-\u0431\u0438\u0442\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u0432 \u0434\u0430\u043c\u043f\u0435 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0435 \u0432\u043e\u0441\u044c\u043c\u0438\u0431\u0438\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0438 \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043d\u0435\u043a\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u0430\u0441\u043a\u0438 \u0441\u0432\u043e\u0435\u0439. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u044d\u0442\u0438\u0445 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c, \u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438\u0445 \u0432\u0441\u0435:<\/p>\n<pre><code class=\"python\">&gt;&gt;&gt; ref_ints=[int.from_bytes(w, 'big') for w in reference] &gt;&gt;&gt; ref_scrambled=[((i &amp; 0xf000f000) &gt;&gt; 12, (i &amp; 0x0f000f00) &gt;&gt; 8, (i &amp; 0x00f000f0) &gt;&gt; 4, (i &amp; 0x000f000f)) for i in ref_ints] &gt;&gt;&gt; ref_scrambled=[tuple(((i &gt;&gt; 16) &lt;&lt; 4) | (i &amp; 15) for i in q) for q in ref_scrambled] &gt;&gt;&gt; decode=dict(zip((b''.join(bytes([i]) for i in q).hex() for q in scrambled), (b''.join(bytes([i]) for i in q).hex() for q in ref_scrambled))) &gt;&gt;&gt; sorted(decode.items()) [('025efd97', 'fdf0f8f7'), ('02a25bdb', 'fd6f0f2e'), ('053eedf0', '5701f0ff'), ...] &gt;&gt;&gt; decode=[dict(zip((bytes([q[byte]]).hex() for q in scrambled), (bytes([q[byte]]).hex() for q in ref_scrambled))) for byte in range(4)] &gt;&gt;&gt; decode [{'8e': '88', 'e0': '00', 'cf': '80', 'e1': 'e6', '1f': '20', 'c3': 'e2', ...}, {'03': '00', '5b': '0f', '98': '05', 'ed': 'f0', 'ce': '50', 'd6': '51', ...}, {'21': '00', '9a': 'a0', 'e0': '0a', '5e': 'f0', '5d': 'b2', 'c0': '08', ...}, {'ef': '70', '33': '00', '98': '71', '90': '6f', '01': '08', '0e': 'f0', ...}] &gt;&gt;&gt; decode=[dict(zip((q[byte] for q in scrambled), (q[byte] for q in ref_scrambled))) for byte in range(4)] &gt;&gt;&gt; decode [{142: 136, 224: 0, 207: 128, 225: 230, 31: 32, 195: 226, 62: 244, 200: 235, ...}, {3: 0, 91: 15, 152: 5, 237: 240, 206: 80, 214: 81, 113: 16, 185: 2, 179: 3, ...}, {33: 0, 154: 160, 224: 10, 94: 240, 93: 178, 192: 8, 135: 2, 62: 1, 120: 26, ...}, {239: 112, 51: 0, 152: 113, 144: 111, 1: 8, 14: 240, 249: 21, 110: 96, 241: 47, ...}] <\/code><\/pre>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0433\u043e\u0442\u043e\u0432\u044b, \u043a\u043e\u0434 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439:<\/p>\n<pre><code class=\"python\">&gt;&gt;&gt; def _decode(x): ...   scrambled = ((x &amp; 0xf000f000) &gt;&gt; 12, (x &amp; 0x0f000f00) &gt;&gt; 8, (x &amp; 0x00f000f0) &gt;&gt; 4, (x &amp; 0x000f000f)) ...   decoded = tuple(decode[i][((v &gt;&gt; 16) &lt;&lt; 4) | (v &amp; 15)] for i, v in enumerate(scrambled)) ...   unscrambled = tuple(((i &gt;&gt; 4) &lt;&lt; 16) | (i &amp; 15) for i in decoded) ...   return (unscrambled[0] &lt;&lt; 12) | (unscrambled[1] &lt;&lt; 8) | (unscrambled[2] &lt;&lt; 4) | (unscrambled[3]) ... &gt;&gt;&gt; hex(_decode(0x00beb5ff)) '0x4c07a010' &gt;&gt;&gt; hex(_decode(0x12aed1bf)) '0x40073090' <\/code><\/pre>\n<p>  <\/p>\n<h2><font color=\"#3AC1EF\">\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438<\/font><\/h2>\n<p>  \u0412 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0431\u044b\u043b \u043f\u044f\u0442\u0438\u0431\u0430\u0439\u0442\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a <code>5A56001000<\/code>. \u041f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430 \u0431\u0430\u0439\u0442\u0430 \u2014 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430 <code>'ZV'<\/code> \u2014 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <a href=\"https:\/\/github.com\/ning\/compress\/wiki\/LZFFormat\">\u0444\u043e\u0440\u043c\u0430\u0442 LZF<\/a>; \u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u043c\u0435\u0442\u043e\u0434 \u0441\u0436\u0430\u0442\u0438\u044f (<code>0x00<\/code> \u2014 \u0431\u0435\u0437 \u0441\u0436\u0430\u0442\u0438\u044f) \u0438 \u0434\u043b\u0438\u043d\u0430 (<code>0x1000<\/code> \u0431\u0430\u0439\u0442).<\/p>\n<p>  \u0425\u043e\u0437\u044f\u0438\u043d \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044f, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0448\u0438\u0439 \u043c\u043d\u0435 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b, \u0447\u0442\u043e \u0432 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430\u0445 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0438 \u0441\u0436\u0430\u0442\u044b\u0435 LZF \u0434\u0430\u043d\u043d\u044b\u0435. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f LZF \u043e\u0442\u043a\u0440\u044b\u0442\u0430 \u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430, \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043c\u043e\u0438\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u0435\u043c\u0443 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u0442\u044c \u0441\u0432\u043e\u0435 \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u0441\u0442\u0432\u043e \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0448\u0438\u0432\u043e\u043a. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0434 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f \u043f\u0440\u0438 \u043f\u0430\u0434\u0435\u043d\u0438\u0438 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u043d\u0438\u0436\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0441\u0443\u0440\u043e\u0432\u043e\u0439 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u0437\u0438\u043c\u044b.<\/p>\n<p>  <a href=\"http:\/\/ruvds.com\/ru-rub?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=tomi&amp;utm_content=toyotaproshivka#order\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/de\/0y\/l-\/de0yl-6ppopvisr_a80b4yuhjj8.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\/513036\/\"> https:\/\/habr.com\/ru\/company\/ruvds\/blog\/513036\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/513036\/\"><a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/513036\/\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/0n\/of\/y-\/0nofy-hmj4td1hcqegkohx34a6a.jpeg\"><\/div>\n<p><\/a><br \/>  Toyota \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442 \u0441\u0432\u043e\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0432 \u043d\u0435\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435. \u041c\u043e\u0439 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c \u044d\u0442\u043e\u0439 \u043c\u0430\u0440\u043a\u0438, \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043c\u043d\u0435 \u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a:<\/p>\n<p>  <code>CALIBRATION\u00eaXi \u00ba <br \/>  attach.att<br \/>  \u00d3\u00cf[Format]<br \/>  Version=4<\/p>\n<p>  [Vehicle]<br \/>  Number=0<br \/>  DateOfIssue=2019-08-26<br \/>  VehicleType=GUN1**<br \/>  EngineType=1GD-FTV,2GD-FTV<br \/>  VehicleName=IMV<br \/>  ModelYear=15-<br \/>  ContactType=CAN<br \/>  KindOfECU=0<br \/>  NumberOfCalibration=1<\/p>\n<p>  [CPU01]<br \/>  CPUImageName=3F0S7300.xxz<br \/>  FlashCodeName=<br \/>  NewCID=3F0S7300<br \/>  LocationID=0002000100070720<br \/>  CPUType=87<br \/>  NumberOfTargets=3<br \/>  01_TargetCalibration=3F0S7200<br \/>  01_TargetData=3531464734383B3A<br \/>  02_TargetCalibration=3F0S7100<br \/>  02_TargetData=3747354537494A39<br \/>  03_TargetCalibration=3F0S7000<br \/>  03_TargetData=3732463737463B4A<\/p>\n<p>  3F0S7300forIMV.txt \u00b8Ni\u00b6m5A56001000820EE13FE2030133E20301<br \/>  33E2030133C20EF13FE2030133E20301<br \/>  33E2030133E2030133E2030133E20301<br \/>  33E2030133C20EF13FE2030133E20301<br \/>  33E2030133C20EF13FE2030133E20301<br \/>  33E2030133C20EF13FE2030133E20301<br \/>  33E2030133E2030133E2030133E20301<br \/>  33E2030133C20EF13FE2030133E20301<br \/>  33E2030133E20911381959FAB0EE9000<br \/>  81C9E03ADE35CEEEEFC5CF8DE9AC0910<br \/>  38C2E031DE35CEEEEFC8CF87E95C0920<br \/>  ...<\/code><br \/>  \u0414\u0430\u043b\u044c\u0448\u0435 \u0438\u0434\u0443\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e 32 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u044b.<\/p>\n<p>  \u0425\u043e\u0437\u044f\u0438\u043d\u0443 \u0438 \u043f\u0440\u043e\u0447\u0438\u043c \u0443\u043c\u0435\u043b\u044c\u0446\u0430\u043c \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u0435\u0440\u0435\u0434 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043c \u0432\u043d\u0443\u0442\u0440\u0438: \u0437\u0430\u0441\u0443\u043d\u0443\u0442\u044c \u0435\u0435 \u0432 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0430 \u0434\u0435\u043b\u0430\u0435\u0442.<\/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-307754","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/307754","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=307754"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/307754\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=307754"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=307754"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=307754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}