Показать полную графическую версию : (Де)компилятор .exe, .dll и извлечение ресурсов
xNiSSaNx
15-03-2012, 19:00
Подскажите, может кто то знает программму для извлечения ресурсов из .exe, .dll и их деломпилирования.... И как вобще работают Декомпили, например программа написана на Паскаль, то она может декомпилится только в Паскаль???7 или все же если прога написана на Делфи то можно декомпилить в Си++??????
-----------------------------------------------------
Вобщем нуждаюсь в проге с помошью которой можно отредачить exe, dll файлы, тоесть извлеч ресурсы, декомпилить, и отредактировав компилить обратно
извлечения ресурсов из .exe, .dll»
для этого есть программа Restorator, обсуждают здесь, http://forum.oszone.net/thread-167601.html, и еще куча программ, Reshacker, restuner и т.д
И как вобще работают Декомпили »
декомпили для Паскаль, С++ декомпилируют в assembler,
хотя есть декомпилятор Hex-rays, он выдает что-то вроде с-кода
xNiSSaNx
15-03-2012, 20:04
для этого есть программа Restorator »
Я нею пробывал, она только иконки, манифэсты и еще что то извлекает, а то что, графика, звуки, то не замечает
декомпили для Паскаль, С++ декомпилируют в assembler,
»
Только так?? а че, обратно в Паскаль, Си++ нельзя????
обратно в Паскаль, Си++ нельзя »
нет, нельзя
xNiSSaNx
15-03-2012, 20:16
нет, нельзя »
KAPECFCCCCC!!! А че нельзя??? с Java в java можно же!
с 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
Паскаль, Си++ компилируются в машинный код, а из него восстановить текст программы нельзя »
Жаль....очень жаль, и выходит только на ассемблер можно редачить, А ДЕлфи?? так как Паскаль нельзя????
Паскаль, Си++ компилируются в машинный код, а из него восстановить текст программы нельзя
Вполне возможно.
IDA очень крутой дизассемблер. Требуется очень хорошее знание формата PE, большой опыт в программировании или талант.
Но в итоге код будет восстановлен, но не в первоначальном виде. Компилятор код оптимизирует и из машинных кодов восстанавливается оптимизированный код на языке высокого уровня типа C или Паскаля.
Я нею пробывал, она только иконки, манифэсты и еще что то извлекает, а то что, графика, звуки, то не замечает »Видит она и звуки и графику. Если dll'ка не зашифрована или не сделана по-хитрому.
или все же если прога написана на Делфи то можно декомпилить в Си++?????? »Можно, на выходе получите форму с кнопочками и именами оригинальных функций, правда содержимое самих функций не будет показано, вместо них будут адреса памяти в которые грузятся эти функции. Если используя ваш сленг "чиста пасматреть", вам вполне такой декомпилятор сгодится, называется он EMS Source Rescuer.
В целом же ваш уровень далёк от программирования, максимум что вам нужно, это ResHacker, PE Explorer, Restorator озвученый выше.
xNiSSaNx
18-03-2012, 08:39
Кто сказал ДАЛЕК?
Кто сказал ДАЛЕК? »
иначе глупых вопросов бы не задавал
Вполне возможно.
IDA очень крутой дизассемблер. Требуется очень хорошее знание формата PE, большой опыт в программировании или талант.
Но в итоге код будет восстановлен, но не в первоначальном виде. Компилятор код оптимизирует и из машинных кодов восстанавливается оптимизированный код на языке высокого уровня типа C или Паскаля. »
даже если отключить все оптимизации, вы не получите исходный код
и вообще , перевести код из ассемблера на язык высокого уровня и получить исходники это разные вещи
Подскажите, может кто то знает программму для извлечения ресурсов из .exe, .dll и их деломпилирования.... »
Для извлечения ресурсов есть спец проги, которые с этим более менее справляюится.
Причина - сами ресурсы хранятся как есть. При их извлечении никаких особых доп преобразований делать не надо.
Не берем естсно случай, когда ресурсы в хитрых нестандартных форматах или запакованы както .
И как вобще работают Декомпили, например программа написана на Паскаль, то она может декомпилится только в Паскаль???7 или все же если прога написана на Делфи то можно декомпилить в Си++??????
---------------------------------------------------- »
А вот как работают декомпиляторы ответить не возможно в принципе!
Дело в том, что теория компиляторов разработана, опробована, а главное существует - т.е. можно придумать язык, сделать компилятор его и писать себе проги.
А с декомпиляторами все сложнее - теории никакой нет, лишь попытки энтузиастов и комерч. продукты, а главное - декомпиляция в большинстве случаев если и возможна теоретически, то ее результат будет абсолютно не применим.
(МОжно например заменить все команды процессора в ассемблере на С-код - это не сложно, но толку будет меньше чем от ассемблера.)
Вот тут сайтик с сылками и статьями по теме
http://demono.ru
Есть кстати онлайн-сервис с примерами, которое налету простенький ассемблер преобразует в С-код (для powerpc правда), но общий принцип понять можно.
Декомпиляция это примерно как водка-
если у тебя много нефти, то водки ты сможешь оч получить много (очистками и др процессами), а вот из чистой и бесполезной водки получить более полезную нефть невозможно - в водки мало чего осталось уже...
crashtuak
19-08-2013, 19:46
Для товарища xNiSSaNx, судя по выворотам речи, нужно обьяснять на таком уровне: когда ты сожрал кусок колбасы, и вы*рал **вно, не возможно превратить **вно обратно в колбасу. Заменяем колбасу на "программа на Паскале/Делфи" а **вно - "готовый exe файл". :)
Всё это правильно, но вот возьмём AutoIt, он с созданием ехе прикрепляет исходник и декмомпилируя такой файл на выходе имеем исходник, но опять таки, с оговоркой, ехе не преобразуется в исходный код, а просто исходник становится доступным. Я так разбирался с вирусом, который на флешке создаёт ехе файлы с именами папок. Он написан был на аутоите.
Для делфи и C++ Builder 6.0 есть такой декомпилятор ems_sr (http://exelab.ru/_dl-nLh/new/ems_sr.rar), успешно декомпилит ехе в проекты, сохраняя оригинальные переменные форм, компонентов, имён функций, но функции без исходного кода, вместо этого в функциях написан адрес в памяти где эти функции крутятся.
Смысла в получении исходника нет, т.к. если бы такое было возможно, то отпала бы необходимость в лицензиях OpenSource
Drongo, с AutoIt совсем другая ситуация. Там нет «скомпилированного файла» именно в понятии «скомпилированного». Есть исходный код и прикреплённый интерпретатор AutoIt, связанные исполняемой надстройкой.
Iska, ааа вот как, спасибо за просвещение, я не знал этой тонкости.
Drongo, с AutoIt совсем другая ситуация. Там нет «скомпилированного файла» именно в понятии «скомпилированного». Есть исходный код и прикреплённый интерпретатор AutoIt, связанные исполняемой надстройкой. »Да, кстати, а вот какой вопрос тогда, если автор прекратил поддержку утилиты, можно ли дорабатывать его имея на руках все необходимые ресурсы? Или это будет нарушением прав создателя? Так например в лечении одну из утилит автор перестал поддерживать, но она хороша чтобы от неё отказываться.
Ага. Там, в принципе, ещё интереснее — если специально не запрещено при компиляции директивой «#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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.