Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   (Де)компилятор .exe, .dll и извлечение ресурсов (http://forum.oszone.net/showthread.php?t=230472)

xNiSSaNx 15-03-2012 19:00 1880148

(Де)компилятор .exe, .dll и извлечение ресурсов
 
Подскажите, может кто то знает программму для извлечения ресурсов из .exe, .dll и их деломпилирования.... И как вобще работают Декомпили, например программа написана на Паскаль, то она может декомпилится только в Паскаль???7 или все же если прога написана на Делфи то можно декомпилить в Си++??????
-----------------------------------------------------
Вобщем нуждаюсь в проге с помошью которой можно отредачить exe, dll файлы, тоесть извлеч ресурсы, декомпилить, и отредактировав компилить обратно

ferget 15-03-2012 19:15 1880156

Цитата:

Цитата xNiSSaNx
извлечения ресурсов из .exe, .dll»

для этого есть программа Restorator, обсуждают здесь, http://forum.oszone.net/thread-167601.html, и еще куча программ, Reshacker, restuner и т.д

Цитата:

Цитата xNiSSaNx
И как вобще работают Декомпили »

декомпили для Паскаль, С++ декомпилируют в assembler,
хотя есть декомпилятор Hex-rays, он выдает что-то вроде с-кода

xNiSSaNx 15-03-2012 20:04 1880194

Цитата:

Цитата ferget
для этого есть программа Restorator »

Я нею пробЫвал, она только иконки, манифэсты и еще что то извлекает, а то что, графика, звуки, то не замечает

Цитата:

Цитата ferget
декомпили для Паскаль, С++ декомпилируют в assembler,
»

Только так?? а че, обратно в Паскаль, Си++ нельзя????

ferget 15-03-2012 20:09 1880197

Цитата:

Цитата xNiSSaNx
обратно в Паскаль, Си++ нельзя »

нет, нельзя

xNiSSaNx 15-03-2012 20:16 1880203

Цитата:

Цитата ferget
нет, нельзя »

KAPECFCCCCC!!! А че нельзя??? с Java в java можно же!

ferget 15-03-2012 20:33 1880218

Цитата:

Цитата xNiSSaNx
с Java в java можно же! »

и с C# в C# тоже можно

Паскаль, Си++ компилируются в машинный код, а из него восстановить текст программы нельзя
http://ru.wikipedia.org/wiki/%D0%9C%...BA%D0%BE%D0%B4

xNiSSaNx 15-03-2012 20:39 1880227

Цитата:

Цитата ferget
Паскаль, Си++ компилируются в машинный код, а из него восстановить текст программы нельзя »

Жаль....очень жаль, и выходит только на ассемблер можно редачить, А ДЕлфи?? так как Паскаль нельзя????

mrcnn 17-03-2012 06:53 1881054

Цитата:

Паскаль, Си++ компилируются в машинный код, а из него восстановить текст программы нельзя
Вполне возможно.
IDA очень крутой дизассемблер. Требуется очень хорошее знание формата PE, большой опыт в программировании или талант.
Но в итоге код будет восстановлен, но не в первоначальном виде. Компилятор код оптимизирует и из машинных кодов восстанавливается оптимизированный код на языке высокого уровня типа C или Паскаля.

Drongo 17-03-2012 14:32 1881196

Цитата:

Цитата xNiSSaNx
Я нею пробЫвал, она только иконки, манифэсты и еще что то извлекает, а то что, графика, звуки, то не замечает »

Видит она и звуки и графику. Если dll'ка не зашифрована или не сделана по-хитрому.
Цитата:

Цитата xNiSSaNx
или все же если прога написана на Делфи то можно декомпилить в Си++?????? »

Можно, на выходе получите форму с кнопочками и именами оригинальных функций, правда содержимое самих функций не будет показано, вместо них будут адреса памяти в которые грузятся эти функции. Если используя ваш сленг "чиста пасматреть", вам вполне такой декомпилятор сгодится, называется он EMS Source Rescuer.

В целом же ваш уровень далёк от программирования, максимум что вам нужно, это ResHacker, PE Explorer, Restorator озвученый выше.

xNiSSaNx 18-03-2012 08:39 1881601

Кто сказал ДАЛЕК?

Beyound 18-03-2012 17:11 1881825

Цитата:

Цитата xNiSSaNx
Кто сказал ДАЛЕК? »

иначе глупых вопросов бы не задавал

ferget 18-03-2012 18:49 1881879

Цитата:

Цитата mrcnn
Вполне возможно.
IDA очень крутой дизассемблер. Требуется очень хорошее знание формата PE, большой опыт в программировании или талант.
Но в итоге код будет восстановлен, но не в первоначальном виде. Компилятор код оптимизирует и из машинных кодов восстанавливается оптимизированный код на языке высокого уровня типа C или Паскаля. »

даже если отключить все оптимизации, вы не получите исходный код

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

EggHead 18-08-2013 05:34 2203445

Цитата:

Цитата xNiSSaNx
Подскажите, может кто то знает программму для извлечения ресурсов из .exe, .dll и их деломпилирования.... »

Для извлечения ресурсов есть спец проги, которые с этим более менее справляюится.
Причина - сами ресурсы хранятся как есть. При их извлечении никаких особых доп преобразований делать не надо.
Не берем естсно случай, когда ресурсы в хитрых нестандартных форматах или запакованы както .


Цитата:

Цитата xNiSSaNx
И как вобще работают Декомпили, например программа написана на Паскаль, то она может декомпилится только в Паскаль???7 или все же если прога написана на Делфи то можно декомпилить в Си++??????
---------------------------------------------------- »

А вот как работают декомпиляторы ответить не возможно в принципе!
Дело в том, что теория компиляторов разработана, опробована, а главное существует - т.е. можно придумать язык, сделать компилятор его и писать себе проги.
А с декомпиляторами все сложнее - теории никакой нет, лишь попытки энтузиастов и комерч. продукты, а главное - декомпиляция в большинстве случаев если и возможна теоретически, то ее результат будет абсолютно не применим.
(МОжно например заменить все команды процессора в ассемблере на С-код - это не сложно, но толку будет меньше чем от ассемблера.)

Вот тут сайтик с сылками и статьями по теме
http://demono.ru
Есть кстати онлайн-сервис с примерами, которое налету простенький ассемблер преобразует в С-код (для powerpc правда), но общий принцип понять можно.

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

crashtuak 19-08-2013 19:46 2204238

Для товарища xNiSSaNx, судя по выворотам речи, нужно обьяснять на таком уровне: когда ты сожрал кусок колбасы, и вы*рал **вно, не возможно превратить **вно обратно в колбасу. Заменяем колбасу на "программа на Паскале/Делфи" а **вно - "готовый exe файл". :)

Drongo 11-11-2013 14:25 2251984

Всё это правильно, но вот возьмём AutoIt, он с созданием ехе прикрепляет исходник и декмомпилируя такой файл на выходе имеем исходник, но опять таки, с оговоркой, ехе не преобразуется в исходный код, а просто исходник становится доступным. Я так разбирался с вирусом, который на флешке создаёт ехе файлы с именами папок. Он написан был на аутоите.

Для делфи и C++ Builder 6.0 есть такой декомпилятор ems_sr, успешно декомпилит ехе в проекты, сохраняя оригинальные переменные форм, компонентов, имён функций, но функции без исходного кода, вместо этого в функциях написан адрес в памяти где эти функции крутятся.

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

Iska 11-11-2013 15:01 2252014

Drongo, с AutoIt совсем другая ситуация. Там нет «скомпилированного файла» именно в понятии «скомпилированного». Есть исходный код и прикреплённый интерпретатор AutoIt, связанные исполняемой надстройкой.

Drongo 11-11-2013 16:39 2252088

Iska, ааа вот как, спасибо за просвещение, я не знал этой тонкости.

Drongo 11-11-2013 17:00 2252101

Цитата:

Цитата Iska
Drongo, с AutoIt совсем другая ситуация. Там нет «скомпилированного файла» именно в понятии «скомпилированного». Есть исходный код и прикреплённый интерпретатор AutoIt, связанные исполняемой надстройкой. »

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

Iska 11-11-2013 17:11 2252114

Ага. Там, в принципе, ещё интереснее — если специально не запрещено при компиляции директивой «#NoAutoIt3Execute», то посредством параметра «/AutoIt3ExecuteLine» можно любым скомпилированным файлом AutoIt исполнить строчную команду AutoIt. Вот здесь, у AZJIO: Узнать версию AutoIt3 в скомпилирванном EXE - Скрипты для WindowsXP - Скрипты AutoIt3 - Каталог статей - Cайт AZJIO, можно почитать об этом.

Цитата:

Цитата Drongo
Да, кстати, а вот какой вопрос тогда, если автор прекратил поддержку утилиты, можно ли дорабатывать его имея на руках все необходимые ресурсы? Или это будет нарушением прав создателя? »

Если лицензия не вида OpenSource и подобных ей (либо вовсе отсутствует) — полагаю, да, будет нарушением.


Время: 23:20.

Время: 23:20.
© OSzone.net 2001-