Войти

Показать полную графическую версию : (Де)компилятор .exe, .dll и извлечение ресурсов


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

ferget
15-03-2012, 19:15
извлечения ресурсов из .exe, .dll»

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

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

xNiSSaNx
15-03-2012, 20:04
для этого есть программа Restorator »
Я нею пробывал, она только иконки, манифэсты и еще что то извлекает, а то что, графика, звуки, то не замечает

декомпили для Паскаль, С++ декомпилируют в assembler,
»
Только так?? а че, обратно в Паскаль, Си++ нельзя????

ferget
15-03-2012, 20:09
обратно в Паскаль, Си++ нельзя »
нет, нельзя

xNiSSaNx
15-03-2012, 20:16
нет, нельзя »
KAPECFCCCCC!!! А че нельзя??? с Java в java можно же!

ferget
15-03-2012, 20:33
с Java в java можно же! »
и с C# в C# тоже можно

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

xNiSSaNx
15-03-2012, 20:39
Паскаль, Си++ компилируются в машинный код, а из него восстановить текст программы нельзя »
Жаль....очень жаль, и выходит только на ассемблер можно редачить, А ДЕлфи?? так как Паскаль нельзя????

mrcnn
17-03-2012, 06:53
Паскаль, Си++ компилируются в машинный код, а из него восстановить текст программы нельзя

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

Drongo
17-03-2012, 14:32
Я нею пробывал, она только иконки, манифэсты и еще что то извлекает, а то что, графика, звуки, то не замечает »Видит она и звуки и графику. Если dll'ка не зашифрована или не сделана по-хитрому.
или все же если прога написана на Делфи то можно декомпилить в Си++?????? »Можно, на выходе получите форму с кнопочками и именами оригинальных функций, правда содержимое самих функций не будет показано, вместо них будут адреса памяти в которые грузятся эти функции. Если используя ваш сленг "чиста пасматреть", вам вполне такой декомпилятор сгодится, называется он EMS Source Rescuer.

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

xNiSSaNx
18-03-2012, 08:39
Кто сказал ДАЛЕК?

Beyound
18-03-2012, 17:11
Кто сказал ДАЛЕК? »

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

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

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

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

EggHead
18-08-2013, 05:34
Подскажите, может кто то знает программму для извлечения ресурсов из .exe, .dll и их деломпилирования.... »
Для извлечения ресурсов есть спец проги, которые с этим более менее справляюится.
Причина - сами ресурсы хранятся как есть. При их извлечении никаких особых доп преобразований делать не надо.
Не берем естсно случай, когда ресурсы в хитрых нестандартных форматах или запакованы както .


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

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

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

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

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

Для делфи и C++ Builder 6.0 есть такой декомпилятор ems_sr (http://exelab.ru/_dl-nLh/new/ems_sr.rar), успешно декомпилит ехе в проекты, сохраняя оригинальные переменные форм, компонентов, имён функций, но функции без исходного кода, вместо этого в функциях написан адрес в памяти где эти функции крутятся.

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

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

Drongo
11-11-2013, 16:39
Iska, ааа вот как, спасибо за просвещение, я не знал этой тонкости.

Drongo
11-11-2013, 17:00
Drongo, с AutoIt совсем другая ситуация. Там нет «скомпилированного файла» именно в понятии «скомпилированного». Есть исходный код и прикреплённый интерпретатор AutoIt, связанные исполняемой надстройкой. »Да, кстати, а вот какой вопрос тогда, если автор прекратил поддержку утилиты, можно ли дорабатывать его имея на руках все необходимые ресурсы? Или это будет нарушением прав создателя? Так например в лечении одну из утилит автор перестал поддерживать, но она хороша чтобы от неё отказываться.

Iska
11-11-2013, 17:11
Ага. Там, в принципе, ещё интереснее — если специально не запрещено при компиляции директивой «#NoAutoIt3Execute», то посредством параметра «/AutoIt3ExecuteLine» можно любым скомпилированным файлом AutoIt исполнить строчную команду AutoIt. Вот здесь, у AZJIO: Узнать версию AutoIt3 в скомпилирванном EXE - Скрипты для WindowsXP - Скрипты AutoIt3 - Каталог статей - Cайт AZJIO (http://azjio.ucoz.ru/publ/skripty_autoit3/skripty_dlja_windowsxp/uznat_versiju_autoit3_v_skompilirvannom_exe/5-1-0-13), можно почитать об этом.

Да, кстати, а вот какой вопрос тогда, если автор прекратил поддержку утилиты, можно ли дорабатывать его имея на руках все необходимые ресурсы? Или это будет нарушением прав создателя? »
Если лицензия не вида OpenSource и подобных ей (либо вовсе отсутствует) — полагаю, да, будет нарушением.




© OSzone.net 2001-2012