Уборка сахарного тростника. Сезонная. Пайка кастрюль. Сдельная. Предложения работы.
Ответить

Помощь в реверсе дизасме

Чт ноя 03, 2022 13:12:27

Доброго всем дня, спустя тонны лет всё же создал аккаунт и тут так как нужна помощь и помощник для моих разработок.

Опыт есть, инструменты есть, поиском пользовать умею.

На данный момент, что нужно:

Имеется очень непопулярный MCU (AVR, 91,x86, ARM мимо)

есть полная документация, и инструкциями ядра.
Есть ASM\DISASM. Bin->ASM, ASM->BIN причечем с исходниками CPP, PL, PY и таблицами Opcode

Пишу эмулятор, но не понимаю логики определения опкодов. Потому что и NOP = 0x90 и какой нибудь CMP = 0x90. и тд....

Команды от 1 до 8 байт. Длины команды не определены. Писать можно сюда или в ЛС.

С меня гарантии оформление на любых площадках (avito услуги, Fl.RU и проч.)

Таких задачек хватает, был бы рад найти компаньона с перспективой на постоянку или подработку.

Re: Помощь в реверсе дизасме

Чт ноя 03, 2022 21:32:48

Имеется очень непопулярный MCU .

Так что за процессор ? Для кого то и PIC непопулярный. Но у PIC нет длинных команд.

Re: Помощь в реверсе дизасме

Чт ноя 03, 2022 21:46:23

TakiJack, попробуйте мыслить гибче. Существуют бесмысленные команды (типа mov r0,r0), которые могут использоваться другим способом. Например (с потолка) опкод "mov r0,r0" = nop; "mov r1,r1" = set_flags; ...
Это надуманное, но есть и более приземленное, когда команда выполняется вполне логично, но в списке мнемоник отождествляется как _другая_ команда. Например, "sub r0,r0" признают командой "clr r0". Т.е. есть команда SUB, которая понимается и используется как SUB. Но, если у нее два операнда один и тот-же рег-р, то она "неожиданно превращается" в другую команду "CLR reg". При этом, в процессоре такой специализированной команды нет, это просто "фуфло". ))

add.
Как комментарий к вышесказанному, почитайте про NOP - https://ru.wikipedia.org/wiki/NOP

Re: Помощь в реверсе дизасме

Пт ноя 11, 2022 16:03:41

Система с "плавающей" длиной команд?
Один и тот же код для различных команд возможен в случае, если первый байт есть адрес субстраницы кодов команд.
А уже дальнейшие коды определяют конкретную команду.
:roll:
Ответить