Описание: Как в него влезть и изменить? |
Поиск в теме | Версия для печати |
Nikitich |
Отправлено: 11 Октября, 2004 - 14:23:32
|
Пришелец-прораб
Покинул форум
Сообщений всего: 219
Дата рег-ции: Июль 2004
Карма 16
|
тёркин василий
Цитата:Объясните пожалуйста, как пишется(создаётся) файл с расширением exe.
Сначала программист пишет программу, например, на С++. Далее он нажимает кнопочку, и компилятор делает из этой программы объектный код - некую промежуточную субстанцию, которую окончательно собирает в .exe файл программа-линкер. Вот этот линкер делает исполняемую программу в виде файла .exe, возможно, из нескольких модулей. Примерно так.
Цитата:Короче как в него забраться и посмотреть,что внутри,а при случае изменить.
Это не текстовый файл. Ты можешь открыть его любым тексовым редактором, но на деле увидишь полную абракадабру. Грубо говоря, в этом файле содержатся команды процессора и данные. Каждая команда кодируется несколькими байтами, а текстовый редактор каждый байт воспринимает как букву, поэтому просто так разобраться не получится. То, что внутренняя структура в этой абракадабре есть, можно определить хотя бы потому, что первые буквы в .exe файле всегда MZ.
Цитата:Вот к примеру антишпион показывает новый процесс(файл exe.)Этот процесс появился вроде по делу,а как определить что он делает на самом деле.?
Машинные команды невозможно восстановить в их исходном виде на языке высокого уровня, на бейсике или С++. Восстановление возможно только на низком уровне - на языке ассемблера. Ассемблер - это язык процессора, где каждая машинная инструкция имеет точное значение. Поскольку команд много, то распечатка такого текста создает огромные бумажные "простыни". А восстановить инструкции С++ из ассемблера невозможно, потому что нет единого толкования этих инструкций, например, при включенной оптимизации (а она практически всегда включена, иначе программисту приждется вдаваться в совсем уж дремучие дебри функционирования процессора), код получается сильно отличающийся от кода без оптимизации. Например, ты делаешь цикл. Если i меньше 10, делать что-то, добавить к i единицу и снова делать что-то. Вот эта переменная i может находиться в памяти, но для ускорения работы компилятор может попытаться засунуть ее в регистр процессора, коих до фига. Регистр - это типа кармана, процессор берет из него данные и обрабатывает очень быстро, быстрее, чм из памяти.
Словом, если тебе хочется разобраться, что делает та или иная программа, тебе надо знать ассемблер и установить программу, которая может .exe файл преобразовать из бинарного вида в этот самый ассемблер. Эта программа, как можно догадаться, называется дизассемблером. Она также умеет и редактировать файл, так что ты можешь что-то в нем подправить и в момент, когда он просто лежит на диске, и в момент, когда запущенная программа находится в памяти и работает - патронов там себе добавить или еще чего. В общем, занятие увлекательное, но требует особых навыков. Зато сможешь называть себя Хакером, что, в общем, можно делать и без этих хлопот.
|
|
|
тёркин василий |
Отправлено: 11 Октября, 2004 - 14:39:52
|
SecurityAgent
Покинул форум
Сообщений всего: 1197
Дата рег-ции: Май 2004
Откуда: СПРИНГФИЛД
Карма 48
|
Fermer
Спасибо,что подключился.
Nikitich
Рад тебя слышать.Спасибо за подробнейший ответ.Что незнающему человеку в этом трудно разобраться я понял.
Цитата:установить программу, которая может .exe файл преобразовать из бинарного вида в этот самый ассемблер. Эта программа, как можно догадаться, называется дизассемблером. Она также умеет и редактировать файл, так что ты можешь что-то в нем подправить и в момент, когда он просто лежит на диске, и в момент, когда запущенная программа находится в памяти и работает - патронов там себе добавить или еще чего. В общем, занятие увлекательное,
А нельзя ли показать это на самом простеньком и коротеньком файле?(ход действий и что получается)? Немного сделаю отступление.В пору,когда был популярен домашний комп Sincler(так вроде?) и появились в обиходе простенькие 286,я интересовался программированием на Бейсике.(игрушки простенькие,всякие проги примитивные и т.п.)Нравился мне этот язык. |
|
|
censored |
Отправлено: 12 Октября, 2004 - 08:09:32
|
Member
Покинул форум
Сообщений всего: 148
Дата рег-ции: Сент. 2004
Карма 0
|
Ставь тогда себе отладчик-дизассемблер SoftIce (им, кстати, программы и ломают) и сиди изучай - что/куда, какие процессы обрабатываются, в каких регистрах и т.п.
Но как хобби не получиться. Этим надо заниматься постоянно и основательно!
Так как надо знать ассемблер на достаточно хорошем уровне, да и изучение одного SoftIce у тебя займет очччень много времени. Хотя простые операции - установка ловушки MessageA (перехватака вывода окна для ввода, например, пароля) ты освоишь быстро. Но, повторюсь, этим надо заниматься постоянно.
Можешь и hex-редактор ипользовать (но тогда ты должен читать и понимать коды с листа).
Ну а если тебе надо просто разодрать *.exe на всякие составляющие, внести туда изменения и обратно все собрать (например руссифицировать (если храниться не в отдельном файле, или вытащить иконки и изображения)) - то ставь Restorator или ExeScope.
Restorator - профессиональнее! |
|
|
|
Поиск в теме | Версия для печати |
Страниц (2): [1] 2 » |
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0, скрытых: 0) |
« Ваш компьютер » |
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
|
|
|