eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: strannyi (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Восстановление исходного кода dll
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 1.0 (гость)
Статус: Участник

Создано: 1 августа 2017 12:10 · Поправил: ElWray New!
Цитата · Личное сообщение · #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-шный код не компилится. Подскажите наиболее пригодный для этого дизассемблер. Заранее спасибо!

Ранг: 43.4 (посетитель)
Статус: Участник

Создано: 1 августа 2017 12:20 · Поправил: DrVB_5_6 New!
Цитата · Личное сообщение · #2

ElWray пишет:
Подскажите наиболее пригодный для этого дизассемблер.


Нет такого в природе и никогда не будет.
Ручками в Ида (включая мозг) - лучшего варианта не найдёшь.
а лучше сразу на "С" без асм, но квалификация определённая нужна...

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


Ранг: 1.0 (гость)
Статус: Участник

Создано: 1 августа 2017 13:39 New!
Цитата · Личное сообщение · #3

DrVB_5_6 пишет:
Нет такого в природе и никогда не будет.

Спасибо большое. А еще можете пожалуйста подсказать с чем это связано или где можно почитать? Был уверен что можно любой exe файл дизассемблировать а затем обратно скомпилировать.

Ранг: 43.4 (посетитель)
Статус: Участник

Создано: 1 августа 2017 13:46 New!
Цитата · Личное сообщение · #4

DrVB_5_6 пишет:
Был уверен что можно любой exe файл дизассемблировать а затем обратно скомпилировать


Можно, но сложно и почти никогда на автомате.

Самая большая проблема: разделение команд и данных. Фон Неймановские машины. Изучай.

Ранг: 1.0 (гость)
Статус: Участник

Создано: 1 августа 2017 13:53 New!
Цитата · Личное сообщение · #5

DrVB_5_6 пишет:
Можно, но сложно и почти никогда на автомате.

Самая большая проблема: разделение команд и данных. Фон Неймановские машины. Изучай.

Спасибо, почитаю.

Ранг: 245.9 (наставник)
Статус: Участник

Создано: 1 августа 2017 14:06 New!
Цитата · Личное сообщение · #6

ElWray пишет:
Был уверен что можно любой exe файл дизассемблировать а затем обратно скомпилировать.

Скорее это относилось к COM'ам времен MS-DOS)

Ранг: 43.4 (посетитель)
Статус: Участник

Создано: 1 августа 2017 14:18 New!
Цитата · Личное сообщение · #7

TryAga1n пишет:
Скорее это относилось к COM'ам времен MS-DOS)


Да и тогда это было не верно, тем более там, как правило, был ассемблер, а на нем уж можно извращаться покруче, чем это делают компиляторы. Автомата никогда и не было.

Ранг: 134.3 (ветеран)
Статус: Участник

Создано: 1 августа 2017 16:34 New!
Цитата · Личное сообщение · #8

ElWray пишет:
восстановления исходного кода небольшой dll библиотеки

Если это не из "академического интереса", то сильно проще будет посмотреть общий алгоритм и воспроизвести на на C / C++
Если либа не представляет из себя какой-то "изолированный" уникальный крипто-механизм, или что-то подобное, нет вообще никакого смысла в реконструкции из дизасма.

Ранг: 409.4 (мудрец)
Статус: Участник

Создано: 2 августа 2017 04:08 New!
Цитата · Личное сообщение · #9

DrVB_5_6 пишет:
Да и тогда это было не верно

Тогда - в особенности.


Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 6 августа 2017 02:22 New!
Цитата · Личное сообщение · #10

ElWray

> Передо мной стоит задача

Зачем же вы берёте ТЗ, которое не можите выполнить(принципиально инструментов для автоматики нет).

Любой каприз за ваши деньги (с).

Ранг: 0.0 (гость)
Статус: Участник

Создано: 6 августа 2017 02:26 New!
Цитата · Личное сообщение · #11

ElWray пишет: Перепробовал целую кучу дизассемблеров, но не нашел такого, который может дизассембировать exe в asm файл, и получить пригодный для компиляции код (asm в obj или exe)

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

ElWray пишет:Подскажите наиболее пригодный для этого дизассемблер

IDA + скриптинг, лучшего ничего нет, тем более для нуба.


Ранг: 1014.5 (!!!!)
Статус: Участник

Создано: 7 августа 2017 16:35 · Поправил: reversecode New!
Цитата · Личное сообщение · #12

идашный код компилится, только надо ручками сначала все поправить
была статья где то на народ ру, и линки на нее на васме и здесь на форуме
https://exelab.ru/art/?action=view&id=600


а так вообще нормальные пацаны сразу из рейса в с++ переписывают и не парятся

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


Ранг: 1.0 (гость)
Статус: Участник

Создано: 8 августа 2017 22:00 New!
Цитата · Личное сообщение · #13

difexacaw пишет:
Зачем же вы берёте ТЗ, которое не можите выполнить(принципиально инструментов для автоматики нет).

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

shellstorm пишет:
IDA + скриптинг, лучшего ничего нет, тем более для нуба.

Понял, спасибо.

reversecode пишет:
идашный код компилится, только надо ручками сначала все поправить
была статья где то на народ ру, и линки на нее на васме и здесь на форуме
https://exelab.ru/art/?action=view&id=600

а так вообще нормальные пацаны сразу из рейса в с++ переписывают и не парятся

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

В любом случае всем спасибо!


Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 10 августа 2017 19:10 New!
Цитата · Личное сообщение · #14

ElWray

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

Да проще всё, ты барыга. Помогите мне заработать шекель", так нужно было назвать топик.

Ранг: 141.4 (ветеран)
Статус: Участник

Создано: 10 августа 2017 19:28 New!
Цитата · Личное сообщение · #15

ElWray пишет:
Переписываю, правда на Си, а тут немного хотел себе упростить задачу.

Куда уж проще: нажал F5 в иде и сиди переименовывай переменные, да типы правильные прописывай...

Ранг: 510.2 (!)
Статус: Модератор

Создано: 10 августа 2017 21:20 New!
Цитата · Личное сообщение · #16

ElWray пишет:
Запихнув ассемблерный код в Си-шный через директиву asm. Но получился облом.


какой?

PS
не помню с какой версии VС++ отказалсь от asm {}
перешли на интринсики.

Ранг: 0.0 (гость)
Статус: Участник

Создано: 10 августа 2017 21:36 New!
Цитата · Личное сообщение · #17

ElWray пишет: хотел немного упростить себе задачу. Да и был уверен, что прогу можно дизассемблировать и тут же ее собрать

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

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


Ранг: 409.4 (мудрец)
Статус: Участник

Создано: 10 августа 2017 21:49 New!
Цитата · Личное сообщение · #18

sendersu пишет:
не помню с какой версии VС++ отказалсь от asm {}


Чудят.

Они ещё визуальный басик одно время продвигали с упорством танка.
Одержимые какие-то.

Ранг: 1.0 (гость)
Статус: Участник

Создано: 10 августа 2017 21:59 · Поправил: ElWray New!
Цитата · Личное сообщение · #19

difexacaw пишет:
Да проще всё, ты барыга. Помогите мне заработать шекель", так нужно было назвать топик.

https://github.com/El-Wray/N2CadX
)))

rmn пишет:
Куда уж проще: нажал F5 в иде и сиди переименовывай переменные, да типы правильные прописывай...

Ну где можно +- так и сделал.

sendersu пишет:
какой?

PS
не помню с какой версии VС++ отказалсь от asm {}
перешли на интринсики.

В 2017 проверял для Си проекта. Работает.

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

Хотел собрать монстра из Си кода и ассемблерного, и постепенно избавляться от ассемблерного.

Ранг: 141.4 (ветеран)
Статус: Участник

Создано: 10 августа 2017 22:14 New!
Цитата · Личное сообщение · #20

sendersu пишет:
не помню с какой версии VС++ отказалсь от asm {}

Так то ж только в x64. Или уже и в x86 поддержку убрали?


Ранг: 325.8 (мудрец)
Статус: Участник

Создано: 10 августа 2017 23:53 New!
Цитата · Личное сообщение · #21

rmn пишет:
VС++ отказалсь от asm {}

Неправда, асм во всех VC работает, только выгдядит вот так _asm {} или __asm {}, да и такой asm {} работает, только у каждого свои ограничения
Code:
  1. _asm
  2. {
  3.          mov         eax, value
  4.          mov         cl, shift
  5.          rol         eax, cl
  6.          mov         res, eax
  7. }
  8.  
  9. __asm { wait }
и т.д.


Ранг: 1014.5 (!!!!)
Статус: Участник

Создано: 11 августа 2017 00:14 New!
Цитата · Личное сообщение · #22

x64 __asm ни в одной студии нет

Ранг: 77.9 (постоянный)
Статус: Участник

Создано: 11 августа 2017 03:45 · Поправил: v00doo New!
Цитата · Личное сообщение · #23

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

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



Ранг: 1120.2 (!!!!)
Статус: Участник

Создано: 11 августа 2017 07:30 New!
Цитата · Личное сообщение · #24

difexacaw пишет:
Да проще всё, ты барыга.


вот не пойму, ты свои М-моторы бесплатно пилишь, что ли? А живешь на что, уж прости моё любопытство.

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



Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 11 августа 2017 20:11 · Поправил: difexacaw New!
Цитата · Личное сообщение · #25

Gideon Vi

Я честно зарабатываю не большие деньги ремонтом сложных станков(фрезерные, расточные, строгальные и есчо стопицот). Вы должны были знать историю, прежде чем меня обвинить в комерсе. Подпись говорит о чём то ?

Добавлено спустя 10 минут
Наверно нужно напомнить что есть виксы, так как видимо все забыли. Это альтернативные разработки и ваш шекель при этом не нужен как и вы сами, при этом вы - баласт.


Ранг: 1120.2 (!!!!)
Статус: Участник

Создано: 12 августа 2017 03:05 New!
Цитата · Личное сообщение · #26

difexacaw пишет:
Вы должны были знать историю, прежде чем меня обвинить в комерсе.


я обвинял? Пальцем покажи, где - я исправлю. Штатным обвинятилем форума у нас ты заделался, весь из себя белый и пушистый, любитель М-моторов и виксов, что бы там это не означало.


Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 12 августа 2017 04:01 New!
Цитата · Личное сообщение · #27

Gideon Vi

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


Ранг: 1120.2 (!!!!)
Статус: Участник

Создано: 12 августа 2017 06:08 · Поправил: Gideon Vi New!
Цитата · Личное сообщение · #28

Ну ясна-понятна, Инде в своём репертуаре: зайти в тему, нагадить, получить встречный вопрос, слиться. Повторять при появлении новой темы.

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


Ранг: 409.4 (мудрец)
Статус: Участник

Создано: 12 августа 2017 07:38 New!
Цитата · Личное сообщение · #29

Итерации это называется.

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



Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 12 августа 2017 21:05 · Поправил: difexacaw New!
Цитата · Личное сообщение · #30

Как бы вы не говорили, но сей форум признан профнепригодным - вы не способны решать элементарные алгоритмические задачи.
А учитывая админский беспредел, то даже не знаю что вы будите делать дальше, инфа ведь быстро распространяется.
. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› Восстановление исходного кода dll

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS