{"id":489201,"date":"2026-07-30T14:17:22","date_gmt":"2026-07-30T14:17:22","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=489201"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=489201","title":{"rendered":"\u0420\u0435\u0432\u0435\u0440\u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0438\u0437 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 ARM-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/h2>\n<p>\u0415\u0441\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0447\u0438\u043f\u0430\u043c\u0438 ss02-1, \u0443\u043c\u0435\u0435\u0442 \u0432 \u043d\u0438\u0445 \u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u0447\u0438\u0442\u0430\u0442\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u0441\u0435\u0431\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0430\u0440\u043e\u043b\u0435\u0439 \u043d\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0437\u0430\u043f\u0438\u0441\u044c, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u043e\u0442 \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<p>\u0427\u0442\u043e \u0438\u043c\u0435\u0435\u043c &#8212; \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0447\u0438\u043f\u0430, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u0430\u0440\u043e\u043b\u0438. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e xerox wc 4250, \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0443 \u043c\u0435\u043d\u044f \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 15.003.70.000.<\/p>\n<h2>\u0412\u044b\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/h2>\n<ul>\n<li>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u043c\u0435\u0441\u0442\u0435 Ida. \u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043a\u043e\u0434\u0430, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u044e\u0442, \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u0440\u043a\u0430\u0441 \u0431\u0443\u0434\u0443\u0449\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<\/li>\n<li>\n<p>TRACE32 Arm Debugger \u043e\u0442 lauterbach. \u041e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0443 \u043c\u0435\u043d\u044f \u0441\u0442\u0430\u0440\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f, \u0432 about \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e Release Jun 2011. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \u043d\u043e \u0438 \u044d\u0442\u043e\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0437\u0430\u0434\u0430\u0447\u0435\u0439. \u0412 \u043d\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0440\u0435\u0434\u0443, \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u0438\u043f \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e \u0441\u0432\u0435\u0440\u044f\u044f\u0441\u044c \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u043a\u043e\u0434\u043e\u043c, \u0438\u0441\u043a\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>Python &#8212; \u0442\u0443\u0442 \u043f\u0438\u0448\u0435\u043c \u043a\u043e\u0434.<\/p>\n<\/li>\n<\/ul>\n<h2>\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434<\/h2>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u0438\u0437 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u044f\u0434\u0440\u043e, \u043e\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u044b \u201c$ZIP\u201d, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 0x78 0x9C &#8212; zip \u0430\u0440\u0445\u0438\u0432. \u041f\u0438\u0448\u0435\u043c \u043a\u043e\u0434:<\/p>\n<pre><code class=\"python\">import zlibdef read_u32(tab, addr):    res = tab[addr]    res = res &lt;&lt; 8 | tab[addr+1]    res = res &lt;&lt; 8 | tab[addr+2]    res = res &lt;&lt; 8 | tab[addr+3]    return reswith open(\"WC4250_15.003.70.000.hd\", 'rb') as f:    data = f.read()pos = 0while True:    pos = data.find(b\"$ZIP\", pos)    if pos == -1:        break    filename_bytes = data[pos + 4:pos + 8]    filename_hex = filename_bytes.hex().upper()    block_size = read_u32(data,8)     block_start = pos + 12    compressed_data = data[block_start:block_start + block_size]    if compressed_data[:2] == b'\\x78\\x9C':        filename = f\"{filename_hex}.bin\"        decompressed_data = zlib.decompress(compressed_data)        with open(filename, 'wb') as f:            f.write(decompressed_data)        pos += 12 + block_size    else:        pos += 1<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0413\u0440\u0443\u0437\u0438\u043c \u0432 ida, \u0438\u0449\u0435\u043c \u043d\u0443\u0436\u043d\u0443\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043a\u0443. \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u044e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438, \u0442.\u043a. \u0437\u0430\u0434\u0430\u0447\u043a\u0430 \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435, \u043d\u0430 \u043d\u0435\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.<\/p>\n<p>\u041f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f sub_203D548. \u0421\u0443\u0434\u044f \u043f\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u043c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c INSTALL_TONER, CHIPv1.0\u2026Invalid, INVALID_TONER \u0442\u043e \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e.<\/p>\n<details class=\"spoiler\">\n<summary>\u041b\u0438\u0441\u0442\u0438\u043d\u0433 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sub_203D548 \u043a\u0430\u043a \u0435\u0441\u0442\u044c<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>ROM:0203D548 sub_203D548                             ; CODE XREF: sub_1D848C4+34pROM:0203D548                                         ; sub_1D84CA8+4pROM:0203D548ROM:0203D548 var_64          = -0x64ROM:0203D548 var_5C          = -0x5CROM:0203D548 var_54          = -0x54ROM:0203D548 var_48          = -0x48ROM:0203D548 var_40          = -0x40ROM:0203D548 var_30          = -0x30ROM:0203D548 var_1C          = -0x1CROM:0203D548 var_16          = -0x16ROM:0203D548 var_15          = -0x15ROM:0203D548 var_14          = -0x14ROM:0203D548 var_E           = -0xEROM:0203D548 var_D           = -0xDROM:0203D548ROM:0203D548                 STMFD   SP!, {R4,R5,LR}ROM:0203D54C                 SUB     SP, SP, #0x60ROM:0203D550                 ADD     R0, SP, #0x50ROM:0203D554                 MOV     R1, #0ROM:0203D558                 MOV     R2, #0ROM:0203D55C                 MOV     R3, #0ROM:0203D560                 MOV     R4, #0ROM:0203D564                 STMIA   R0, {R1-R4} ROM:0203D568                 ADD     R0, SP, #0x2CROM:0203D56C                 MOV     R1, #0ROM:0203D570                 MOV     R2, #0ROM:0203D574                 MOV     R4, #0ROM:0203D578                 MOV     R3, #0ROM:0203D57C                 STMIA   R0, {R1-R4}ROM:0203D580                 ADD     R0, SP, #0x24ROM:0203D584                 MOV     R1, #0ROM:0203D588                 MOV     R2, #0ROM:0203D58C                 STMIA   R0, {R1,R2}ROM:0203D590                 LDR     R4, =0x28A7708ROM:0203D594                 LDRB    R0, [R4]ROM:0203D598                 MOV     R1, R0,LSL#4ROM:0203D59C                 LDR     R0, =dword_224A6B0ROM:0203D5A0                 STRB    R1, [R0]ROM:0203D5A4                 BL      sub_203D4A4ROM:0203D5A8                 CMP     R0, #1ROM:0203D5AC                 BNE     loc_203D5C8ROM:0203D5B0                 LDRB    R1, [R4]ROM:0203D5B4                 ADR     R0, aInstall_tonerD ; \"\\r\\n INSTALL_TONER [%d] \"ROM:0203D5B8                 BL      sub_1FF2738ROM:0203D5BC                 MOV     R0, #1ROM:0203D5C0                 ADD     SP, SP, #0x60ROM:0203D5C4                 LDMFD   SP!, {R4,R5,PC}ROM:0203D5C8 ; ---------------------------------------------------------------------------ROM:0203D5C8ROM:0203D5C8 loc_203D5C8                             ; CODE XREF: sub_203D548+64jROM:0203D5C8                 ADD     R1, SP, #0x50ROM:0203D5CC                 MOV     R2, #8ROM:0203D5D0                 MOV     R0, #0x10ROM:0203D5D4                 BL      sub_1D849ECROM:0203D5D8                 LDRB    R0, [SP,#0x56]ROM:0203D5DC                 CMP     R0, #0x90ROM:0203D5E0                 LDREQB  R0, [SP,#0x57]ROM:0203D5E4                 CMPEQ   R0, #0x1BROM:0203D5E8                 BEQ     loc_203D5F8ROM:0203D5EC                 LDRB    R1, [R4]ROM:0203D5F0                 ADR     R0, aSchipv1_0__inv ; \"\\r\\n sCHIPv1.0..Invalid [%d] \"ROM:0203D5F4                 BL      sub_1FF2738ROM:0203D5F8ROM:0203D5F8 loc_203D5F8                             ; CODE XREF: sub_203D548+A0jROM:0203D5F8                 ADD     R0, SP, #0x58ROM:0203D5FC                 ADR     R1, aSecprt     ROM:0203D600                 MOV     R2, #6ROM:0203D604                 BL      memcpy          ROM:0203D608                 MOV     R0, #0ROM:0203D60CROM:0203D60C loc_203D60C                             ; CODE XREF: sub_203D548+F8jROM:0203D60C                 ADD     R1, SP, #0x50ROM:0203D610                 LDRB    R1, [R1,R0]ROM:0203D614                 LDRB    R2, [SP,#0x5E]ROM:0203D618                 EOR     R1, R2, R1ROM:0203D61C                 STRB    R1, [SP,#0x5E]ROM:0203D620                 ADD     R1, SP, #0x50ROM:0203D624                 LDRB    R1, [R1,R0,LSL#1]ROM:0203D628                 LDRB    R2, [SP,#0x5F]ROM:0203D62C                 ADD     R0, R0, #1ROM:0203D630                 AND     R0, R0, #0xFFROM:0203D634                 EOR     R1, R2, R1ROM:0203D638                 STRB    R1, [SP,#0x5F]ROM:0203D63C                 CMP     R0, #8ROM:0203D640                 BLT     loc_203D60C     ROM:0203D644                 ADD     R1, SP, #0x3C   ROM:0203D648                 ADD     R0, SP, #0x50   ROM:0203D64C                 MOV     R2, #0x10ROM:0203D650                 BL      sub_1DBE83C                                   ROM:0203D654                 ADD     R2, SP, #0x10ROM:0203D658                 ADD     R0, SP, #0x3CROM:0203D65C                 MOV     R1, #0x10ROM:0203D660                 BL      SHA_1           ROM:0203D660                                         ROM:0203D664                 ADD     R1, SP, #0x18ROM:0203D668                 ADD     R0, SP, #0x24ROM:0203D66C                 MOV     R2, #8ROM:0203D670                 BL      memcpy         ROM:0203D674                 MOV     R1, SPROM:0203D678                 ADD     R0, SP, #0x10   ROM:0203D67C                 MOV     R2, #0x10ROM:0203D680                 BL      sub_1DBE83C     ROM:0203D680                                         ROM:0203D684                 ADD     R1, SP, #8ROM:0203D688                 ADD     R0, SP, #0x2CROM:0203D68C                 MOV     R2, #8ROM:0203D690                 BL      memcpyROM:0203D694                 ADD     R1, SP, #0x2CROM:0203D698                 LDMIA   R1, {R2,R3,R12,LR}ROM:0203D69C                 ADD     R0, SP, #0x3CROM:0203D6A0                 STMIA   R0, {R2,R3,R12,LR}ROM:0203D6A4                 MOV     R3, #1ROM:0203D6A8                 MOV     R2, R5ROM:0203D6AC                 MOV     R0, #1ROM:0203D6B0                 ADD     R1, SP, #0x3CROM:0203D6B4                 BL      sub_203D360ROM:0203D6B8                 MOV     R5, #2ROM:0203D6BC                 CMP     R0, #0ROM:0203D6C0                 BEQ     loc_203D6E4ROM:0203D6C4                 ADR     R0, aCrumCoreFileFa ; \"\\r\\n[Crum Core file] Fail cm_ActiveSecuri\"...ROM:0203D6C8                 BL      sub_1FF2738ROM:0203D6CC                 LDRB    R1, [R4]ROM:0203D6D0                 ADR     R0, aInvalid_tonerD ; \"\\r\\n INVALID_TONER [%d] \"ROM:0203D6D4                 BL      sub_1FF2738ROM:0203D6D8                 MOV     R0, R5ROM:0203D6DC                 ADD     SP, SP, #0x60ROM:0203D6E0                 LDMFD   SP!, {R4,R5,PC}ROM:0203D6E4 ; ---------------------------------------------------------------------------ROM:0203D6E4ROM:0203D6E4 loc_203D6E4                             ; CODE XREF: sub_203D548+178jROM:0203D6E4                 ADD     R0, SP, #0x6C+var_48ROM:0203D6E8                 MOV     R2, #0ROM:0203D6EC                 MOV     R1, #1ROM:0203D6F0                 BL      sub_203D148ROM:0203D6F4                 CMP     R0, #0ROM:0203D6F8                 BEQ     loc_203D71CROM:0203D6FC                 ADR     R0, aCrumCoreFile_0 ; \"\\r\\n[Crum Core file] Fail cm_VerifyPasswo\"...ROM:0203D700                 BL      sub_1FF2738ROM:0203D704                 LDRB    R1, [R4]ROM:0203D708                 ADR     R0, aInvalid_tonerD ; \"\\r\\n INVALID_TONER [%d] \"ROM:0203D70C                 BL      sub_1FF2738ROM:0203D710                 MOV     R0, R5ROM:0203D714                 ADD     SP, SP, #0x60ROM:0203D718                 LDMFD   SP!, {R4,R5,PC}ROM:0203D71C ; ---------------------------------------------------------------------------ROM:0203D71CROM:0203D71C loc_203D71C                             ; CODE XREF: sub_203D548+1B0jROM:0203D71C                 MOV     R1, #1ROM:0203D720                 BL      nullsub_154ROM:0203D724                 MOV     R0, #0ROM:0203D728                 ADD     SP, SP, #0x60ROM:0203D72C                 LDMFD   SP!, {R4,R5,PC}ROM:0203D72C ; End of function sub_203D548ROM:0203D72CROM:0203D72C ; ---------------------------------------------------------------------------ROM:0203D730 off_203D730     DCD dword_224A6B0       ; DATA XREF: sub_203D548+54rROM:0203D730                                         ; sub_203D7E0+9Cr ...ROM:0203D734 aInstall_tonerD DCB 0xD,0xA             ; DATA XREF: sub_203D548+6CoROM:0203D734                 DCB \" INSTALL_TONER [%d] \",0ROM:0203D74B                 DCB 0ROM:0203D74C aSchipv1_0__inv DCB 0xD,0xA             ; DATA XREF: sub_203D548+A8oROM:0203D74C                                         ; ROM:0203D8BCo ...ROM:0203D74C                 DCB \" sCHIPv1.0..Invalid [%d] \",0ROM:0203D768 aSecprt         DCB \"SECPRT\",0          ; DATA XREF: sub_203D548+B4oROM:0203D768                                         ; ROM:0203D8C8oROM:0203D76F                 DCB 0ROM:0203D770 aCrumCoreFileFa DCB 0xD,0xA             ; DATA XREF: sub_203D548+17CoROM:0203D770                 DCB \"[Crum Core file] Fail cm_ActiveSecurity\",0ROM:0203D79A                 DCW 0ROM:0203D79C aInvalid_tonerD DCB 0xD,0xA             ; DATA XREF: sub_203D548+188oROM:0203D79C                                         ; sub_203D548+1C0oROM:0203D79C                 DCB \" INVALID_TONER [%d] \",0ROM:0203D7B3                 DCB 0ROM:0203D7B4 aCrumCoreFile_0 DCB 0xD,0xA             ; DATA XREF: sub_203D548+1B4oROM:0203D7B4                 DCB \"[Crum Core file] Fail cm_VerifyPassword\",0ROM:0203D7DE                 DCW 0ROM:0203D7E0<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0430\u043a\u043e\u0439:<\/p>\n<ul>\n<li>\n<p>\u0412\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u043c\u0435\u0441\u0442\u043e \u0432 \u0441\u0442\u0435\u043a\u0435, \u0447\u0438\u0441\u0442\u0438\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0427\u0438\u0442\u0430\u0435\u043c \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440, \u043a\u043b\u0430\u0434\u0435\u043c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 0x50<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u0430\u0434\u0435\u043c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 0x50 \u0441\u0442\u0440\u043e\u043a\u0443 \u201cSECPRT\u201d<\/p>\n<\/li>\n<li>\n<p>0203D60C \u2013 0203D640 \u0447\u0442\u043e \u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0438\u0437 sn \u0438 \u043a\u043b\u0430\u0434\u0435\u0442\u0441\u044f \u0432 5e-5f<\/p>\n<\/li>\n<li>\n<p>sub_1DBE83C     ; \u0427\u0442\u043e-\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442 (\u043a\u0443\u0434\u0430=3c, \u043e\u0442\u043a\u0443\u0434\u0430=50, \u0432\u0441\u0435\u0433\u043e = x0x10)<\/p>\n<\/li>\n<li>\n<p>sub_1BA543C     ; \u0427\u0442\u043e-\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442 (\u043a\u0443\u0434\u0430=10, \u043e\u0442\u043a\u0443\u0434\u0430=3c, \u0432\u0441\u0435\u0433\u043e = x0x10)<\/p>\n<\/li>\n<li>\n<p>sub_1DBE83C     ; \u0427\u0442\u043e-\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442 (\u043a\u0443\u0434\u0430=0x0, \u043e\u0442\u043a\u0443\u0434\u0430=0x10, \u0432\u0441\u0435\u0433\u043e = x0x10)<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u043e\u043c \u043f\u0440\u043e\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u043b\u0438\u0441\u0442\u0438\u043d\u0433 \u043a\u0430\u043a \u044f \u044d\u0442\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u044e.<\/p>\n<details class=\"spoiler\">\n<summary>\u041b\u0438\u0441\u0442\u0438\u043d\u0433 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sub_203D548 \u0441 \u0440\u0430\u0437\u0431\u043e\u0440\u043e\u043c<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>ROM:0203D548 ; =============== S U B R O U T I N E =======================================ROM:0203D548ROM:0203D548ROM:0203D548 sub_203D548                             ; CODE XREF: sub_1D848C4+34pROM:0203D548                                         ; sub_1D84CA8+4pROM:0203D548ROM:0203D548 var_64          = -0x64ROM:0203D548 var_5C          = -0x5CROM:0203D548 var_54          = -0x54ROM:0203D548 var_48          = -0x48ROM:0203D548 var_40          = -0x40ROM:0203D548 var_30          = -0x30ROM:0203D548 var_1C          = -0x1CROM:0203D548 var_16          = -0x16ROM:0203D548 var_15          = -0x15ROM:0203D548 var_14          = -0x14ROM:0203D548 var_E           = -0xEROM:0203D548 var_D           = -0xDROM:0203D548ROM:0203D548                 STMFD   SP!, {R4,R5,LR}ROM:0203D54C                 SUB     SP, SP, #0x60   ; \u0412\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u0431\u043b\u043e\u043a \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 0x60ROM:0203D550                 ADD     R0, SP, #0x50ROM:0203D554                 MOV     R1, #0ROM:0203D558                 MOV     R2, #0ROM:0203D55C                 MOV     R3, #0ROM:0203D560                 MOV     R4, #0ROM:0203D564                 STMIA   R0, {R1-R4}     ; \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c \u043e\u0431\u043b\u0430\u0441\u0442\u044c [0x50-0x60]ROM:0203D564                                         ;ROM:0203D568                 ADD     R0, SP, #0x2CROM:0203D56C                 MOV     R1, #0ROM:0203D570                 MOV     R2, #0ROM:0203D574                 MOV     R4, #0ROM:0203D578                 MOV     R3, #0ROM:0203D57C                 STMIA   R0, {R1-R4}     ; \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c \u043e\u0431\u043b\u0430\u0441\u0442\u044c [0x2\u0441-0x3\u0441]ROM:0203D57C                                         ;ROM:0203D580                 ADD     R0, SP, #0x24ROM:0203D584                 MOV     R1, #0ROM:0203D588                 MOV     R2, #0ROM:0203D58C                 STMIA   R0, {R1,R2}     ; \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c \u043e\u0431\u043b\u0430\u0441\u0442\u044c [0x24-(0x24+8)]ROM:0203D58C                                         ;ROM:0203D590                 LDR     R4, =0x28A7708ROM:0203D594                 LDRB    R0, [R4]ROM:0203D598                 MOV     R1, R0,LSL#4ROM:0203D59C                 LDR     R0, =dword_224A6B0ROM:0203D5A0                 STRB    R1, [R0]ROM:0203D5A4                 BL      sub_203D4A4     ; \u041a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0447\u0438\u043f\u0430 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435ROM:0203D5A8                 CMP     R0, #1ROM:0203D5AC                 BNE     loc_203D5C8ROM:0203D5B0                 LDRB    R1, [R4]ROM:0203D5B4                 ADR     R0, aInstall_tonerD ; \"\\r\\n INSTALL_TONER [%d] \"ROM:0203D5B8                 BL      printROM:0203D5BC                 MOV     R0, #1ROM:0203D5C0                 ADD     SP, SP, #0x60ROM:0203D5C4                 LDMFD   SP!, {R4,R5,PC}ROM:0203D5C8 ; ---------------------------------------------------------------------------ROM:0203D5C8ROM:0203D5C8 loc_203D5C8                             ; CODE XREF: sub_203D548+64jROM:0203D5C8                 ADD     R1, SP, #0x50   ; \u041c\u044b \u0442\u0443\u0442 \u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043eROM:0203D5CC                 MOV     R2, #8ROM:0203D5D0                 MOV     R0, #0x10ROM:0203D5D4                 BL      sub_1D849EC     ; \u0414\u0443\u043c\u0430\u044e \u0442\u0443\u0442 \u0447\u0442\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430, \u043a\u043b\u0430\u0434\u0435\u0442\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 0x50ROM:0203D5D4                                         ; \u0442.\u043a. \u0434\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u0445\u0432\u043e\u0441\u0442ROM:0203D5D4                                         ;ROM:0203D5D8                 LDRB    R0, [SP,#0x56]ROM:0203D5DC                 CMP     R0, #0x90ROM:0203D5E0                 LDREQB  R0, [SP,#0x57]ROM:0203D5E4                 CMPEQ   R0, #0x1BROM:0203D5E8                 BEQ     loc_203D5F8     ; \u0435\u0441\u043b\u0438 2 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 90 1B  - \u0447\u0438\u043f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439ROM:0203D5EC                 LDRB    R1, [R4]ROM:0203D5F0                 ADR     R0, aSchipv1_0__inv ; \"\\r\\n sCHIPv1.0..Invalid [%d] \"ROM:0203D5F4                 BL      printROM:0203D5F8ROM:0203D5F8 loc_203D5F8                             ; CODE XREF: sub_203D548+A0jROM:0203D5F8                 ADD     R0, SP, #0x58   ; ! \u041e\u0442\u0441\u044e\u0434\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0441 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u043cROM:0203D5FC                 ADR     R1, aSecprt     ; \"SECPRT\"ROM:0203D600                 MOV     R2, #6ROM:0203D604                 BL      memcpy          ; \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c SECPRT \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 0x58ROM:0203D608                 MOV     R0, #0ROM:0203D60CROM:0203D60C loc_203D60C                             ; CODE XREF: sub_203D548+F8jROM:0203D60C                 ADD     R1, SP, #0x50ROM:0203D610                 LDRB    R1, [R1,R0]ROM:0203D614                 LDRB    R2, [SP,#0x5E]ROM:0203D618                 EOR     R1, R2, R1ROM:0203D61C                 STRB    R1, [SP,#0x5E]ROM:0203D620                 ADD     R1, SP, #0x50ROM:0203D624                 LDRB    R1, [R1,R0,LSL#1]ROM:0203D628                 LDRB    R2, [SP,#0x5F]ROM:0203D62C                 ADD     R0, R0, #1ROM:0203D630                 AND     R0, R0, #0xFFROM:0203D634                 EOR     R1, R2, R1ROM:0203D638                 STRB    R1, [SP,#0x5F]ROM:0203D63C                 CMP     R0, #8ROM:0203D640                 BLT     loc_203D60C     ; hash SN \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 0x5e - 0x5fROM:0203D644                 ADD     R1, SP, #0x3C   ; r1 = 3cROM:0203D648                 ADD     R0, SP, #0x50   ; r0 = 50ROM:0203D64C                 MOV     R2, #0x10ROM:0203D650                 BL      sub_1DBE83C     ; \u0427\u0442\u043e-\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442 (\u043a\u0443\u0434\u0430=3c, \u043e\u0442\u043a\u0443\u0434\u0430=50, \u0432\u0441\u0435\u0433\u043e = x0x10)ROM:0203D650                                         ;ROM:0203D654                 ADD     R2, SP, #0x10ROM:0203D658                 ADD     R0, SP, #0x3CROM:0203D65C                 MOV     R1, #0x10ROM:0203D660                 BL      sub_1BA543C     ; \u0427\u0442\u043e-\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442 (\u043a\u0443\u0434\u0430=10, \u043e\u0442\u043a\u0443\u0434\u0430=3c, \u0432\u0441\u0435\u0433\u043e = x0x10)ROM:0203D664                 ADD     R1, SP, #0x18ROM:0203D668                 ADD     R0, SP, #0x24ROM:0203D66C                 MOV     R2, #8ROM:0203D670                 BL      memcpyROM:0203D674                 MOV     R1, SPROM:0203D678                 ADD     R0, SP, #0x10ROM:0203D67C                 MOV     R2, #0x10ROM:0203D680                 BL      sub_1DBE83C     ; \u043e\u043f\u044f\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442 (\u043a\u0443\u0434\u0430=0x0, \u043e\u0442\u043a\u0443\u0434\u0430=0x10, \u0432\u0441\u0435\u0433\u043e = x0x10)ROM:0203D684                 ADD     R1, SP, #8ROM:0203D688                 ADD     R0, SP, #0x2CROM:0203D68C                 MOV     R2, #8ROM:0203D690                 BL      memcpyROM:0203D694                 ADD     R1, SP, #0x2CROM:0203D698                 LDMIA   R1, {R2,R3,R12,LR}ROM:0203D69C                 ADD     R0, SP, #0x3CROM:0203D6A0                 STMIA   R0, {R2,R3,R12,LR}ROM:0203D6A4                 MOV     R3, #1ROM:0203D6A8                 MOV     R2, R5ROM:0203D6AC                 MOV     R0, #1ROM:0203D6B0                 ADD     R1, SP, #0x3C   ; \u0437\u043d\u0430\u0447\u0438\u0442 \u0432 3c auth-passROM:0203D6B0                                         ; \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b\u0438 c 0x8 \u0432 0x2\u0441, c 0x2c \u0432 0x3cROM:0203D6B4                 BL      sub_203D360     ; \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044fROM:0203D6B8                 MOV     R5, #2ROM:0203D6BC                 CMP     R0, #0ROM:0203D6C0                 BEQ     loc_203D6E4ROM:0203D6C4                 ADR     R0, aCrumCoreFileFa ; \"\\r\\n[Crum Core file] Fail cm_ActiveSecuri\"...ROM:0203D6C8                 BL      printROM:0203D6CC                 LDRB    R1, [R4]ROM:0203D6D0                 ADR     R0, aInvalid_tonerD ; \"\\r\\n INVALID_TONER [%d] \"ROM:0203D6D4                 BL      printROM:0203D6D8                 MOV     R0, R5ROM:0203D6DC                 ADD     SP, SP, #0x60ROM:0203D6E0                 LDMFD   SP!, {R4,R5,PC}ROM:0203D6E4 ; ---------------------------------------------------------------------------ROM:0203D6E4ROM:0203D6E4 loc_203D6E4                             ; CODE XREF: sub_203D548+178jROM:0203D6E4                 ADD     R0, SP, #0x24   ; \u0437\u043d\u0430\u0447\u0438\u0442 \u0432 0x24 write-passROM:0203D6E8                 MOV     R2, #0ROM:0203D6EC                 MOV     R1, #1ROM:0203D6F0                 BL      sub_203D148     ; \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438ROM:0203D6F0                                         ;ROM:0203D6F4                 CMP     R0, #0ROM:0203D6F8                 BEQ     loc_203D71CROM:0203D6FC                 ADR     R0, aCrumCoreFile_0 ; \"\\r\\n[Crum Core file] Fail cm_VerifyPasswo\"...ROM:0203D700                 BL      printROM:0203D704                 LDRB    R1, [R4]ROM:0203D708                 ADR     R0, aInvalid_tonerD ; \"\\r\\n INVALID_TONER [%d] \"ROM:0203D70C                 BL      printROM:0203D710                 MOV     R0, R5ROM:0203D714                 ADD     SP, SP, #0x60ROM:0203D718                 LDMFD   SP!, {R4,R5,PC}ROM:0203D71C ; ---------------------------------------------------------------------------ROM:0203D71CROM:0203D71C loc_203D71C                             ; CODE XREF: sub_203D548+1B0jROM:0203D71C                 MOV     R1, #1ROM:0203D720                 BL      nullsub_154ROM:0203D724                 MOV     R0, #0ROM:0203D728                 ADD     SP, SP, #0x60ROM:0203D72C                 LDMFD   SP!, {R4,R5,PC}ROM:0203D72C ; End of function sub_203D548<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0412\u044b\u0445\u043e\u0434\u0438\u0442, \u0447\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u043d\u0443\u0436\u043d\u044b 2 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 1DBE83C \u0438 1BA543C. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 \u043a\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043d\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442, \u0435\u0441\u043b\u0438 \u043f\u043e\u0432\u0435\u0437\u0435\u0442 &#8212; \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 &#8212; \u0431\u0443\u0434\u0435\u043c \u0438\u0445 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c.<\/p>\n<p>\u041f\u0438\u0448\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e:<\/p>\n<pre><code class=\"python\">mem = bytearray(0x60)#serial = input(\"SN:\")serial = \"112233445566901B\"auth, write = generate_passwords(serial)dump(mem, 0, 0x60)def dump(tab,start, ln):    for offset in range(start, start + ln, 16):        chunk = tab[offset:offset + 16]        print(f\"{hex(offset)}: {' '.join(f'{b:02X}' for b in chunk)}\" )def generate_passwords(serial_hex):    global mem    sn_bytes = bytes.fromhex(serial_hex)    if not((sn_bytes[6]==0x90) &amp; (sn_bytes[7]==0x1B)):        print (\"not ss02-1 crum\")        return bytes.fromhex(\"00\"), bytes.fromhex(\"00\")    mem[0x50:0x58] = sn_bytes    mem[0x58:0x5E] = b\"SECPRT\"    mem[0x5E] = 0    mem[0x5F] = 0    for r0 in range(8):        mem[0x5E] = mem[0x5E] ^ mem[0x50 + r0]        mem[0x5F] = mem[0x5F] ^ mem[0x50 + (r0 &lt;&lt; 1)]    sub_1DBE83C (r0 = 0x50, r1 = 0x3c, r2 = 0x10)    sub_1BA543C (r0 = 0x3c, r1, 0x10, r2 = 0x10)    mem [0x24:0x2c] = mem[0x18:0x20]    sub_1DBE83C (r0 = 0x10, r1 = 0x0, r2 = 0x10)    mem[0x2c:0x2c+8] = mem[0x8:0x10]    auth_pass = mem[0x2c:0x2C+8]    write_pass = mem[0x24:0x27]    return auth_pass, write_passdef sub_1DBE83C (r0, r1, r2):    returndef sub_1BA543C (r0, r1, r2)    return<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<pre><code>0x0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000x10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000x20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000x30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000x40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000x50: 11 22 33 44 55 66 90 1B 53 45 43 50 52 54 FC 59<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h2>\u042d\u043c\u0443\u043b\u044f\u0446\u0438\u044f, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430<\/h2>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440. \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0430\u0434\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u0438\u043f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c bigendian, \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c. CPU \\ System Settings\u2026<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/3d\/7f\/84\/3d7f847a4dd452fa2fa44db1ccc3972c.png\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/webt\/3d\/7f\/84\/3d7f847a4dd452fa2fa44db1ccc3972c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/webt\/3d\/7f\/84\/3d7f847a4dd452fa2fa44db1ccc3972c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u043a\u043e\u0448\u043a\u0438: \u043b\u0438\u0441\u0442\u0438\u043d\u0433 (View \/ List Source), \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b (View \/ Registers), \u0434\u0430\u043c\u043f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 0x0 (View \/ Dump\u2026)- \u0442\u0430\u043c \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041a\u043b\u0438\u043a\u0430\u044f \u0432 \u0434\u0430\u043c\u043f\u0435 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0430\u043c 0x50 \u2013 0x58 \u0432\u0432\u043e\u0434\u0438\u043c \u0441\u0432\u043e\u0439 \u0441\u0435\u0440\u0438\u0439\u043d\u0438\u043a.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/5a\/20\/ed\/5a20ed5fcc7121ef52f8399de56f679c.png\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/webt\/5a\/20\/ed\/5a20ed5fcc7121ef52f8399de56f679c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/webt\/5a\/20\/ed\/5a20ed5fcc7121ef52f8399de56f679c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u043e \u0441\u0443\u0442\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0432\u043d\u0438\u0437\u0443 \u043e\u043a\u043d\u0430. \u0415\u0441\u043b\u0438 \u043c\u044b \u043a\u043b\u0438\u043a\u0430\u0435\u043c \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0438\u0448\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443, \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u043a\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u0438\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u043b\u0430\u0441\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0430 &#171;SD:0x50 %LE &#171;. \u041f\u0440\u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 PC &#8212; &#171;R.S PC &#171;, \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u043d\u043e \u043e\u0442 &#171;REGISTER.SET  PC &#171;, \u0442\u0430\u043a\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0442\u043e\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041f\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0435\u0441\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0438, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0435 \u043a\u0430\u043a\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435. \u041c\u043e\u0436\u043d\u043e \u043d\u0430\u0442\u044b\u043a\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0437\u0430\u043f\u043e\u043c\u043d\u0442\u0435 \u0442\u0435 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u044b. \u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432. \u0414\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043c\u043f\u0430 \u043d\u0430\u0442\u044b\u043a\u0438\u0432\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438:<\/p>\n<pre><code>DATA.LOAD.BINARY \"kernel.bin\" 0x1B60000R.S PC 0x203D5D8<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/db\/8b\/37\/db8b37a39b8c7899ba0b86061c8bcc46.png\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/webt\/db\/8b\/37\/db8b37a39b8c7899ba0b86061c8bcc46.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/webt\/db\/8b\/37\/db8b37a39b8c7899ba0b86061c8bcc46.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041c\u044b \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0443\u0442\u0438, 0x203D5D8 \u0432\u044b\u0431\u0440\u0430\u043d \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0430\u0447\u0430\u043b\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0445\u0432\u043e\u0441\u0442\u0430 \u0441\u0435\u0440\u0438\u0439\u043d\u0438\u043a\u0430. F2 &#8212; \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, F3 &#8212; \u043d\u0435 \u0437\u0430\u0445\u043e\u0434\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b. \u041f\u0440\u043e\u0448\u0430\u0433\u0438\u0432\u0430\u0435\u043c \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u043f\u043e F3 \u0434\u043e 0203D644, \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/f4\/61\/57\/f46157b9c55497d8968604d60965f9f2.png\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/webt\/f4\/61\/57\/f46157b9c55497d8968604d60965f9f2.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/webt\/f4\/61\/57\/f46157b9c55497d8968604d60965f9f2.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0445\u0432\u043e\u0441\u0442, FC 59, \u0441\u043e\u0448\u043b\u043e\u0441\u044c, \u0443\u0440\u0430 ! ) \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0448\u0430\u0433\u0430\u0442\u044c \u0434\u043e \u043a\u043e\u043d\u0446\u0430, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u043a \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u0438. \u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u044f \u0431\u044b \u0445\u043e\u0442\u0435\u043b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043d\u0435 \u0440\u0430\u0437 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441 \u043d\u0430\u0447\u0430\u043b\u0430, \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432\u0441\u0451 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c, \u0434\u043e\u0448\u0430\u0433\u0438\u0432\u0430\u0442\u044c \u0434\u043e \u043d\u0443\u0436\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u043d\u0435\u0440\u0435\u0430\u043b\u044c\u043d\u043e. \u0412 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 \u0435\u0441\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 &#8212; batchfile &#8212; \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0433\u0434\u0435 \u043c\u044b \u043f\u0438\u0448\u0435\u043c \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0417\u0430\u043f\u0443\u0441\u043a \u0447\u0435\u0440\u0435\u0437 File \/ Run batchfile\u2026 \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0434\u0430\u0436\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0430, \u0442.\u0435. \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0448\u0430\u0433\u0438 \u043f\u043e f2 (\u043a\u043e\u043c\u0430\u043d\u0434\u0430 STEP), \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 (GO) \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c break &#8212; (BREAK.SET). \u041d\u0430\u043f\u0438\u0448\u0435\u043c \u0442\u0430\u043a\u043e\u0439 \u0444\u0430\u0439\u043b:<\/p>\n<pre><code>b::resetsystem.option.bigendian onsystem.updata.load.binary \"kernel.bin\" 0x1B60000data.set 0x50 %BYTE 0x11data.set 0x51 %BYTE 0x22data.set 0x52 %BYTE 0x33data.set 0x53 %BYTE 0x44data.set 0x54 %BYTE 0x55data.set 0x55 %BYTE 0x66data.set 0x56 %BYTE 0x90data.set 0x57 %BYTE 0x1Bregister.set.pc 0x203D5D8b.s 0x0203D644go<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u0441\u0451, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043e\u043f\u044f\u0442\u044c \u0432 \u0442\u043e\u0439 \u0436\u0435 \u0442\u043e\u0447\u043a\u0435 \u0431\u0435\u0437 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a. \u0415\u0449\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435: \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0435 \u0436\u0434\u0435\u0442 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0434\u043e \u0442\u043e\u0447\u043a\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430. \u0415\u0441\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 go \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0442\u043e \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0433\u043e\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043d\u0443\u0436\u043d\u043e \u0434\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0412 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0437\u0430\u043d\u044f\u0442, \u0432 batch \u0444\u0430\u0439\u043b\u0435 \u043d\u0435\u0442, \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430\u0447\u043d\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435 \u043d\u0435 \u0434\u043e\u0436\u0438\u0434\u0430\u044f\u0441\u044c. \u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0443\u0437\u0443, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 WAIT, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u201cwait 200.ms\u201d. \u041a\u0430\u043a\u0443\u044e \u043f\u0430\u0443\u0437\u0443 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u0448\u0430\u0435\u0442\u0435 \u0441\u0430\u043c\u0438, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0446\u0435\u043d\u0438\u0432 \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0440\u0443\u043a\u0430\u043c\u0438.<\/p>\n<p>\u041f\u0440\u043e\u0431\u0435\u0436\u0438\u043c\u0441\u044f \u043f\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c, \u0432\u044b\u043f\u0438\u0448\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0439:<\/p>\n<pre><code>sub_1DBE83C(11 22 33 44 55 66 90 1B 53 45 43 50 52 54 FC 59) = 78 07 FE 92 F2 4F 15 61 D6 A7 9A CE 85 07 82 65sub_1BA543C(78 07 FE 92 F2 4F 15 61 D6 A7 9A CE 85 07 82 65) = E7 16 A6 FE 0E 4D 16 FC 26 85 1F 08 FD 9C FC 30 2E 2A 66 2Fsub_1DBE83C(E7 16 A6 FE 0E 4D 16 FC 26 85 1F 08 FD 9C FC 30) = 3F AC 9A 28 5C 8E 1D 2D 39 1B 22 CD 6D D7 B5 C4<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0430\u043c\u044b\u043c \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u0445\u043e\u0434\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u0432\u0434\u0440\u0443\u0433 \u043f\u043e\u0432\u0435\u0437\u0435\u0442. \u041f\u0438\u0448\u0435\u043c \u0442\u0435\u0441\u0442:<\/p>\n<pre><code class=\"python\">import hashlibdef test_alg(source, res_ok):    alg = ('md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512',           'blake2b', 'blake2s',           'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512')    for name in alg:        if hashlib.new(name, source).hexdigest() == res_ok.hex():            return name    return Falsetests =((bytes.fromhex(\"11 22 33 44 55 66 90 1B 53 45 43 50 52 54 FC 59\"), bytes.fromhex(\"78 07 FE 92 F2 4F 15 61 D6 A7 9A CE 85 07 82 65\")),(bytes.fromhex(\"78 07 FE 92 F2 4F 15 61 D6 A7 9A CE 85 07 82 65\"), bytes.fromhex(\"E7 16 A6 FE 0E 4D 16 FC 26 85 1F 08 FD 9C FC 30 2E 2A 66 2F\")),(bytes.fromhex(\"E7 16 A6 FE 0E 4D 16 FC 26 85 1F 08 FD 9C FC 30\"), bytes.fromhex(\"3F AC 9A 28 5C 8E 1D 2D 39 1B 22 CD 6D D7 B5 C4\")))for i, tst in enumerate(tests):    print (i,  test_alg (tst[0], tst[1]))<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<pre><code>0 False1 sha12 False<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0411\u0438\u043d\u0433\u043e! sub_1BA543C &#8212; \u044d\u0442\u043e SHA-1, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f &#8212; \u043f\u043e\u0432\u0435\u0437\u043b\u043e ) \u0415\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c sub_1DBE83C. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435 \u0441\u0442\u0440\u0430\u0448\u043d\u043e, \u0432\u0441\u0435\u0433\u043e 2 \u0432\u044b\u0437\u043e\u0432\u0430:<\/p>\n<pre><code>ROM:01DBE83C sub_1DBE83C                                                                   ROM:01DBE83C                 STMFD   SP!, {R4,R5,LR}ROM:01DBE840                 SUB     SP, SP, #0xA0; \u0441\u0432\u043e\u0439 \u0431\u043b\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 0xA0ROM:01DBE844                 MOV     R4, R1ROM:01DBE848                 LDR     R1, =0x2105B04; \u0442\u0443\u0442 \u043b\u0435\u0436\u0430\u0442 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044bROM:01DBE84C                 MOV     R5, R0ROM:01DBE850                 LDMIA   R1, {R1,R3,R12,LR}ROM:01DBE854                 ADD     R0, SP, #0x10ROM:01DBE858                 STMIA   R0, {R1,R3,R12,LR}; \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u0441\u0435\u0431\u0435ROM:01DBE85C                 LDR     R1, =0x2105B14; \u0438 \u0442\u0443\u0442 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044bROM:01DBE860                 MOV     R0, SPROM:01DBE864                 LDMIA   R1, {R1,R3,R12,LR}ROM:01DBE868                 STMIA   R0, {R1,R3,R12,LR}ROM:01DBE86C                 ADD     R1, SP, #0x20ROM:01DBE870                 ADD     R0, SP, #0x10ROM:01DBE874                 BL      sub_1DBC554ROM:01DBE878                 ADD     R2, SP, #0x20   ROM:01DBE87C                 MOV     R1, R4          ROM:01DBE880                 MOV     R0, R5          ROM:01DBE884                 BL      sub_1DBCEF0ROM:01DBE888                 ADD     SP, SP, #0xA0ROM:01DBE88C                 LDMFD   SP!, {R4,R5,PC}ROM:01DBE88C ; End of function sub_1DBE83C<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u0443 sub_1DBC554, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u043b\u0435:<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/5d\/be\/70\/5dbe7037ca6dab2e4497081215ee171e.png\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/webt\/5d\/be\/70\/5dbe7037ca6dab2e4497081215ee171e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/webt\/5d\/be\/70\/5dbe7037ca6dab2e4497081215ee171e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c sub_1DBC554 \u0438 sub_1DBCEF0 \u0438 \u0434\u0435\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e.<\/p>\n<p>\u041f\u043e\u0436\u0430\u043b\u0443\u0439 \u043f\u0440\u0435\u0440\u0432\u0443\u0441\u044c \u043d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u0435, \u0435\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u0442\u043e \u043d\u0430\u043f\u0438\u0448\u0443 2\u044e \u0447\u0430\u0441\u0442\u044c )<\/p>\n<p>p.s. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 http_s:\/\/www.support.xerox.com\/en-us\/content\/121246, \u0435\u0441\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u043e\u0432\u0435\u0435 &#8212; 15.007.01.000, \u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0451 \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f, \u0442.\u043a. \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c \u0430\u0434\u0440\u0435\u0441\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u044f\u0434\u0440\u0430, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0441\u0434\u0432\u0438\u043d\u0443\u043b\u0438\u0441\u044c\u2026 \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0439\u0442\u0438 \u044d\u0442\u043e\u0442 \u043f\u0443\u0442\u044c \u0441 \u043d\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u043e\u0439, \u0434\u0443\u043c\u0430\u044e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u0442 \u0436\u0435.<\/p>\n<\/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\/articles\/1064990\/\">https:\/\/habr.com\/ru\/articles\/1064990\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438\u0415\u0441\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0447\u0438\u043f\u0430\u043c\u0438 ss02-1, \u0443\u043c\u0435\u0435\u0442 \u0432 \u043d\u0438\u0445 \u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u0447\u0438\u0442\u0430\u0442\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u0441\u0435\u0431\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0430\u0440\u043e\u043b\u0435\u0439 \u043d\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0437\u0430\u043f\u0438\u0441\u044c, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u043e\u0442 \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.\u0427\u0442\u043e \u0438\u043c\u0435\u0435\u043c &#8212; \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0447\u0438\u043f\u0430, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u0430\u0440\u043e\u043b\u0438. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e xerox wc 4250, \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0443 \u043c\u0435\u043d\u044f \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 15.003.70.000.\u0412\u044b\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432\u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u043c\u0435\u0441\u0442\u0435 Ida. \u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043a\u043e\u0434\u0430, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u044e\u0442, \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u0440\u043a\u0430\u0441 \u0431\u0443\u0434\u0443\u0449\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.TRACE32 Arm Debugger \u043e\u0442 lauterbach. \u041e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0443 \u043c\u0435\u043d\u044f \u0441\u0442\u0430\u0440\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f, \u0432 about \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e Release Jun 2011. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \u043d\u043e \u0438 \u044d\u0442\u043e\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0437\u0430\u0434\u0430\u0447\u0435\u0439. \u0412 \u043d\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0440\u0435\u0434\u0443, \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u0438\u043f \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e \u0441\u0432\u0435\u0440\u044f\u044f\u0441\u044c \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u043a\u043e\u0434\u043e\u043c, \u0438\u0441\u043a\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438.Python &#8212; \u0442\u0443\u0442 \u043f\u0438\u0448\u0435\u043c \u043a\u043e\u0434.\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u0438\u0437 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u044f\u0434\u0440\u043e, \u043e\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u044b \u201c$ZIP\u201d, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 0x78 0x9C &#8212; zip \u0430\u0440\u0445\u0438\u0432. \u041f\u0438\u0448\u0435\u043c \u043a\u043e\u0434:import zlibdef read_u32(tab, addr):    res = tab[addr]    res = res &lt;&lt; 8 | tab[addr+1]    res = res &lt;&lt; 8 | tab[addr+2]    res = res &lt;&lt; 8 | tab[addr+3]    return reswith open(&#171;WC4250_15.003.70.000.hd&#187;, &#8216;rb&#8217;) as f:    data = f.read()pos = 0while True:    pos = data.find(b&#187;$ZIP&#187;, pos)    if pos == -1:        break    filename_bytes = data[pos + 4:pos + 8]    filename_hex = filename_bytes.hex().upper()    block_size = read_u32(data,8)     block_start = pos + 12    compressed_data = data[block_start:block_start + block_size]    if compressed_data[:2] == b&#8217;\\x78\\x9C&#8217;:        filename = f&#187;{filename_hex}.bin&#187;        decompressed_data = zlib.decompress(compressed_data)        with open(filename, &#8216;wb&#8217;) as f:            f.write(decompressed_data)        pos += 12 + block_size    else:        pos += 1\u0413\u0440\u0443\u0437\u0438\u043c \u0432 ida, \u0438\u0449\u0435\u043c \u043d\u0443\u0436\u043d\u0443\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043a\u0443. \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u044e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438, \u0442.\u043a. \u0437\u0430\u0434\u0430\u0447\u043a\u0430 \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435, \u043d\u0430 \u043d\u0435\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.\u041f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f sub_203D548. \u0421\u0443\u0434\u044f \u043f\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u043c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c INSTALL_TONER, CHIPv1.0\u2026Invalid, INVALID_TONER \u0442\u043e \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e.\u041b\u0438\u0441\u0442\u0438\u043d\u0433 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sub_203D548 \u043a\u0430\u043a \u0435\u0441\u0442\u044cROM:0203D548 sub_203D548                             ; CODE XREF: sub_1D848C4+34pROM:0203D548                                         ; sub_1D84CA8+4pROM:0203D548ROM:0203D548 var_64          = -0x64ROM:0203D548 var_5C          = -0x5CROM:0203D548 var_54          = -0x54ROM:0203D548 var_48          = -0x48ROM:0203D548 var_40          = -0x40ROM:0203D548 var_30          = -0x30ROM:0203D548 var_1C          = -0x1CROM:0203D548 var_16          = -0x16ROM:0203D548 var_15          = -0x15ROM:0203D548 var_14          = -0x14ROM:0203D548 var_E           = -0xEROM:0203D548 var_D           = -0xDROM:0203D548ROM:0203D548                 STMFD   SP!, {R4,R5,LR}ROM:0203D54C                 SUB     SP, SP, #0x60ROM:0203D550                 ADD     R0, SP, #0x50ROM:0203D554                 MOV     R1, #0ROM:0203D558                 MOV     R2, #0ROM:0203D55C                 MOV     R3, #0ROM:0203D560                 MOV     R4, #0ROM:0203D564                 STMIA   R0, {R1-R4} ROM:0203D568                 ADD     R0, SP, #0x2CROM:0203D56C                 MOV     R1, #0ROM:0203D570                 MOV     R2, #0ROM:0203D574                 MOV     R4, #0ROM:0203D578                 MOV     R3, #0ROM:0203D57C                 STMIA   R0, {R1-R4}ROM:0203D580                 ADD     R0, SP, #0x24ROM:0203D584                 MOV     R1, #0ROM:0203D588                 MOV     R2, #0ROM:0203D58C                 STMIA   R0, {R1,R2}ROM:0203D590                 LDR     R4, =0x28A7708ROM:0203D594                 LDRB    R0, [R4]ROM:0203D598                 MOV     R1, R0,LSL#4ROM:0203D59C                 LDR     R0, =dword_224A6B0ROM:0203D5A0                 STRB    R1, [R0]ROM:0203D5A4                 BL      sub_203D4A4ROM:0203D5A8                 CMP     R0, #1ROM:0203D5AC                 BNE     loc_203D5C8ROM:0203D5B0                 LDRB    R1, [R4]ROM:0203D5B4                 ADR     R0, aInstall_tonerD ; &#171;\\r\\n INSTALL_TONER [%d] &#171;ROM:0203D5B8                 BL      sub_1FF2738ROM:0203D5BC                 MOV     R0, #1ROM:0203D5C0                 ADD     SP, SP, #0x60ROM:0203D5C4                 LDMFD   SP!, {R4,R5,PC}ROM:0203D5C8 ; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;ROM:0203D5C8ROM:0203D5C8 loc_203D5C8                             ; CODE XREF: sub_203D548+64jROM:0203D5C8                 ADD     R1, SP, #0x50ROM:0203D5CC                 MOV     R2, #8ROM:0203D5D0                 MOV     R0, #0x10ROM:0203D5D4                 BL      sub_1D849ECROM:0203D5D8                 LDRB    R0, [SP,#0x56]ROM:0203D5DC                 CMP     R0, #0x90ROM:0203D5E0                 LDREQB  R0, [SP,#0x57]ROM:0203D5E4                 CMPEQ   R0, #0x1BROM:0203D5E8                 BEQ     loc_203D5F8ROM:0203D5EC                 LDRB    R1, [R4]ROM:0203D5F0                 ADR     R0, aSchipv1_0__inv ; &#171;\\r\\n sCHIPv1.0..Invalid [%d] &#171;ROM:0203D5F4                 BL      sub_1FF2738ROM:0203D5F8ROM:0203D5F8 loc_203D5F8                             ; CODE XREF: sub_203D548+A0jROM:0203D5F8                 ADD     R0, SP, #0x58ROM:0203D5FC                 ADR     R1, aSecprt     ROM:0203D600                 MOV     R2, #6ROM:0203D604                 BL      memcpy          ROM:0203D608                 MOV     R0, #0ROM:0203D60CROM:0203D60C loc_203D60C                             ; CODE XREF: sub_203D548+F8jROM:0203D60C                 ADD     R1, SP, #0x50ROM:0203D610                 LDRB    R1, [R1,R0]ROM:0203D614                 LDRB    R2, [SP,#0x5E]ROM:0203D618                 EOR     R1, R2, R1ROM:0203D61C                 STRB    R1, [SP,#0x5E]ROM:0203D620                 ADD     R1, SP, #0x50ROM:0203D624                 LDRB    R1, [R1,R0,LSL#1]ROM:0203D628                 LDRB    R2, [SP,#0x5F]ROM:0203D62C                 ADD     R0, R0, #1ROM:0203D630                 AND     R0, R0, #0xFFROM:0203D634                 EOR     R1, R2, R1ROM:0203D638                 STRB    R1, [SP,#0x5F]ROM:0203D63C                 CMP     R0, #8ROM:0203D640                 BLT     loc_203D60C     ROM:0203D644                 ADD     R1, SP, #0x3C   ROM:0203D648                 ADD     R0, SP, #0x50   ROM:0203D64C                 MOV     R2, #0x10ROM:0203D650                 BL      sub_1DBE83C                                   ROM:0203D654                 ADD     R2, SP, #0x10ROM:0203D658                 ADD     R0, SP, #0x3CROM:0203D65C                 MOV     R1, #0x10ROM:0203D660                 BL      SHA_1           ROM:0203D660                                         ROM:0203D664                 ADD     R1, SP, #0x18ROM:0203D668                 ADD     R0, SP, #0x24ROM:0203D66C                 MOV     R2, #8ROM:0203D670                 BL      memcpy         ROM:0203D674                 MOV     R1, SPROM:0203D678                 ADD     R0, SP, #0x10   ROM:0203D67C                 MOV     R2, #0x10ROM:0203D680                 BL      sub_1DBE83C     ROM:0203D680                                         ROM:0203D684                 ADD     R1, SP, #8ROM:0203D688                 ADD     R0, SP, #0x2CROM:0203D68C                 MOV     R2, #8ROM:0203D690                 BL      memcpyROM:0203D694                 ADD     R1, SP, #0x2CROM:0203D698                 LDMIA   R1, {R2,R3,R12,LR}ROM:0203D69C                 ADD     R0, SP, #0x3CROM:0203D6A0                 STMIA   R0, {R2,R3,R12,LR}ROM:0203D6A4                 MOV     R3, #1ROM:0203D6A8                 MOV     R2, R5ROM:0203D6AC                 MOV     R0, #1ROM:0203D6B0                 ADD     R1, SP, #0x3CROM:0203D6B4                 BL      sub_203D360ROM:0203D6B8                 MOV     R5, #2ROM:0203D6BC                 CMP     R0, #0ROM:0203D6C0                 BEQ     loc_203D6E4ROM:0203D6C4                 ADR     R0, aCrumCoreFileFa ; &#171;\\r\\n[Crum Core file] Fail cm_ActiveSecuri&#187;&#8230;ROM:0203D6C8                 BL      sub_1FF2738ROM:0203D6CC                 LDRB    R1, [R4]ROM:0203D6D0                 ADR     R0, aInvalid_tonerD ; &#171;\\r\\n INVALID_TONER [%d] &#171;ROM:0203D6D4                 BL      sub_1FF2738ROM:0203D6D8                 MOV     R0, R5ROM:0203D6DC                 ADD     SP, SP, #0x60ROM:0203D6E0                 LDMFD   SP!, {R4,R5,PC}ROM:0203D6E4 ; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;ROM:0203D6E4ROM:0203D6E4 loc_203D6E4                             ; CODE XREF: sub_203D548+178jROM:0203D6E4                 ADD     R0, SP, #0x6C+var_48ROM:0203D6E8                 MOV     R2, #0ROM:0203D6EC                 MOV     R1, #1ROM:0203D6F0                 BL      sub_203D148ROM:0203D6F4                 CMP     R0, #0ROM:0203D6F8                 BEQ     loc_203D71CROM:0203D6FC                 ADR     R0, aCrumCoreFile_0 ; &#171;\\r\\n[Crum Core file] Fail cm_VerifyPasswo&#187;&#8230;ROM:0203D700                 BL      sub_1FF2738ROM:0203D704                 LDRB    R1, [R4]ROM:0203D708                 ADR     R0, aInvalid_tonerD ; &#171;\\r\\n INVALID_TONER [%d] &#171;ROM:0203D70C                 BL      sub_1FF2738ROM:0203D710                 MOV     R0, R5ROM:0203D714                 ADD     SP, SP, #0x60ROM:0203D718                 LDMFD   SP!, {R4,R5,PC}ROM:0203D71C ; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;ROM:0203D71CROM:0203D71C loc_203D71C                             ; CODE XREF: sub_203D548+1B0jROM:0203D71C                 MOV     R1, #1ROM:0203D720                 BL      nullsub_154ROM:0203D724                 MOV     R0, #0ROM:0203D728                 ADD     SP, SP, #0x60ROM:0203D72C                 LDMFD   SP!, {R4,R5,PC}ROM:0203D72C ; End of function sub_203D548ROM:0203D72CROM:0203D72C ;&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-489201","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/489201","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=489201"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/489201\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=489201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=489201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=489201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}