Дизассемблирование прошивки siemens (infeneon) C167CS

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Kot4512
Родился
Сообщения: 12
Зарегистрирован: Вт фев 17, 2026 11:58:56

Re: Дизассемблирование прошивки siemens (infeneon) C167CS

Сообщение Kot4512 »

[uquote="zAries",url="/forum/viewtopic.php?p=4793315#p4793315"]Изучите datasheet на контролер, распределение адресов, это важно.
IDA мощный инструмент в умелых руках, учитесь им пользоваться
если есть желание в чём то разобраться.[/uquote]

Я попробовал ещё раз и вроде даже что-то получилось, но потом я почитал даташит на C167CS и мне нужен адрес 0x10000 (с него начинается исполняемая часть прошивки).
И ida pro даже помечает этот адрес как адрес точки входа, но на месте этого адреса просто идёт бесконечная инструкция db (по своему опыту знаю что это означает что ida не понимает что там написано)

Настройки при выборе МК - https://allwebs.ru/image/image.pcNQgw
Настройки памяти - https://allwebs.ru/image/image.pcCMFt
Аватара пользователя
zAries
Потрогал лапой паяльник
Сообщения: 305
Зарегистрирован: Ср сен 11, 2024 10:18:53

Re: Дизассемблирование прошивки siemens (infeneon) C167CS

Сообщение zAries »

[uquote="Kot4512",url="/forum/viewtopic.php?p=4793777#p4793777"]...но потом я почитал даташит на C167CS и мне нужен адрес 0x10000...[/uquote]
С какого адреса стартует контролер ?
Audiatur et altera pars !
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: Дизассемблирование прошивки siemens (infeneon) C167CS

Сообщение jcxz »

[uquote="Kot4512",url="/forum/viewtopic.php?p=4793777#p4793777"]Я попробовал ещё раз и вроде даже что-то получилось, но потом я почитал даташит на C167CS и мне нужен адрес 0x10000 (с него начинается исполняемая часть прошивки).[/uquote]Откуда инфа? В даташите C167CS указан иной адрес:
Изображение
По этому адресу расположена таблица прерываний, состоящая из векторов по 4 байта каждый. Каждый вектор - обычно команда перехода на процедуру ISR. 0-й вектор - вектор сброса. Он и указывает на точку входа программы. Т.е. - дизассемблируем код по адресу 0 и видим на какой адрес оттуда идёт переход.
Аватара пользователя
zAries
Потрогал лапой паяльник
Сообщения: 305
Зарегистрирован: Ср сен 11, 2024 10:18:53

Re: Дизассемблирование прошивки siemens (infeneon) C167CS

Сообщение zAries »

Да я уже приводил пример, но видимо никто не вникает.
Это старт
Изображение
Сюда переход
Изображение
И так далее...
Audiatur et altera pars !
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: Дизассемблирование прошивки siemens (infeneon) C167CS

Сообщение jcxz »

[uquote="zAries",url="/forum/viewtopic.php?p=4795287#p4795287"]Да я уже приводил пример, но видимо никто не вникает.
Это старт[/uquote]У вас тут стартовый адрес = 0x444, а ТС пишет про 0x10000:
[uquote="Kot4512",url="/forum/viewtopic.php?p=4793777#p4793777"]мне нужен адрес 0x10000 (с него начинается исполняемая часть прошивки).[/uquote] Какая связь?
Аватара пользователя
zAries
Потрогал лапой паяльник
Сообщения: 305
Зарегистрирован: Ср сен 11, 2024 10:18:53

Re: Дизассемблирование прошивки siemens (infeneon) C167CS

Сообщение zAries »

ТС datasheet видимо читает по диагонали :)
Audiatur et altera pars !
Kot4512
Родился
Сообщения: 12
Зарегистрирован: Вт фев 17, 2026 11:58:56

Re: Дизассемблирование прошивки siemens (infeneon) C167CS

Сообщение Kot4512 »

[uquote="zAries",url="/forum/viewtopic.php?p=4795287#p4795287"]Да я уже приводил пример, но видимо никто не вникает.
Это старт
Изображение
Сюда переход
Изображение
И так далее...[/uquote]

т.е сам исполняемый код хранится по адресу 0F206h?
Аватара пользователя
zAries
Потрогал лапой паяльник
Сообщения: 305
Зарегистрирован: Ср сен 11, 2024 10:18:53

Re: Дизассемблирование прошивки siemens (infeneon) C167CS

Сообщение zAries »

О небо, при чём тут 0F206h ? :facepalm:
Стартует контролер с 0x000h (datasheet читали ?) там
jmps RESET_handler
.....
.....
.....
0x0444 RESET_handler
.....
.....
скрины для кого приложены ???

Если напрячь моцк, и прописать вместо адресов символьные имена регистров, получим вполне
осмысленную картину мира, где если не всё, то очень много становится понятно. Ищите и обрящите ! :)

Код: Выделить всё


Но опять же вопрос - что со всем этим вы будите делать ?




000003F0 ; ---------------------------------------------------------------------------
000003F0 loc_3F0:                                
000003F0                 calla   cc_UC, sub_10CE
000003F4                 cmpb    rl4, #0
000003F6                 jmpr    cc_NZ, loc_430
000003F8                 calls   0, sub_10A0
000003FC                 cmpb    rl4, #0
000003FE                 jmpr    cc_NZ, loc_430
00000400                 mov     r4, #0FFC0h
00000404                 mov     [-r0], r4
00000406                 mov     r12, #0E000h
0000040A loc_40A:
0000040A                 mov     r13, #0E010h
0000040E                 mov     r14, #0E020h
00000412                 mov     r15, #0FF00h
00000416                 calla   cc_UC, sub_EFA
0000041A                 add     r0, #2
0000041C                 andb    rl4, #20h 
00000420                 jmpr    cc_Z, loc_430
00000422                 mov     r4, word_4410
00000426                 mov     r5, word_4412
0000042A                 calls   0, sub_386C
0000042E                 ret
00000430 ; ---------------------------------------------------------------------------
00000430 loc_430:                                
00000430                 bset    word_FD04.4
00000432                 calls   0, sub_1CE4
00000436                 calls   0, sub_1C52
0000043A                 calls   0, sub_1834
0000043E                 calla   cc_UC, sub_1874
00000442                 ret
00000444 ; ---------------------------------------------------------------------------
;=============
00000444 RESET_handler:                          
00000444                 mov     CP, #0F206h           ; Context Pointer Register
00000448                 nop
0000044A                 mov     DPP0, #22h            ; assume dpp0: 22h (page 0x88000)
0000044E                 mov     DPP1, #24h            ; assume dpp1: 24h (page 0x90000)
00000452                 mov     DPP2, #23h            ; assume dpp2: 23h (page 0x8C000)
00000456                 extr    #1
00000458                 mov     XPERCON, #0C03h       ; X-Peripheral Control Register
0000045C                 bfldh   SYSCON, #0FFh, #0E2h  ; System Configuration Register
00000460                 bfldl   SYSCON, #0FFh, #0Eh   ; System Configuration Register
00000464                 mov     ADDRSEL1, #1008h      ; Address Select Register 1
00000468                 mov     ADDRSEL2, #2000h      ; Address Select Register 2
0000046C                 mov     ADDRSEL3, #0FFE0h     ; Address Select Register 3
00000470                 mov     ADDRSEL4, #0FFF0h     ; Address Select Register 4
00000474                 bfldh   BUSCON0, #0FFh, #44h 
00000478                 bfldl   BUSCON0, #0FFh, #0BFh
0000047C                 bfldh   BUSCON1, #0FFh, #84h
00000480                 bfldl   BUSCON1, #0FFh, #8Fh
00000484                 bfldh   BUSCON2, #0FFh, #4
00000488                 bfldl   BUSCON2, #0FFh, #2Fh 
0000048C loc_48C:
0000048C                 bfldh   BUSCON3, #0FFh, #84h
00000490                 bfldl   BUSCON3, #0FFh, #0BFh
00000494                 bfldh   BUSCON4, #0FFh, #44h 
00000498                 bfldl   BUSCON4, #0FFh, #0BFh
0000049C                 extr    #1
0000049E                 mov     PICON, #0CFh
000004A2                 mov     STKOV, #0F226h
000004A6                 mov     STKUN, #0F326h
000004AA                 mov     SP, #0F326h
000004AE                 einit
000004B2                 mov     r0, #5555h
000004B6                 mov     r1, r0
000004B8                 mov     r2, r0
000004BA                 mov     r3, r0
000004BC                 mov     r4, r0
000004BE                 mov     r5, r0
000004C0                 mov     r6, r0
000004C2                 mov     r7, r0
000004C4                 mov     r8, r0
000004C6                 mov     r9, r0
000004C8                 mov     r10, r0
000004CA                 mov     r11, r0
000004CC                 mov     r12, r0
000004CE                 mov     r13, r0
000004D0                 mov     r14, r0
000004D2                 mov     r15, r0
000004D4                 add     r0, r15
000004D6                 add     r1, r15
000004D8                 add     r2, r15
000004DA                 add     r3, r15
000004DC                 add     r4, r15
000004DE                 add     r5, r15
000004E0                 add     r6, r15
000004E2                 add     r7, r15
000004E4                 add     r8, r15
000004E6                 add     r9, r15
000004E8                 add     r10, r15
000004EA                 add     r11, r15
000004EC                 add     r12, r15
000004EE                 add     r13, r15
000004F0                 add     r14, r15
000004F2                 add     r15, r15
000004F4                 neg     r15
000004F6                 add     r0, r15
000004F8                 jmpr    cc_NZ, loc_538
000004FA                 add     r1, r15
000004FC                 jmpr    cc_NZ, loc_538
000004FE                 add     r2, r15
00000500                 jmpr    cc_NZ, loc_538
00000502                 add     r3, r15
00000504                 jmpr    cc_NZ, loc_538
00000506                 add     r4, r15
00000508                 jmpr    cc_NZ, loc_538
0000050A                 add     r5, r15
0000050C                 jmpr    cc_NZ, loc_538
0000050E                 add     r6, r15
00000510                 jmpr    cc_NZ, loc_538
00000512                 add     r7, r15
00000514                 jmpr    cc_NZ, loc_538
00000516                 add     r8, r15
00000518                 jmpr    cc_NZ, loc_538
0000051A                 add     r9, r15
0000051C                 jmpr    cc_NZ, loc_538
0000051E                 add     r10, r15
00000520                 jmpr    cc_NZ, loc_538
00000522                 add     r11, r15
00000524                 jmpr    cc_NZ, loc_538
00000526                 add     r12, r15
00000528                 jmpr    cc_NZ, loc_538
0000052A                 add     r13, r15
0000052C                 jmpr    cc_NZ, loc_538
0000052E                 add     r14, r15
00000530                 jmpr    cc_NZ, loc_538
00000532                 add     r15, #0AAAAh
00000536                 jmpr    cc_Z, loc_53A
00000538 loc_538:                                
00000538                 jmpr    cc_UC, loc_538
0000053A ; ---------------------------------------------------------------------------
0000053A loc_53A:                                
0000053A                 mov     r7, #0E20Eh
0000053E                 xor     r7, SYSCON
00000542                 and     r7, #0FF87h
00000546                 jmpr    cc_Z, loc_54E
00000548                 srst
0000054C ; ---------------------------------------------------------------------------
0000054C                 jmpr    cc_UC, loc_54E
0000054E ; ---------------------------------------------------------------------------
0000054E loc_54E:                                
0000054E                 jnb     WDTCON.1, loc_556
00000552                 or      r15, #1
00000554                 jmpr    cc_UC, loc_556
00000556 ; ---------------------------------------------------------------------------
00000556 loc_556:                                
00000556                 mov     WDTCON, #9201h
0000055A                 srvwdt
0000055E                 mov     r7, #572h
00000562                 push    r7
00000564                 movb    rl4, #1
00000566                 pop     r7
00000568                 cmp     r7, #572h
0000056C                 jmpr    cc_NZ, loc_572
0000056E                 calla   cc_UC, sub_10CE
00000572 loc_572:                                
00000572                 cmpb    rl4, #0
00000574                 jmpr    cc_Z, loc_57A
00000576                 or      r15, #8000h
0000057A loc_57A:                                
0000057A                 mov     r4, #5555h
0000057E loc_57E:                                
0000057E                 mov     r5, #5556h
00000582                 mov     r6, #0AAAAh
00000586                 mov     r0, #0F226h
0000058A                 mov     r1, #0FDFAh
0000058E                 mov     r2, #2
00000590                 mov     r3, #598h
00000594                 jmpa    cc_UC, loc_698
00000598 ; ---------------------------------------------------------------------------
00000598                 mov     r0, #0E000h
0000059C                 mov     r1, #0E790h
000005A0                 mov     r2, #4
000005A2                 mov     r3, #5AAh
000005A6                 jmpa    cc_UC, loc_698
000005AA ; ---------------------------------------------------------------------------
000005AA                 mov     r0, #0C000h
000005AE                 mov     r1, #0D7FEh
000005B2 loc_5B2:
000005B2                 mov     r2, #4
000005B4                 mov     r3, #5BAh
000005B8                 jmpr    cc_UC, loc_698
000005BA ; ---------------------------------------------------------------------------
000005BA                 mov     ADDRSEL2, #883h
000005BE                 mov     r0, #0
000005C2                 mov     r1, #3FFEh
000005C6                 mov     r2, #8
000005C8                 mov     r3, #5CEh
000005CC                 jmpr    cc_UC, loc_698
000005CE ; ---------------------------------------------------------------------------
000005CE                 mov     ADDRSEL2, #2000h
000005D2                 mov     WDTCON, #9201h
000005D6 loc_5D6:
000005D6                 srvwdt
000005DA                 mov     r0, #0EF00h
000005DE                 mov     r1, #0EFFFh
000005E2                 mov     r2, #10h
000005E6                 mov     r3, #5EEh
000005EA                 jmpa    cc_UC, loc_71E
000005EE ; ---------------------------------------------------------------------------
000005EE                 mov     r0, #0EE00h
000005F2                 mov     r1, #0EEFFh
000005F6                 mov     r2, #400h
000005FA                 mov     r3, #602h
000005FE                 jmpa    cc_UC, loc_71E
00000602 ; ---------------------------------------------------------------------------
00000602                 mov     byte_C174, r15
00000606                 mov     r9, DPP0
0000060A                 mov     ADDRSEL2, #883h
0000060E loc_60E:
0000060E                 mov     DPP0, #22h 
00000612                 mov     r8, #2
00000616                 mov     r4, #5555h
0000061A                 mov     r5, #5556h
0000061E                 mov     r6, #0AAAAh
00000622                 mov     [r8], r4
00000624                 nop
00000626 loc_626:                                
00000626                 mov     r7, [r8]
00000628                 cmp     r7, r4
0000062A                 jmpr    cc_NZ, loc_644
0000062C                 add     r7, r4
0000062E                 mov     [r8], r7
00000630                 nop
00000632                 mov     r7, [r8]
00000634                 cmp     r7, r6
00000636                 jmpr    cc_NZ, loc_644
00000638                 add     r7, r5
0000063A                 mov     [r8], r7
0000063C                 nop
0000063E                 mov     r7, [r8]
00000640 loc_640:
00000640                 cmp     r7, #0
00000642                 jmpr    cc_Z, loc_668
00000644 loc_644:                                
00000644                 mov     [r8], r4
00000646                 nop
00000648                 mov     r7, [r8]
0000064A                 cmp     r7, r4
0000064C                 jmpr    cc_NZ, loc_66A
0000064E                 add     r7, r4
00000650                 mov     [r8], r7
00000652                 nop
00000654                 mov     r7, [r8]
00000656                 cmp     r7, r6
00000658 loc_658:
00000658                 jmpr    cc_NZ, loc_66A
0000065A                 add     r7, r5
0000065C                 mov     [r8], r7
0000065E                 nop
00000660                 mov     r7, [r8]
00000662                 cmp     r7, #0
00000664                 jmpr    cc_NZ, loc_66A
00000666                 jmpr    cc_UC, loc_668
00000668 ; ---------------------------------------------------------------------------
00000668 loc_668:                                
00000668                 bset    word_FD04.6
0000066A loc_66A:                                
0000066A                 mov     ADDRSEL2, #2000h
0000066E                 mov     DPP0, r9           ; assume dpp0: 0 (page 0x0)
00000672                 mov     r1, #0
00000674                 mov     r2, #0
00000676                 mov     r3, #0
00000678                 mov     r4, #0
0000067A                 mov     r5, #0
0000067C                 mov     r6, #0
0000067E                 mov     r7, #0
00000680                 mov     r8, #0
00000682                 mov     r9, #0
00000684                 mov     r10, #0
00000686                 mov     r11, #0
00000688                 mov     r12, #0
0000068A                 mov     r13, #0
0000068C                 mov     r14, #0
0000068E                 mov     r15, #0
00000690                 mov     r0, #0F3A6h
00000694                 jmpa    cc_UC, loc_3F0
00000698 ; ---------------------------------------------------------------------------
00000698 loc_698:                                
00000698                 mov     r7, #1
0000069A loc_69A:                                
0000069A                 mov     [r0], r7
0000069C                 nop
0000069E                 cmp     r7, [r0]
000006A0                 jmpr    cc_Z, loc_6AA
000006A2                 mov     [r0], r7
000006A4                 nop
000006A6                 cmp     r7, [r0]
000006A8                 jmpr    cc_NZ, loc_70E
000006AA loc_6AA:                                
000006AA                 shl     r7, #1
000006AC                 jmpr    cc_NC, loc_69A
000006AE                 mov     r7, #0FFFEh
000006B2 loc_6B2:                                
000006B2                 mov     [r0], r7
000006B4                 nop
000006B6                 cmp     r7, [r0]
000006B8                 jmpr    cc_Z, loc_6C2
000006BA                 mov     [r0], r7
000006BC                 nop
000006BE                 cmp     r7, [r0]
000006C0                 jmpr    cc_NZ, loc_70E
000006C2 loc_6C2:                                
000006C2                 rol     r7, #1
000006C4                 jb      r7.0, loc_6B2
000006C8                 mov     r8, r1
000006CA                 add     r8, #2
000006CC loc_6CC:                                
000006CC                 mov     [-r8], r4
000006CE                 cmp     r8, r0
000006D0                 jmpr    cc_UGT, loc_6CC
000006D2                 mov     r8, r1
000006D4 loc_6D4:                                
000006D4                 mov     r7, [r8]
000006D6                 add     r7, r4
000006D8                 mov     [r8], r7
000006DA                 cmp     r7, r6
000006DC                 jmpr    cc_NZ, loc_6EA
000006DE                 mov     r7, [r8]
000006E0                 add     r7, r5
000006E2                 mov     [r8], r7
000006E4                 nop
000006E6                 mov     r7, [r8]
000006E8                 jmpr    cc_Z, loc_704
000006EA loc_6EA:                                
000006EA                 mov     [r8], r4
000006EC                 nop
000006EE                 mov     r7, [r8]
000006F0                 add     r7, r4
000006F2                 mov     [r8], r7
000006F4                 cmp     r7, r6
000006F6                 jmpr    cc_NZ, loc_70E
000006F8                 mov     r7, [r8]
000006FA                 add     r7, r5
000006FC                 mov     [r8], r7
000006FE                 nop
00000700                 mov     r7, [r8]
00000702                 jmpr    cc_NZ, loc_70E
00000704 loc_704:                                
00000704                 sub     r8, #2
00000706                 jmpr    cc_C, loc_71C
00000708                 cmp     r8, r0
0000070A                 jmpr    cc_NC, loc_6D4
0000070C                 jmpr    cc_UC, loc_71C
0000070E ; ---------------------------------------------------------------------------
0000070E loc_70E:                                
0000070E                 or      r15, r2
00000710                 mov     r7, #0
00000712                 mov     r8, r1
00000714 loc_714:                                
00000714                 add     r8, #2
00000716 loc_716:                                
00000716                 mov     [-r8], r7
00000718                 cmp     r8, r0
0000071A                 jmpr    cc_UGT, loc_716
0000071C loc_71C:                                
0000071C                 jmpi    cc_UC, [r3]
0000071E ; ---------------------------------------------------------------------------
0000071E loc_71E:                                
0000071E                 mov     r4, r0
00000720                 movb    rh5, #55h 
00000724 loc_724:                                
00000724                 add     r4, #10h
00000728                 cmp     r4, r1
0000072A                 jmpr    cc_UGT, loc_7DA
0000072C                 mov     r9, r4
0000072E                 add     r9, #7
00000730                 mov     r8, r9
00000732                 add     r8, #8
00000736                 add     r8, #1
00000738 loc_738:                                
00000738                 movb    [-r8], rh5
0000073A                 cmp     r8, r9
0000073C                 jmpr    cc_UGT, loc_738
0000073E                 mov     r8, r9
00000740                 add     r8, #7
00000742 loc_742:                                
00000742                 movb    rl5, [r8]
00000744                 addb    rl5, rh5
00000746                 movb    [r8], rl5
00000748                 sub     r8, #1
0000074A                 cmp     r8, r9
0000074C                 jmpr    cc_NC, loc_742
0000074E                 mov     r8, r9
00000750                 add     r8, #7
00000752 loc_752:                                
00000752                 movb    rl5, [r8]
00000754                 addb    rl5, rh5
00000756                 movb    [r8], rl5
00000758                 cmpb    rl5, ONES
0000075C                 jmpr    cc_Z, loc_776
0000075E                 movb    [r8], rh5
00000760                 nop
00000762                 movb    rl5, [r8]
00000764                 addb    rl5, rh5
00000766                 movb    [r8], rl5
00000768                 nop
0000076A                 movb    rl5, [r8]
0000076C                 addb    rl5, rh5
0000076E                 movb    [r8], rl5
00000770                 cmpb    rl5, ONES
00000774                 jmpr    cc_NZ, loc_7B8
00000776 loc_776:                                
00000776                 sub     r8, #1
00000778                 cmp     r8, r9
0000077A                 jmpr    cc_NC, loc_752
0000077C                 mov     r8, r9
0000077E                 add     r8, #7
00000780 loc_780:                                
00000780                 movb    rl5, [r8]
00000782                 addb    rl5, #1
00000784 loc_784:                                
00000784                 movb    [r8], rl5
00000786                 nop
00000788                 movb    rl5, [r8]
0000078A                 jmpr    cc_Z, loc_7B0
0000078C                 movb    [r8], rh5
0000078E                 nop
00000790                 movb    rl5, [r8]
00000792                 addb    rl5, rh5
00000794                 movb    [r8], rl5
00000796                 nop
00000798                 movb    rl5, [r8]
0000079A                 addb    rl5, rh5
0000079C                 movb    [r8], rl5
0000079E                 cmpb    rl5, ONES
000007A2                 jmpr    cc_NZ, loc_7B8
000007A4                 movb    rl5, [r8]
000007A6                 addb    rl5, #1
000007A8                 movb    [r8], rl5
000007AA                 nop
000007AC                 movb    rl5, [r8]
000007AE                 jmpr    cc_NZ, loc_7B8
000007B0 loc_7B0:                                
000007B0                 sub     r8, #1
000007B2                 cmp     r8, r9
000007B4                 jmpr    cc_NC, loc_780
000007B6                 jmpr    cc_UC, loc_724
000007B8 ; ---------------------------------------------------------------------------
000007B8 loc_7B8:                                
000007B8                 or      r15, r2
000007BA                 mov     r4, r0
000007BC loc_7BC:                                
000007BC                 add     r4, #10h
000007C0                 cmp     r4, r1
000007C2                 jmpr    cc_UGT, loc_7DA
000007C4                 mov     r9, r4
000007C6                 add     r9, #7
000007C8                 mov     r8, r9
000007CA                 add     r8, #8
000007CE                 add     r8, #1
000007D0                 movb    rl5, #0
000007D2 loc_7D2:                                
000007D2                 movb    [-r8], rl5
000007D4                 cmp     r8, r9
000007D6                 jmpr    cc_UGT, loc_7D2
000007D8                 jmpr    cc_UC, loc_7BC
000007DA ; ---------------------------------------------------------------------------
000007DA loc_7DA:                                
000007DA                 jmpi    cc_UC, [r3]
000007DC ; ---------------------------------------------------------------------------
000007DC                 reti
Audiatur et altera pars !
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: Дизассемблирование прошивки siemens (infeneon) C167CS

Сообщение jcxz »

[uquote="zAries",url="/forum/viewtopic.php?p=4796321#p4796321"]ТС datasheet видимо читает по диагонали :)[/uquote]Судя по:
[uquote="Kot4512",url="/forum/viewtopic.php?p=4796398#p4796398"]т.е сам исполняемый код хранится по адресу 0F206h?[/uquote]ТС вообще ничего не читает. Ни даташит, ни чего ему тут на форуме пишут. :facepalm:

PS: Бесполезно это всё... Если ТС не может уже почти месяц осилить даже примитивный вектор старта, то о каком "дизассемблировании прошивки" можно вести речь? Оно в 100500 раз сложнее.
Аватара пользователя
zAries
Потрогал лапой паяльник
Сообщения: 305
Зарегистрирован: Ср сен 11, 2024 10:18:53

Re: Дизассемблирование прошивки siemens (infeneon) C167CS

Сообщение zAries »

Тогда я фсё :dont_know:
Audiatur et altera pars !
Kot4512
Родился
Сообщения: 12
Зарегистрирован: Вт фев 17, 2026 11:58:56

Re: Дизассемблирование прошивки siemens (infeneon) C167CS

Сообщение Kot4512 »

Я тут немного по читал даташит и кое-что понял: т.к там точка входа считай обработчик аппаратной ловушки перезагрузки он вызывает другие функции и ту часть из их которая не дизассемблировалась можно пометить как код, нажав на клавишу c и выбрав там анализ, тогда мы получим из этих байт реальные инструкции но возникает один нюанс при дизассемблировании при помощи клавиши c ida не выделяет функции на успешно дизассемблированном фрагменте кода, но ida разделяет получившееся инструкции на блоки и разделяет их комментариями. Но насколько мне известно один такой блок не равно одной функции. Тогда возникает вопрос как мне среди получившейся каши инструкций выделить отдельные функции ибо если просто взять какой-нибудь произвольный участок кода и пометить его как функцию я сомневаюсь что это будет правильно. Должен же быть какой-то способ как их выделить?
Аватара пользователя
zAries
Потрогал лапой паяльник
Сообщения: 305
Зарегистрирован: Ср сен 11, 2024 10:18:53

Re: Дизассемблирование прошивки siemens (infeneon) C167CS

Сообщение zAries »

[uquote="Kot4512",url="/forum/viewtopic.php?p=4801679#p4801679"]...как мне среди получившейся каши ?[/uquote]

Я вот ничего не понял в этой каше.
Такое впечатление, что написано через переводчик.
Audiatur et altera pars !
Kot4512
Родился
Сообщения: 12
Зарегистрирован: Вт фев 17, 2026 11:58:56

Re: Дизассемблирование прошивки siemens (infeneon) C167CS

Сообщение Kot4512 »

У меня вот новый вопрос появился: IDA почему-то изначально и даже после моей настройки неправильно интерпретирует большую часть объявлений прерываний.
Пример плохой интерпретации:
ROM:00000040: CC0INT:
jmps 9, 250h; 90250h
Пример хорошей интерпретации:
ROM:00000028 BTRAP:
jmps 0, BTRAP_HANDLER
В плохом примере у нас переход к 9-му сегменту кода которого просто не существует, также как и адреса 0x90250 т.к моя прошивка весит всего ровно 512 Кбайт и её граница по адресам это 0x7FFFF, но уж никак не 0x90250. И все валидные объявления прерываний переходят к 0-му сегменту (по поим наблюдениям), а невалидные к 9-му.
Как это выправить?
Мои настройки: удалил все (сегменты кроме ROM) т.к у меня в файле помимо ROM ничего то и нет, расширил сегмент ROM до границ файла.
P.S: Под сегментами в настройках я имел ввиду разделы такие как: ROM, XRAM, IRAM и т.д, открывающиеся через Shift+F7
Ответить

Вернуться в «Разные вопросы по МК»