что бы ответить тебе на все вопросы надо пару лекций провести.
ИДА не редактор, это дизасемблер, совсем не давно унее появились еще и функции дебага. ИДА делает то что не умеют делать другие продукты (аналогичных продуктов хотя просто нет). Она лочисески связывает весь код програмы.
Ида используется для того что бюы искать функциональный код, затем зная в какой части програмы этот код находится, его изменять уже другими средствами (Не на учили ИДУ этого делать...).
Я рекомендую HIEW так как этот редактор работает в 3-х режимах (Текст, hex, disasm). В отличии от ИДЫ он не дизасемблирует весь файл, а только маленький интересующий тебя кусок. Ну и как очередной плюс он умет редактировать (во всех режимах).
ИДА только визуализирует информацию сдержищиюся в файле, никаких физических изминений она сним не делает. Тоже понятие дизасемблирование, это простро трансляция байтов в более привыйчный теккстовый вариант, более приспособленый к восприниманию.
То что ты видишь в конце знаки вопроса, это так называемая сигментная модель. Что бы тут разбиратся, надо читать про организацию памяти в процесорах:) Смысл с водится ктому что память делится на куски, и каждый кусок может выпонять какуюто строго определеную задачу, в простом случаи любая програма состоит из 3-х сегментов (код, даные, стек). Так вот, как правело пред определенными в первую очередь является сегмент кода, он может только исполнятся но не модифицироватся (в реальности эти правила контролируются на уровне процессора, но как и везде могут не соблюдатся). Так вот мы ковыряем сегмент кода, и издедка сегмент даных (воообще даные это у дел рестораторов и тд...).
Вообще если серьездно, то для патча необходимо у меть в иде только пару вещей и понимания всей кухни попросту не к чему. Достаточно уметь искать по листинку (это то что вам там ИДА все рисует:) в виде буквк стрелочек и тд.) определеное сочетание символов, команд.
Как я уже говорил у нас тут есть пара ключевых цифр: 640, 480, 800, 600. Не обходимо отыскать у частки кода где все эти 4 цифры встречаются в месте (впределах не большого блока). Опять таки цифра может быть в одной из систем исчисления (с основанием 10, 16, 2), тогда на помощь приходит поиск ЗНАЧЕНИЙ (immediate value), он найдет все цифры не зависимо от их основани. Вот нашли, сравнили с кодом который выше я на писал, сов пало визуально процентов на 90% значит оно:) Дальше запоменаем адрес функции (адреса в этом состоянии уже ЭФФЕКТИВНЫЕ(тут опять лекция)), HIEW умет работать с эффективными адресами, так как есть интерпритатор PE фаелов (ууу тут опять целая лекция:), но смысл в том что HIEW знает по какому адресу будет загружен сегмент КОДА). Загружаем HIEW, открываем наш файлик, преходим в режим Decode(дизасемблер), жмем F5 октивируется поле для перехода поадресу, следовательно если в начале адреса поставить ".", то он будет восприниматся как ЭФФЕКТИВНЫЙ, в нашем случаи это и надо, а если точку не ставвить то адрес будет интерпритироватся как смешение от начала файла.
Переходим на участок кода, ну а дальше интуитивно. Нас интересуют F3 (Edit) F9 (UPDATE), про HIEW можно почитать в инете. Там все интуитивно и просто, но самое главное, что в режиме редактирования можно просто писать на языке asm.
PS В ИДЕ не пользуйтесь графическим режимом (отображение кода в виде графов), переходите сразу в текстовый.
PSS Найдите того кто потратит на все это, гораздо меньше времяни чем вы, выгода очевидна - время:)
PSSS wap2 а тебе то какой клиент надо "расширить"?
|