Сейчас на форуме: vsv1, _MBK_ (+3 невидимых)

 eXeL@B —› Вопросы новичков —› Дизасемблер
Посл.ответ Сообщение


Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 15 декабря 2007 22:09
· Личное сообщение · #1

Нужно написать свой дизасм.
Задача специфическая и готовые движки не подходят... Тось они бы подошли но править и разбираться в чужом коде проще свой имхо написать.
Собсна вопрос :
Дайте плиз прямой линк на "Интеловские талмуды" о которых столько говорят))) искал на intel.com по "documentation" , "talmud" , вобщем нифига не нашел...

-----
Researcher




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

Создано: 15 декабря 2007 23:09
· Личное сообщение · #2

www.intel.com/products/processor/manuals/index.htm




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 16 декабря 2007 10:17 · Поправил: s0larian
· Личное сообщение · #3

overwriter, IMHO ты в корне не прав. Привить/дополнять чужой рабочий код проще чем кодить своё. Ессно, не всё так чёрно/бело. Я uоворю про живой, рабочий код в который вложено время, который отлажет, в котором исправлены баги... А так, будешь неделю разбираться с mod r/m префиксами...

Посмотри libdisasm2 из the bastard.



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

Создано: 17 декабря 2007 13:56 · Поправил: robo9
· Личное сообщение · #4

Есть замечательная дока: The Art of Disassembly. Написанная Zero, CutedEvil & crick. Это целая книга - посвящённая как раз теме написания дизассемблера. Книга на английском но читается легко.

Можешь скачать вот www.rdata.name/ArtOfDisassembly.rar




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 17 декабря 2007 18:53
· Личное сообщение · #5

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

-----
Researcher





Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

Создано: 17 декабря 2007 19:18 · Поправил: kioresk
· Личное сообщение · #6

overwriter,

тебе явно пригодится хороший справочник по опкодам:

x86 Instruction Reference http://ref.x86asm.net/




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 17 декабря 2007 20:12
· Личное сообщение · #7

overwriter, чувак, ну не пиши с нуля. Качни libdisasm2 - в ней есть и разбор опкодов, и прификсы и operands.




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 17 декабря 2007 22:08
· Личное сообщение · #8

kioresk, ухты спасибо!!!
s0larian, ды я все посмотрю...

Кстати может и по кодоэмуляторам инфа найдется?

-----
Researcher





Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

Создано: 18 декабря 2007 11:33
· Личное сообщение · #9

overwriter,

недавно тоже искал информацию по эмуляции кода, мне пригодились статьи с уинка (хоть они и 2004-го года). Дальше не искал, т.к. временно задвинул на это дело.

Эмуляция программного кода http://www.uinc.ru/articles/47/
Уязвимости эмуляторов кода http://www.uinc.ru/articles/48/
Анализаторы кода в антивирусах http://www.uinc.ru/articles/45/ (частично)

Буду рад если кто-нибудь подкинет еще информации по эмуляции кода, т.к. мне оно тоже позже пригодится.




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 18 декабря 2007 23:38
· Личное сообщение · #10

kioresk, читал...

-----
Researcher





Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 30 декабря 2007 01:03
· Личное сообщение · #11

kioresk пишет:
Буду рад если кто-нибудь подкинет еще информации по эмуляции кода, т.к. мне оно тоже позже пригодится.

Любопытно для чего? Мож что-небудь интересное собрался писать? Расскажи.. тогда

-----
Researcher




Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 30 декабря 2007 01:33
· Личное сообщение · #12

overwriter
А Вы посмотрите темы с постами kioresk'а,сразу поймете о чем речь




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 03 января 2008 23:08
· Личное сообщение · #13

Мож деморфер для криптора?

kioresk, больше ничего по эмуляторам нету?

-----
Researcher





Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

Создано: 04 января 2008 02:39 · Поправил: kioresk
· Личное сообщение · #14

overwriter,

нет, пока не возвращался к этой задаче. Плюс недавно безвозвратно удалил диск со всей инфой и наработками по реверсу и теперь потихоньку собираю все заново...

Мож деморфер для криптора?

да, эмуляция кода нужна для первого этапа восстановления виртуализованного кода — деобфускации определенных инструкций.




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 04 января 2008 13:49
· Личное сообщение · #15

Была еще одна старая статья на васме. Но она тож не руководство.

Самая главная проблема это как правильно дасмить инструкцию. Плюс проблема хочется сделать универсальное поэтому описание для ядра вынес в отдельный файл...Нужно как-то кратко описать как дасить команды... пока ничего не придумал

-----
Researcher




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

Создано: 07 января 2008 22:37
· Личное сообщение · #16

В книге Ассмеблер и дизассемблирование
автор Владислав ПИРОГОВ написано как делают простейшее дизассемблирование, в т.ч. инфа по опкодам, префиксам, формату команд микропроцессора Intel.
Как дасить коммадны нужно чтоб дасм не просто жрал байты, а анализировал каждую комманду,
чтоб если проанализировался переход, то анализ прерывался на месте перехода и начинался на том месте, куда этот переход идет, иначе получится дизасм, который код от данных отличить не сможет
по опкодам есть хороший файл в масме приведу его.

9487_07.01.2008_CRACKLAB.rU.tgz - mnemonix.exe




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 09 января 2008 01:23
· Личное сообщение · #17

GodFather, угу познавательная книга для новичков.

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

-----
Researcher





Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 13 января 2008 14:40
· Личное сообщение · #18

Извратился по-страшному стал писать извращенное ядро которое будет эмулировать не только х86, но все что угодно хоть команды виртуальных машин.

Появилась проблемка... нужно в отдельном файлике сделать все описания... и как дасмить команду и как ее выполнять...
Собственно : нужен такой небольшой язык скриптовый чтобы все это описать... посоветуйте что-небудь такое не мудренное (чтобы модифицировать можно было).

-----
Researcher





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 13 января 2008 22:04
· Личное сообщение · #19

overwriter пишет:
ядро которое будет эмулировать не только х86, но все что угодно хоть команды виртуальных машин.

в данном случае лучше не текстовым файликом синтаксис описывать, а сделать поддержку процессорных модулей - как в IDA, таким образом ты значительно упростишь и разработку и увеличишь быстродействие парсера (т.к. он будет в виде бинарных модулей под процессоры, а не скриптом)

-----
EnJoy!





Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 14 января 2008 17:04
· Личное сообщение · #20

Jupiter, я для чего хочу так сделать. Чтобы например реверсишь виртуальную машину... потихоньку пишешь скрипт... а потом и отлаживать ее можно будет... а если в виде бинарных модулей делать, то получиться что придеться писать тулзу которая будет эти модули делать... а из чего делать как не из скриптов... тоесть вроде компилятора работать будет... тоже нужен маленький скриптовый язык.

-----
Researcher





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 14 января 2008 17:47 · Поправил: Jupiter
· Личное сообщение · #21

overwriter
идея понятна. типа конструктор процессора.
тогда нужно продумать описание процессора, чтобы система была настолько проста, чтобы ею имело смысл пользоваться ;)

к тому же я так понял, что ты хотел заюзать двиг IDA - для неё и так есть масса процессорных модулей. поэтому может имеет смысл посмотреть в сторону поддрежки процессорных модулей иды. на OpenRCE была статья Defeating HyperUnpackMe2 With an IDA Processor Module https://www.openrce.org/articles/full_view/28 , в ней описывается использование процессорного модуля для IDA (под виртуальную машину).

-----
EnJoy!



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


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