... dll файл? Я имею ввиду, как посмотреть на тот код, который был написан до компиляции? Как мне думается, сделать это практически невозможно так как программа была скомпилированна в машинные коды. Или я ошибаюсь? Такой же вопрос по bat файлам. Заранее благодарен.
» Как открыть...dll файл
JustMe
Цитата:
открой их в блокноте
насчёт dll - не знаю
Добавлено
открытие Dll - мне кажется это не Web программирование а Андеграунд...
Цитата:
Такой же вопрос по bat файлам.
открой их в блокноте
насчёт dll - не знаю
Добавлено
открытие Dll - мне кажется это не Web программирование а Андеграунд...
Цитата:
dll файл? Я имею ввиду, как посмотреть на тот код, который был написан до компиляции?
ИМХО никак
можно только выдернуть экспортируемые функции
и то если они не документированы то параметры функций будут неизвестны
Дизассемблировать
И читай себе после этого на здоровье. Если ассемблер знаешь, конечно. Если не знаешь, то скорее всего никак - я пока не видел прог, которые транслируют код ДЛЛ (ЕХЕ) в исходник любого языка (часто в них написано, каким компиляторо собрано, но не всегда и не все знают те языки, на которых написаны проги и уж подавно не всегда люди знают особенности всех компиляторов).
И читай себе после этого на здоровье. Если ассемблер знаешь, конечно. Если не знаешь, то скорее всего никак - я пока не видел прог, которые транслируют код ДЛЛ (ЕХЕ) в исходник любого языка (часто в них написано, каким компиляторо собрано, но не всегда и не все знают те языки, на которых написаны проги и уж подавно не всегда люди знают особенности всех компиляторов).
Извини, не хочу обидеть. Но судя по твоему вопросу - уровень понимания компьютерных технологий у тебя слабоват. Правда уже хорошо что ты знаешь о существовании машинных кодов. Но однако этого мало.
Да конечно единственный вариант - это дизасемблировать. Но это задача для опытного программиста, хорошо владеющего ассемблером. А возможно ещё и обязательно владеющего опытом разпаковки защищённых модулей. Короче это не просто. Если файл больше 100 килобайт - можешь даже не пытаться.
Но меня вот что интересует. Откуда у тебя возник такой вопрос? расскажи предысторию.
Да конечно единственный вариант - это дизасемблировать. Но это задача для опытного программиста, хорошо владеющего ассемблером. А возможно ещё и обязательно владеющего опытом разпаковки защищённых модулей. Короче это не просто. Если файл больше 100 килобайт - можешь даже не пытаться.
Но меня вот что интересует. Откуда у тебя возник такой вопрос? расскажи предысторию.
Цитата:
скомпилированна в машинные коды
Вот тебе и остаётся в них разобраться. Сам спросил и в вопросе дал ответ.
Верх программирования - писать козявками - машинным кодом. Никаких линкеров не надо, и во всех exe-шниках и dll-лях сразу можно разобраться
Цитата:
Верх программирования
Скорее это "низ" программирования... или програмирование на языке самого низкого уровня
Да dll это скомпилированная программа, то есть открыть ее тоже самое что открыть exe файл.
bat - это скрипт командного процессора command.com (cmd.exe) и открывается простым текстовым редактором.
Мне попадалась парочка "декомпиляторов" из кодов i386 в С, но качество у них было, прямо скажем, ассемблерное. Перед IDA их использования преимуществ не давало.
QuickeneR
Цитата:
А реально ли это ?
Асм код не однозначен при переводе в высшие языки,да и компиляторы выполняют разные оптимизации
Цитата:
Мне попадалась парочка "декомпиляторов" из кодов i386 в С,
А реально ли это ?
Асм код не однозначен при переводе в высшие языки,да и компиляторы выполняют разные оптимизации
snop
Это реально, если сам оригинальный исходник был написан без применения ассемблера, и принципы оптимизации исходного компилятора известны априори.
Существуют дизассемблеры спаренные с конверторами в С т.к. С - это в некоторой степени Ассемблер высокого уровня (macro-assembler), но построить например код под язык класса С++ или Ada-95 практически невозможно. Тем более - под язык типа Prolog и иже с ним...
Это реально, если сам оригинальный исходник был написан без применения ассемблера, и принципы оптимизации исходного компилятора известны априори.
Существуют дизассемблеры спаренные с конверторами в С т.к. С - это в некоторой степени Ассемблер высокого уровня (macro-assembler), но построить например код под язык класса С++ или Ada-95 практически невозможно. Тем более - под язык типа Prolog и иже с ним...
OldGopher
Цитата:
Можешь подкинуть названия ?
Цитата:
Существуют дизассемблеры спаренные с конверторами в С
Можешь подкинуть названия ?
snop
Последний раз имел такой в 1991 году, в бытность студентом.
Надо поискать...
http://www.itee.uq.edu.au/~cristina/dcc.html
http://www.backerstreet.com/cg/work.htm
И вообще, Вам сюда:
http://www.decompiler.com/index.php
Последний раз имел такой в 1991 году, в бытность студентом.
Надо поискать...
http://www.itee.uq.edu.au/~cristina/dcc.html
http://www.backerstreet.com/cg/work.htm
И вообще, Вам сюда:
http://www.decompiler.com/index.php
odl455
Цитата:
Дизасемблировать - элементарно, вот потом разобраться с поллученным - гемор....OldGopher
Цитата:
М как ты оценишь качество полученного?????? Есть прога для декомпа Visual Fox, она их разворачивает отменно, а вот если бы даже и был декомп. для С - на выходе получится мешанина...Я уже пытался вскрыть dll ки написанные на С, причем без Visual(поросята) - лучшая прога либо Ida либо Driver Studio, но легче будет написать свою dll ку чем разобраться с этими прогами.
Цитата:
Да конечно единственный вариант - это дизасемблировать. Но это задача для опытного программиста,
Дизасемблировать - элементарно, вот потом разобраться с поллученным - гемор....OldGopher
Цитата:
Это реально, если сам оригинальный исходник был написан без применения ассемблера, и принципы оптимизации исходного компилятора известны априори.
М как ты оценишь качество полученного?????? Есть прога для декомпа Visual Fox, она их разворачивает отменно, а вот если бы даже и был декомп. для С - на выходе получится мешанина...Я уже пытался вскрыть dll ки написанные на С, причем без Visual(поросята) - лучшая прога либо Ida либо Driver Studio, но легче будет написать свою dll ку чем разобраться с этими прогами.
mmt
Это верно, если от Вас не требуют разобраться именно в чужой DLL.
Иногда бывает нужно вскрыть комплексный алгоритм шифрования, тогда - флаг в руки.
Я как-то накатал драйвер для Windows 2000, который занимался генерированием и проверкой кодов (256 бит) для систем защиты от копирования. Так драйвер нес в себе самом самомодифицирующийся код, тут Вам никакой дизассемблер/декомпайлер не поможет. Для SiftIce там тоже было пара примочек...
Так когда я свалил с той фирмы, все соурсы куда-то исчезли. Они до сих пор декомпилируют тот драйвер...
Всегда легче написать свое, но вряд ли это свое будет абсолютно совместимым со старым кодом...
Это верно, если от Вас не требуют разобраться именно в чужой DLL.
Иногда бывает нужно вскрыть комплексный алгоритм шифрования, тогда - флаг в руки.
Я как-то накатал драйвер для Windows 2000, который занимался генерированием и проверкой кодов (256 бит) для систем защиты от копирования. Так драйвер нес в себе самом самомодифицирующийся код, тут Вам никакой дизассемблер/декомпайлер не поможет. Для SiftIce там тоже было пара примочек...
Так когда я свалил с той фирмы, все соурсы куда-то исчезли. Они до сих пор декомпилируют тот драйвер...
Всегда легче написать свое, но вряд ли это свое будет абсолютно совместимым со старым кодом...
OldGopher
Спасибо за линки
Спасибо за линки
Страницы: 1
Предыдущая тема: Программистам в Borland Delphi&C++ Builder (2)
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.