x64 дизасм/дебагер и как найти все функции?
От: ksd Россия  
Дата: 29.06.16 15:01
Оценка:
дд!

два вопроса:

1. подскажите хороший x64 дизассемблер/дебаггер, желательно бесплатный, для реверс-инжиниринга прог.

2. подскажите простейший путь найти все статические функции в exe/dll, включая не импортируемые, конечно, например, хорошую удобную таблицу опкодов, чтобы сделать хотя бы правильный перебор всех инструкций и выделить все возможные call-ы.


заранее спасибо!
Re: x64 дизасм/дебагер и как найти все функции?
От: Mna 404 and heavy formation
Дата: 29.06.16 20:43
Оценка:
Здравствуйте, ksd, Вы писали:
ksd>1. подскажите хороший x64 дизассемблер/дебаггер, желательно бесплатный, для реверс-инжиниринга прог.

Radare2 смотрел?

ksd>2. подскажите простейший путь найти все статические функции в exe/dll, (...)

IDA Pro видел или принципиально чтoб OSS?
Re: x64 дизасм/дебагер и как найти все функции?
От: b0r3d0m  
Дата: 30.06.16 06:53
Оценка:
ksd>1. подскажите хороший x64 дизассемблер/дебаггер, желательно бесплатный, для реверс-инжиниринга прог.

x64dbg
Re[2]: radare2 посмотрел.
От: ksd Россия  
Дата: 30.06.16 15:23
Оценка:
Mna>Radare2 смотрел?
Без гуя сложновато, пока пользуюсь arkdasm. Вообще хотелось бы, чтобы дасм позволял искать по бинарному коду, как по текстовым исходникам

ksd>>2. подскажите простейший путь найти все статические функции в exe/dll, (...)

Mna>IDA Pro видел или принципиально чтoб OSS?
Что такое OSS?
IDA Pro еще не смотрел, не знаю, стоит ли, все же оно сильно платное, придется где-то по торрентам качать и на работу тащщить: могут вопросы появиться у руководства.
Re[2]: да, смотрел такой, пока не очень разобрался
От: ksd Россия  
Дата: 30.06.16 15:24
Оценка:
Здравствуйте, b0r3d0m, Вы писали:

ksd>>1. подскажите хороший x64 дизассемблер/дебаггер, желательно бесплатный, для реверс-инжиниринга прог.


B>x64dbg

как то сложно его заставить сделать то, что надо.
Re[3]: да, смотрел такой, пока не очень разобрался
От: b0r3d0m  
Дата: 30.06.16 15:44
Оценка:
ksd>как то сложно его заставить сделать то, что надо.
Например?
Re[3]: radare2 посмотрел.
От: EreTIk EreTIk's Box
Дата: 30.06.16 15:53
Оценка:
Здравствуйте, ksd, Вы писали:
ksd>Без гуя сложновато, пока пользуюсь arkdasm. Вообще хотелось бы, чтобы дасм позволял искать по бинарному коду, как по текстовым исходникам

HIEW такое умеет:

С той же самой версии 5.00 ТОЛЬКО В РЕЖИМЕ ДИЗАССЕМБЛЕРА можно искать команды по шаблону. (Про шаблоны см. выше). То есть если при вводе ассемблерной команды встречается в строке любой символ шаблона то пойдет поиск по шаблону, если нет — команда просто ассемблируется. Насильно ассеблировать команду можно комбинацией CtrlEnter, например при 'mov eax,[eax*2]'

Например: в режиме Decode <F7><F7>"mov ax,*" будет искать "mov ax,1234h", "mov ax,sp", и т.д.


ksd>...например, хорошую удобную таблицу опкодов, чтобы сделать хотя бы правильный перебор всех инструкций и выделить все возможные call-ы.

А чем мануал от Intel не устраивает?

Volume 2: Includes the full instruction set reference, A-Z, in one volume. Describes the format of the instruction and provides reference pages for instructions.


Только перебором опкодов всех функций не найти. Например, таблица виртуальных функций в C++: адреса функций хранятся в таблицах произвольной длины, нет прямых call/jmp на адреса начала функций, а вызовы происходят опосредовано. Как-то так (вызов IUnknown::Release на x86):
mov          ecx,[eax][8]
call         ecx


Или другой пример: адрес функции (не вызываемой напрямую), переданный как параметр в другую функцию — обработчик оконной процедуры, например.


На x64 в PE есть огромная подсказка в виде RUNTIME_FUNCTION: CodeMachine: X64 Deep Dive.
В этой теме было обсуждение
Автор: Евгений Музыченко
Дата: 04.02.16
Re[3]: radare2 посмотрел.
От: Mna 404 and heavy formation
Дата: 30.06.16 16:09
Оценка: 4 (1)
Здравствуйте, ksd, Вы писали:

Mna>>Radare2 смотрел?

ksd>Без гуя сложновато,
Bokken ? https://inguma.eu/projects/bokken

ksd> пока пользуюсь arkdasm. Вообще хотелось бы, чтобы дасм позволял искать по бинарному коду, как по текстовым исходникам


HtEditor? http://hte.sourceforge.net/downloads.html
https://github.com/sebastianbiallas/ht

ksd>>>2. подскажите простейший путь найти все статические функции в exe/dll, (...)


Mna>>IDA Pro видел или принципиально чтoб OSS?

ksd>Что такое OSS?
Open source software

ksd>IDA Pro еще не смотрел, не знаю, стоит ли, все же оно сильно платное, придется где-то по торрентам качать и на работу тащщить: могут вопросы появиться у руководства.


Snowman decompiler?
Re[2]: x64 дизасм/дебагер и как найти все функции?
От: redp Ниоткуда redplait.blogspot.com
Дата: 30.06.16 20:46
Оценка:
Mna>Radare2 смотрел?
не надо его смотреть
это убожество даже с релоками в pe не умеет
паранойя не болезнь, а критерий профпригодности
Re[4]: да вот
От: ksd Россия  
Дата: 01.07.16 07:38
Оценка:
Здравствуйте, b0r3d0m, Вы писали:

ksd>>как то сложно его заставить сделать то, что надо.

B>Например?

есть dll-ка, надо ее дизассемблировать просто, открываешь, и?...

ладно, так не хочет, запускаем прогу, аттачимся к ней, что то показывает, но пол функционала не понятно, как запустить, как искать нужные строки куски кода?

arkdasm мало отличается. но им выгружаешь asm файл на диск, по asm файлу можно найти то, что надо, в самом гуе посмотреть по адресам дамп: все просто и понятно без мануалов.
Re[4]: ну, мне надо найти все глобальные статические функции
От: ksd Россия  
Дата: 01.07.16 10:40
Оценка:
Здравствуйте, EreTIk, Вы писали:

ETI>Здравствуйте, ksd, Вы писали:

ksd>>Без гуя сложновато, пока пользуюсь arkdasm. Вообще хотелось бы, чтобы дасм позволял искать по бинарному коду, как по текстовым исходникам

ETI>HIEW такое умеет:

ETI>

ETI>С той же самой версии 5.00 ТОЛЬКО В РЕЖИМЕ ДИЗАССЕМБЛЕРА можно искать команды по шаблону. (Про шаблоны см. выше). То есть если при вводе ассемблерной команды встречается в строке любой символ шаблона то пойдет поиск по шаблону, если нет — команда просто ассемблируется. Насильно ассеблировать команду можно комбинацией CtrlEnter, например при 'mov eax,[eax*2]'

ETI>Например: в режиме Decode <F7><F7>"mov ax,*" будет искать "mov ax,1234h", "mov ax,sp", и т.д.


ksd>>...например, хорошую удобную таблицу опкодов, чтобы сделать хотя бы правильный перебор всех инструкций и выделить все возможные call-ы.

ETI>А чем мануал от Intel не устраивает?
ETI>

ETI>Volume 2: Includes the full instruction set reference, A-Z, in one volume. Describes the format of the instruction and provides reference pages for instructions.


ETI>Только перебором опкодов всех функций не найти. Например, таблица виртуальных функций в C++: адреса функций хранятся в таблицах произвольной длины, нет прямых call/jmp на адреса начала функций, а вызовы происходят опосредовано. Как-то так (вызов IUnknown::Release на x86):

ETI>
ETI>mov          ecx,[eax][8]
ETI>call         ecx
ETI>

класс-мемеберы не очень нужны на данный момент.

ETI>Или другой пример: адрес функции (не вызываемой напрямую), переданный как параметр в другую функцию — обработчик оконной процедуры, например.

да, это тяжелый случай...

ETI>На x64 в PE есть огромная подсказка в виде RUNTIME_FUNCTION: CodeMachine: X64 Deep Dive.

ETI>В этой теме было обсуждение
Автор: Евгений Музыченко
Дата: 04.02.16
Re: x64 дизасм/дебагер и как найти все функции?
От: Denwer Россия  
Дата: 03.07.16 18:51
Оценка:
Здравствуйте, ksd, Вы писали:

ksd>дд!


ksd>два вопроса:


ksd>1. подскажите хороший x64 дизассемблер/дебаггер, желательно бесплатный, для реверс-инжиниринга прог.


ksd>2. подскажите простейший путь найти все статические функции в exe/dll, включая не импортируемые, конечно, например, хорошую удобную таблицу опкодов, чтобы сделать хотя бы правильный перебор всех инструкций и выделить все возможные call-ы.



ksd>заранее спасибо!


Можешь не тратить время на пробы дизасмов, сразу ищи IDA Pro и пользуйся. Пока еще нет ничего и близко к функционалу иды.
Re[4]: упдейт по x64dbg - разобрался с ним
От: ksd Россия  
Дата: 13.07.16 14:13
Оценка:
Хвалил arkdasm, но x64dbg оказался много круче, позволил решить поставленную задачу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.