Сейчас на форуме: Lohmaty (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Реверс полного функционала древней dll-ки для переписывания на другой ЯП. (Плагины для IDA)
Посл.ответ Сообщение

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

Создано: 20 марта 2017 17:36
· Личное сообщение · #1

Дратути.

Сразу извиняюсь за нубские вопросы, но кажется, мне нужна помощь.
Я тут твёрдо решил реверснуть один dll, хочу заморочиться и основательно копнуть, что же он делает, чтобы переписать его на java.

Раздобыл IDA 6.8 в "базовой комплектации".

Попробовал - уже вменяемо, кое-что выходит.
Вот только немного "страшненько" выглядит интерфейс иды.
Вкуриваю в реверсенный код в дебаге, в декомпиляте в основном, но некоторые моменты лучше смотреть всё же в asm-версии, типа куда смотрит вот эта переменная. Например, для поинтеров это актуально. А то наводишься на переменную, а оно показывает тебе какую-то чушь. Больше инфы бы показывало, что ли.

Уже узнал, что есть куча плагинов к иде, бери - не хочу.

https://github.com/onethawt/idaplugins-list Например, вот целый список.
Из того, что есть в башке: в универе учил asm, писал под MK51 даже . На данный момент знаю и пишу на java.
Бинарник родом из 99го года, тогда и WinXP не было. Вот надоело городить костыли в проекте вокруг него, хочу понять основную логику работы и переписать на джаву.

Поэтому разрешите несколько вопросов:
1) Какие плагины мастхев для RE в IDA? Может быть можно сильно улучшить навигацию, или в целом сделать интерфейс IDA поюзерфрендливее, что ли.
2) Как можно помочь процессу RE?

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

Цель поставлена, так что проблемы разобраться для себя не вижу совсем.
Спасибо!

P.S.: Пожалуйста, если не намерены помочь - проигнорируйте этот пост.
Пишу сюда в первую очередь потому, что поиском по "reverse ida" находится куча постов reversecode , ссылки на подуставшие книги, и подобная муть.
Помочь я прошу разобраться с первичным вхождением в тему, вспомните, как Вы начинали что-то делать, и сталкивались с ворохом инфы, которая, к тому же, уже может оказаться неактуальной на момент поиска.
В другом месте мне ответили, что мол "Обычно народ защиту/проверку в ida снимает. У вас другая задача и нужен другой набор плагов."
Но не сказали, какой. и отправили сюда.

Ещё раз спасибо за внимание.



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

Создано: 20 марта 2017 17:08
· Личное сообщение · #2

denixx самый главный плагин.. это мозг.. незнаю как лихо у вас получится сразу в джаву.. я б сразу ободрал ее в асм.. или си (что предпочтительней).. чтоб был рабочий прототип.. и сохранился функционал. а потом уже мигрировал в джаву

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




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

Создано: 20 марта 2017 17:08 · Поправил: dosprog
· Личное сообщение · #3

А что за DLL - размер, на чём писалась?

Просто может получиться, что её полностью дизассемблировать смысла нет,
проще сделать заново, подсматривая в ту старую.

Декомпилировать же вообще сходу ничего путного не даст.

Кстати, если DLL делалась на Паскале, то можно попробовать какой-нибудь из декомпиляторов Delphi - может быть больше толку, чем от IDA.

Как таковые плагины в IDA особо и не нужны, то для сильно крутых.
Хватает базового функционала.






Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 20 марта 2017 18:40
· Личное сообщение · #4

denixx
давайте я переведу то что вы написали с вашего языка на язык профессионалов

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

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

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

Создано: 20 марта 2017 22:20
· Личное сообщение · #5

VodoleY пишет:
самый главный плагин.. это мозг..

Это вообще без сомнений

VodoleY пишет:
незнаю как лихо у вас получится сразу в джаву..

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

VodoleY пишет:
а потом уже мигрировал в джаву

Смысла особо в этом нет, она уже работает. Просто хочется полностью спрыгнуть с win-only формы выполнения кода, сейчас к этой dll-ке притянут костыль в виде wine, чтобы екзешник стартовать в линуксе.
Короче, костыль костыльный. Вот, честно, надоело с ней бороться.

dosprog пишет:
А что за DLL - размер, на чём писалась?


Сие покрыто мраком, но IDA говрит, мол:
"Plan FLIRT signature: Microsoft VisualC 2-11/net runtime
autoload.cfg: vc32rtf.sig autoloads mssdk.til
Assuming __cdecl calling convention by default
Type library 'mssdk' loaded. Applying types...
Types applied to 82 names.
...
Using FLIRT signature: Microsoft VisualC 2-11/net runtime"
Правда, в гугле пишут, мол неклёвая это сигнатура, должно быть что-то получше.

dosprog пишет:
Как таковые плагины в IDA особо и не нужны

Ага. Тогда понятно.

reversecode
Ну такое. Думал, может есть приблуды к иде какие-то, без которых реверсить никак нельзя
Уж очень деревянно она выглядит.
Хотя, конечно, я даже не прочёл книгу, о чём, собственно речь, это как пытаться пользоваться прибором без чтения мануала




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 20 марта 2017 22:25
· Личное сообщение · #6

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

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

Добавлено спустя 1 минуту
а что много мануалов прочитали по тому же андроиду ? а по иос от епла ?



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

Создано: 20 марта 2017 23:13
· Личное сообщение · #7

denixx пишет:
Хотя, конечно, я даже не прочёл книгу

я тоже книгу не читал..
denixx пишет:
VodoleY пишет:
а потом уже мигрировал в джаву
Смысла особо в этом нет, она уже работает.

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

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




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

Создано: 20 марта 2017 23:23 · Поправил: dosprog
· Личное сообщение · #8

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





Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 20 марта 2017 23:29
· Личное сообщение · #9

denixx пишет: Какие плагины мастхев для RE в IDA?

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



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

Создано: 21 марта 2017 02:17
· Личное сообщение · #10

shellstorm все вы не о том.. не о том..

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




Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 21 марта 2017 02:38
· Личное сообщение · #11

VodoleY пишет: shellstorm все вы не о том.. не о том..

закусывай.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 21 марта 2017 12:05
· Личное сообщение · #12

denixx

На софт натравите хоть какой-то анализатор, типа --> DIE <--, а ещё лучше - софт выложите, или оно там ценное что-то такое, или NDA, и выкладывать никак нельзя?

-----
Stuck to the plan, always think that we would stand up, never ran.


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

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

Создано: 26 марта 2017 17:17
· Личное сообщение · #13

ARCHANGEL пишет:
анализатор

Спасибо
Извините, как раз под NDA.

DIE сказал, что:
PE: compiler: Microsoft Visual C/C++(5.0)[-]
PE: linker: Microsoft Linker(5.0)[DLL32]




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 26 марта 2017 20:17
· Личное сообщение · #14

denixx
Если верить Die, то нативная либа скомпиленная. Хороший (относительно) удобный вариант. Не упаковано. Далее находите в таблице экспорта нужные функции (может, вам не всю либу надо переписать), и можно Hex-Rays юзать, можно асм код анализировать.

Советую посмотреть туторы --> Раз <-- и --> Два <--

Из книгсоветую больше сосредоточиться не на книгах по Ida, потому что глубокий тюнинг может и не понадобиться. Лучше книгу по ассемблеру почитать. --> Вот эту <--. Можно нагуглить ссылку для скачивания.

И на первых порах можно посмотреть --> Искусство Дизассемблирования <--

-----
Stuck to the plan, always think that we would stand up, never ran.


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

Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 27 марта 2017 08:09
· Личное сообщение · #15

denixx
Выложите уже dll, посмотреть, может советы какие дам.



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

Создано: 09 апреля 2017 03:50
· Личное сообщение · #16

denixx, смотря как далеко вы можете пойти в выбраном ЯП. Всетоке жаба же.

В своем рипе rthdasio.dll (рилтаймовый ввод-ввывод звука) под ассемблер d7, пришлось даже пастить и рерайтить даже приплюснутые навороты, ну и немножко хексрея, да
если интересно вот, опсуждалась какая практика лучше:
http://tippach.business.t-online.de/asio4all/phpbb/viewtopic.php?f=8&t=1077




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 20 апреля 2017 04:08
· Личное сообщение · #17

Вообще, я бы сделал так (если там и вправду нельзя ничего вытянуть).

1) Подсмотрел бы все вызовы функций каким-нибудь монитором.
2) Посмотрел бы для лучшего понимания дерево вызовов/псевдокод в IDA HexRays.
3) Нарисовал бы в тетрадке подробную схему и переписал на С++ (ну, или что там у вас - Java)

А ускорить понимание того, что происходит в бинарнике, можно только двумя путями - дизассемблирование или декомпиляция)

Переименовывайте строки, методы, чтобы было максимально всё понятно.

Хотя, честное слово, я не вижу смысла так запариваться. Если есть чёткое понимание поставленной задачи, проще переписать с нуля. А в противном случае, можно использовать DLL или выдрать код)

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




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

Создано: 14 ноября 2017 09:06
· Личное сообщение · #18

denixx привет, расскажи, как продвинулся, пардон за некропостинг!


 eXeL@B —› Вопросы новичков —› Реверс полного функционала древней dll-ки для переписывания на другой ЯП. (Плагины для IDA)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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