eXeL@B —› Вопросы новичков —› Восстановление исходного кода dll |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 01 августа 2017 12:10 · Поправил: ElWray · Личное сообщение · #1 Добрый день, уважаемые участники! Передо мной стоит задача полного восстановления исходного кода небольшой dll библиотеки. Сама библиотека написана на языке C++ (Visual C++ 6.0). Что я хочу сделать: 1. Дизассемблировать библиотеку и получить на выходе asm файл, который можно будет превратить в obj. 2. Исследовать часть методов с помощью IDA Hex-Rays и переписать их на C / C++. 3. Слинковать ассемблерный obj с переписанным на C / C++ obj файлами. 4. Повторять до тех пор, пока не будут переписаны все методы на C / C++. Собственно вопрос: Перепробовал целую кучу дизассемблеров, но не нашел такого, который может дизассембировать exe в asm файл, и получить пригодный для компиляции код (asm в obj или exe). IDA-шный код не компилится. Подскажите наиболее пригодный для этого дизассемблер. Заранее спасибо! |
|
Создано: 01 августа 2017 12:20 · Поправил: DrVB_5_6 · Личное сообщение · #2 ElWray пишет: Подскажите наиболее пригодный для этого дизассемблер. Нет такого в природе и никогда не будет. Ручками в Ида (включая мозг) - лучшего варианта не найдёшь. а лучше сразу на "С" без асм, но квалификация определённая нужна... | Сообщение посчитали полезным: ElWray |
|
Создано: 01 августа 2017 13:39 · Личное сообщение · #3 |
|
Создано: 01 августа 2017 13:46 · Личное сообщение · #4 |
|
Создано: 01 августа 2017 13:53 · Личное сообщение · #5 |
|
Создано: 01 августа 2017 14:06 · Личное сообщение · #6 |
|
Создано: 01 августа 2017 14:18 · Личное сообщение · #7 |
|
Создано: 01 августа 2017 16:34 · Личное сообщение · #8 ElWray пишет: восстановления исходного кода небольшой dll библиотеки Если это не из "академического интереса", то сильно проще будет посмотреть общий алгоритм и воспроизвести на на C / C++ Если либа не представляет из себя какой-то "изолированный" уникальный крипто-механизм, или что-то подобное, нет вообще никакого смысла в реконструкции из дизасма. |
|
Создано: 02 августа 2017 04:08 · Личное сообщение · #9 |
|
Создано: 06 августа 2017 02:22 · Личное сообщение · #10 |
|
Создано: 06 августа 2017 02:26 · Личное сообщение · #11 ElWray пишет: Перепробовал целую кучу дизассемблеров, но не нашел такого, который может дизассембировать exe в asm файл, и получить пригодный для компиляции код (asm в obj или exe) бугага, как детская непосредственность. магии нет, все делается руками, а рутина сбрасывается на скрипты. ElWray пишет:Подскажите наиболее пригодный для этого дизассемблер IDA + скриптинг, лучшего ничего нет, тем более для нуба. |
|
Создано: 07 августа 2017 16:35 · Поправил: reversecode · Личное сообщение · #12 идашный код компилится, только надо ручками сначала все поправить была статья где то на народ ру, и линки на нее на васме и здесь на форуме https://exelab.ru/art/?action=view&id=600 а так вообще нормальные пацаны сразу из рейса в с++ переписывают и не парятся | Сообщение посчитали полезным: ElWray, shellstorm |
|
Создано: 08 августа 2017 22:00 · Личное сообщение · #13 difexacaw пишет: Зачем же вы берёте ТЗ, которое не можите выполнить(принципиально инструментов для автоматики нет). Ну уже где-то половину кода переписал, хотел немного упростить себе задачу. Да и был уверен, что прогу можно дизассемблировать и тут же ее собрать, а оказалось что нет ))) shellstorm пишет: IDA + скриптинг, лучшего ничего нет, тем более для нуба. Понял, спасибо. reversecode пишет: идашный код компилится, только надо ручками сначала все поправить была статья где то на народ ру, и линки на нее на васме и здесь на форуме https://exelab.ru/art/?action=view&id=600 а так вообще нормальные пацаны сразу из рейса в с++ переписывают и не парятся Спасибо большое за ссылку. Переписываю, правда на Си, а тут немного хотел себе упростить задачу. Запихнув ассемблерный код в Си-шный через директиву asm. Но получился облом. В любом случае всем спасибо! |
|
Создано: 10 августа 2017 19:10 · Личное сообщение · #14 |
|
Создано: 10 августа 2017 19:28 · Личное сообщение · #15 |
|
Создано: 10 августа 2017 21:20 · Личное сообщение · #16 |
|
Создано: 10 августа 2017 21:36 · Личное сообщение · #17 ElWray пишет: хотел немного упростить себе задачу. Да и был уверен, что прогу можно дизассемблировать и тут же ее собрать Это называется не упростить задачу, а создать непортабельного гомункула которого невозможно сопровождать и как то вменяемо развивать, такой подход годится максимум для кейгена или "привет мир" в фриланс-проекте. | Сообщение посчитали полезным: ElWray |
|
Создано: 10 августа 2017 21:49 · Личное сообщение · #18 |
|
Создано: 10 августа 2017 21:59 · Поправил: ElWray · Личное сообщение · #19 difexacaw пишет: Да проще всё, ты барыга. Помогите мне заработать шекель", так нужно было назвать топик. https://github.com/El-Wray/N2CadX ))) rmn пишет: Куда уж проще: нажал F5 в иде и сиди переименовывай переменные, да типы правильные прописывай... Ну где можно +- так и сделал. sendersu пишет: какой? PS не помню с какой версии VС++ отказалсь от asm {} перешли на интринсики. В 2017 проверял для Си проекта. Работает. shellstorm пишет: Это называется не упростить задачу, а создать непортабельного гомункула которого невозможно сопровождать и как то вменяемо развивать, такой подход годится максимум для кейгена или "привет мир" в фриланс-проекте. Хотел собрать монстра из Си кода и ассемблерного, и постепенно избавляться от ассемблерного. |
|
Создано: 10 августа 2017 22:14 · Личное сообщение · #20 |
|
Создано: 10 августа 2017 23:53 · Личное сообщение · #21 |
|
Создано: 11 августа 2017 00:14 · Личное сообщение · #22 |
|
Создано: 11 августа 2017 03:45 · Поправил: v00doo · Личное сообщение · #23 Добавлю еще тот факт, что можно студию заставить компилить интеловским компилером, который вроде как поддерживает директиву asm в x64 (и за который еще хотят вечнозеленых), но я никогда не пытался городить этих костылей, только время тратить. | Сообщение посчитали полезным: ElWray |
|
Создано: 11 августа 2017 07:30 · Личное сообщение · #24 difexacaw пишет: Да проще всё, ты барыга. вот не пойму, ты свои М-моторы бесплатно пилишь, что ли? А живешь на что, уж прости моё любопытство. | Сообщение посчитали полезным: kampaster |
|
Создано: 11 августа 2017 20:11 · Поправил: difexacaw · Личное сообщение · #25 Gideon Vi Я честно зарабатываю не большие деньги ремонтом сложных станков(фрезерные, расточные, строгальные и есчо стопицот). Вы должны были знать историю, прежде чем меня обвинить в комерсе. Подпись говорит о чём то ? Добавлено спустя 10 минут Наверно нужно напомнить что есть виксы, так как видимо все забыли. Это альтернативные разработки и ваш шекель при этом не нужен как и вы сами, при этом вы - баласт. ----- vx |
|
Создано: 12 августа 2017 03:05 · Личное сообщение · #26 |
|
Создано: 12 августа 2017 04:01 · Личное сообщение · #27 |
|
Создано: 12 августа 2017 06:08 · Поправил: Gideon Vi · Личное сообщение · #28 |
|
Создано: 12 августа 2017 07:38 · Личное сообщение · #29 |
|
Создано: 12 августа 2017 21:05 · Поправил: difexacaw · Личное сообщение · #30 |
. 1 . 2 . >> |
eXeL@B —› Вопросы новичков —› Восстановление исходного кода dll |