Сейчас на форуме: Lohmaty (+7 невидимых) |
eXeL@B —› Вопросы новичков —› Реверс полного функционала древней dll-ки для переписывания на другой ЯП. (Плагины для IDA) |
Посл.ответ | Сообщение |
|
Создано: 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 снимает. У вас другая задача и нужен другой набор плагов." Но не сказали, какой. и отправили сюда. Ещё раз спасибо за внимание. |
|
Создано: 20 марта 2017 17:08 · Личное сообщение · #2 denixx самый главный плагин.. это мозг.. незнаю как лихо у вас получится сразу в джаву.. я б сразу ободрал ее в асм.. или си (что предпочтительней).. чтоб был рабочий прототип.. и сохранился функционал. а потом уже мигрировал в джаву ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 20 марта 2017 17:08 · Поправил: dosprog · Личное сообщение · #3 А что за DLL - размер, на чём писалась? Просто может получиться, что её полностью дизассемблировать смысла нет, проще сделать заново, подсматривая в ту старую. Декомпилировать же вообще сходу ничего путного не даст. Кстати, если DLL делалась на Паскале, то можно попробовать какой-нибудь из декомпиляторов Delphi - может быть больше толку, чем от IDA. Как таковые плагины в IDA особо и не нужны, то для сильно крутых. Хватает базового функционала. |
|
Создано: 20 марта 2017 18:40 · Личное сообщение · #4 denixx давайте я переведу то что вы написали с вашего языка на язык профессионалов я купил новую машину хочу на ней ездить лучше и быстрее всех расскажите какой водой лучше ее мыть, каким бензином заправлять, какие наклейки на бампер приклеить что бы ветерок скользил и машина не тормозилась буду рад выслушать ваши советы ездить то я конечно смогу, но хочется что бы с ветерком.... | Сообщение посчитали полезным: bartolomeo |
|
Создано: 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 Ну такое. Думал, может есть приблуды к иде какие-то, без которых реверсить никак нельзя Уж очень деревянно она выглядит. Хотя, конечно, я даже не прочёл книгу, о чём, собственно речь, это как пытаться пользоваться прибором без чтения мануала |
|
Создано: 20 марта 2017 22:25 · Личное сообщение · #6 использую всегда девственную ида без плагинов, даже питон не нужен использую исключительно для реверса в исходный код, ничего деревянного не замечал код на выходе практически всегда идеальный нафиг еще какие то плагины ? не ну может для других целей и нужны, но для реверса точно нет вы хотите свителки и перделки для феррари хотя на ней еще толком не ездили поюзайте ида хотя бы годик, потом думайте чего вам не хватает Добавлено спустя 1 минуту а что много мануалов прочитали по тому же андроиду ? а по иос от епла ? |
|
Создано: 20 марта 2017 23:13 · Личное сообщение · #7 denixx пишет: Хотя, конечно, я даже не прочёл книгу я тоже книгу не читал.. denixx пишет: VodoleY пишет: а потом уже мигрировал в джаву Смысла особо в этом нет, она уже работает. ну короче когда начнете переносить код.. тогда меня поймете.. задавайте правильные вопросы.. получайте правильные ответы ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 20 марта 2017 23:23 · Поправил: dosprog · Личное сообщение · #8 |
|
Создано: 20 марта 2017 23:29 · Личное сообщение · #9 denixx пишет: Какие плагины мастхев для RE в IDA? рельсы (декопилятор), диффер (анализ изменений в версиях или анализ патчей), скриптовый движок (автоматизация рутины или написание узкоспециализированных плагинов) к ида с рельсами, все остальное либо пишется парой сотней строк в сприптинге или что то специфическое (вкусовщина). |
|
Создано: 21 марта 2017 02:17 · Личное сообщение · #10 |
|
Создано: 21 марта 2017 02:38 · Личное сообщение · #11 |
|
Создано: 21 марта 2017 12:05 · Личное сообщение · #12 denixx На софт натравите хоть какой-то анализатор, типа ----- Stuck to the plan, always think that we would stand up, never ran. | Сообщение посчитали полезным: denixx |
|
Создано: 26 марта 2017 17:17 · Личное сообщение · #13 |
|
Создано: 26 марта 2017 20:17 · Личное сообщение · #14 denixx Если верить Die, то нативная либа скомпиленная. Хороший (относительно) удобный вариант. Не упаковано. Далее находите в таблице экспорта нужные функции (может, вам не всю либу надо переписать), и можно Hex-Rays юзать, можно асм код анализировать. Советую посмотреть туторы Из книгсоветую больше сосредоточиться не на книгах по Ida, потому что глубокий тюнинг может и не понадобиться. Лучше книгу по ассемблеру почитать. И на первых порах можно посмотреть ----- Stuck to the plan, always think that we would stand up, never ran. | Сообщение посчитали полезным: RideTheBytening |
|
Создано: 27 марта 2017 08:09 · Личное сообщение · #15 |
|
Создано: 09 апреля 2017 03:50 · Личное сообщение · #16 denixx, смотря как далеко вы можете пойти в выбраном ЯП. Всетоке жаба же. В своем рипе rthdasio.dll (рилтаймовый ввод-ввывод звука) под ассемблер d7, пришлось даже пастить и рерайтить даже приплюснутые навороты, ну и немножко хексрея, да если интересно вот, опсуждалась какая практика лучше: http://tippach.business.t-online.de/asio4all/phpbb/viewtopic.php?f=8&t=1077 |
|
Создано: 20 апреля 2017 04:08 · Личное сообщение · #17 Вообще, я бы сделал так (если там и вправду нельзя ничего вытянуть). 1) Подсмотрел бы все вызовы функций каким-нибудь монитором. 2) Посмотрел бы для лучшего понимания дерево вызовов/псевдокод в IDA HexRays. 3) Нарисовал бы в тетрадке подробную схему и переписал на С++ (ну, или что там у вас - Java) А ускорить понимание того, что происходит в бинарнике, можно только двумя путями - дизассемблирование или декомпиляция) Переименовывайте строки, методы, чтобы было максимально всё понятно. Хотя, честное слово, я не вижу смысла так запариваться. Если есть чёткое понимание поставленной задачи, проще переписать с нуля. А в противном случае, можно использовать DLL или выдрать код) ----- Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей. |
|
Создано: 14 ноября 2017 09:06 · Личное сообщение · #18 |
eXeL@B —› Вопросы новичков —› Реверс полного функционала древней dll-ки для переписывания на другой ЯП. (Плагины для IDA) |