Сейчас на форуме: cppasm, asfa (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Написайть свой дизассемблер под х86
Посл.ответ Сообщение

Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 апреля 2016 15:21 · Поправил: huntercs16
· Личное сообщение · #1

Посмотрел в интернете пару уроков, говорят что это не очень сложно.
Все сводится к:
1)Анализ первых бит комманды, на основе этого получаем тип
2)На основе последующих бит получаем аргументы(операнды) команды
Кто нибудь сталкивался с подобным? Где можно посмотреть про связь бит/комманд?



Ранг: 33.4 (посетитель), 24thx
Активность: 0.020
Статус: Участник

Создано: 07 апреля 2016 15:26 · Поправил: redlord
· Личное сообщение · #2

huntercs16
в мануалах intel
для примера:
__http://www.capstone-engine.org/




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

Создано: 07 апреля 2016 15:31 · Поправил: Dart Sergius
· Личное сообщение · #3

Посмотрите реализацию в той же самой olly. Там исходы дизасма открыты. Хотя самое эффективное будет изучение уже написанных дизассемблеров с просмотров документации) ( можно посмотреть код бекенда llvm - как строиться asm код )




Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 07 апреля 2016 16:17
· Личное сообщение · #4

huntercs16 пишет:
Где можно посмотреть про связь бит/комманд?


--> Link <--

-----
http://ntinfo.biz


| Сообщение посчитали полезным: Rainbow

Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 08 апреля 2016 08:19
· Личное сообщение · #5

huntercs16 вся беда даже не в написании дизасма. их много и разных и на разных ЯП. самая бяда всех движков это повыколупывать глючки потом. люди бьются годами подправляя баги.

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....


| Сообщение посчитали полезным: Rio, [wl], Artem_N

Ранг: 95.5 (постоянный), 36thx
Активность: 0.080.04
Статус: Участник

Создано: 08 апреля 2016 09:34
· Личное сообщение · #6

huntercs16 пишет:
Все сводится к:

к архитектуре цп



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 09 апреля 2016 16:51
· Личное сообщение · #7

Небольшая табличка опкод/команда

d0de_09.04.2016_EXELAB.rU.tgz - x86_opcode_structure_and_instruction_overview.pdf




Ранг: 104.9 (ветеран), 47thx
Активность: 0.040.02
Статус: Участник

Создано: 09 апреля 2016 21:31
· Личное сообщение · #8

Вот еще хорошая табличка: X86 Opcode and Instruction Reference



Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 апреля 2016 21:27
· Личное сообщение · #9

Парни, спасибо за советы, сорь что долго не отвечал

Насколько понимаю win32(беру для простоты XP) содержит всего с десяток комманд: push,jmp,call,add,sub, команды сопроцессора ( но только в калькуляторе =)).

Dart Sergius

Мне нравится программирование на Джаве - хороший яп, это совсем не делфи)
Нету нигде дизасма на джаве? Думаю что си не является панацеей в данном вопросе.

----

Всё таки английский язык и рассматриваемый мною вопрос кажется интересным, но представляет собой достаточно большой порог вхождения + ловля багов + кроме дизассемблерных комманд ещё есть ресурсы и секции с данными.
Поставлю вопрос ребром - никто таким не занимался сам? Есть что нибудь попроще?



Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 17 апреля 2016 23:33
· Личное сообщение · #10

huntercs16 пишет:
Нету нигде дизасма на джаве?

Раз: http://www.capstone-engine.org
Два: https://github.com/gdabah/distorm

-----
все багрепорты - в личные сообщения




Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 18 апреля 2016 00:22 · Поправил: dosprog
· Личное сообщение · #11

huntercs16 пишет:
Насколько понимаю win32(беру для простоты XP) содержит всего с десяток комманд: push,jmp,call,add,sub,


Ну да. И куча форм этих команд, зависящих от режима и способа адресации.
Есть же готовые реализации, что тут гадать?..

huntercs16 пишет:
Поставлю вопрос ребром - никто таким не занимался сам? Есть что нибудь попроще?

То есть интересует готовый код? - так его полно на паблике.
Приватные версии мало кому помогут.

И при чём тут ресурсы к дизассемблеру?..
В общем, раз речь пошла об иконках, то тема на годы





Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 апреля 2016 14:17 · Поправил: huntercs16
· Личное сообщение · #12

HandMill пишет:
Раз: http://www.capstone-engine.org
Два: https://github.com/gdabah/distorm

Посмотрел, во втором как раз перечислены все опкоды в одном Java классе.
Не нашел там PE анализатора.

Первый - это скорее набор классов на си, хотя ничего против си не имею, но шарп и джава проще.
Думаю что структура дизассемблера может быть такой:
1. анализатор pe заголовка
2. перевод опкодов в команды процессора(вроде нашел)
3. надо как то обработать ресурсы, т.к. они также входят в исполняемый файл.
4. QT или Swing GUI.

хочется все же иметь свои инструменты, а не готовые - самому интересно разобраться, чем то напоминает создание компьютерной игры, каждый по своему сходит с ума




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 18 апреля 2016 15:59
· Личное сообщение · #13

huntercs16 пишет:
Всё таки английский язык и рассматриваемый мною вопрос кажется интересным, но представляет собой достаточно большой порог вхождения

"Сорь", конечно, но по-моему вся тема содержит столько же смысла сколько и эта фраза.

huntercs16 пишет:
хочется все же иметь свои инструменты, а не готовые - самому интересно разобраться, чем то напоминает создание компьютерной игры, каждый по своему сходит с ума

Кому по-настоящему чего-то хочется, тот садится и молча делает, а не бесконечно жует уже сто раз пережеваное.

-----
Give me a HANDLE and I will move the Earth.


| Сообщение посчитали полезным: Gideon Vi

Ранг: 221.3 (наставник), 135thx
Активность: 0.190.07
Статус: Участник

Создано: 18 апреля 2016 18:30
· Личное сообщение · #14

huntercs16 пишет:
самому интересно разобраться, чем то напоминает создание компьютерной игры, каждый по своему сходит с ума

С возрастом пройдет, и придет понимание того, что потраченое на это время, можно было направить в другое, более полезное, русло. Например на изучение готовых инструментов, тысячи их, и не городить очередной велосипед.

-----
xchg dword [eax], eax




Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 апреля 2016 20:30
· Личное сообщение · #15

plutos пишет:
Кому по-настоящему чего-то хочется, тот садится и молча делает, а не бесконечно жует уже сто раз пережеваное

Действительно работы много как и уже готовых инструментов. Возможно по этим причинам писать не буду,про опкоды чтобы самому не городить огород мне уже подсказали.

Just do it уж извините больно на пикаперов похоже, что не зайду - все ддос атаки на сайт Лесли. Может и правда не в ту область крекинга лезу))


 eXeL@B —› Вопросы новичков —› Написайть свой дизассемблер под х86
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати