Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #29, АПРЕЛЬ 2003 г.

РАЗРЫВАЯ ПЛОТЬ - копошимся внутри ЕХЕ'шников

Андрей "Дронич" Михайлюк

Спецвыпуск Xakep, номер #029, стр. 029-098-2


На этой приятной букве Г мы закончим причины и перейдем к следствиям. Вернее, к возможным последствиям твоих художеств. Но сначала - прозекторская практика :).

ПОСМОТРИ, ЧТО ВНУТРИ

Чтобы не растеряться, лучше знать, что ты можешь найти во внутренностях файла, что можно взять себе, что можно поменять, а что можно только с придыханием потрогать и положить на место. Ты можешь наткнуться на такие вещи, как: Bitmap (картиночки), Icon или Icon Group (иконочки), Menu (структуры и контент менюшек), Dialog (все окошки со всем содержимым), StringTable (сборище строк, применяемых в проге во всяких динамических сообщениях), Version Info (сюда можно по-честному дописать "профессиональный перевод Клявина А."). Все это можно менять и редактировать средствами прог, о которых мы поговорим. В принципе, никто не мешает тебе поменять все в разделах Accelerator или RCData, но за последствия никто не ручается, ибо эти части проги не просто важны, а жизненно важны. Я тебя предупредил ^_^.

ИНСТРУМЕНТАРИЙ КАСТРАТОРА

Прог, копающих екзехи и дээлэлки, в наше время развелось больше, чем кодеров на VB среди хакерской элиты :). Выбор невелик, но выбирать придется. Для меня наиболее ценны четыре штуки, все они были попробованы в действии на моих бедных файлах, от которых остались рога да ноги :).

eXeScope

Сказал бы, что эта прога ассоциируется у меня со швейцарским ножом - есть много фич, все под рукой, все удобно. Но настоящих молотка и стамески не заменит :). Открывать умеет не только приложения и библиотеки, но и куски "Панели управления" (cpl, если кто не знает), что выглядит весьма солидно. Редактирование строк просто до безобразия (обычный Edit), а вот для диалогов, окон и менюшек встроены очень приятные средства силовой правки :). Вся эта бня, как выражается один мой товарищ, отображается в виде деревца; таким образом вложенность меню и элементов окон показывается вполне наглядно. Очень жалко только, что поиск по этим красивостям не работает. То есть если ты хочешь заменить слово "попа", а оно сохранено не в СтрингТейблах, а в меню, искать ты его будешь ручками :(. Обидно, когда меню с десяток... Радует же то, что всегда в наличии окошки для задания координат, выпадающие списки и галочки с типами объектов (например, сделать плоские кнопки в старой Опере было до боли легко). И заметь, что во время редактирования непосредственно содержимого окон ты можешь вызвать визуальный редактор диалогов (кнопка с рамкой и желтой рукой китайца). Это есть большая приятность, ибо таскать кнопки мышкой удобнее, чем высчитывать координаты. Замена ресурсов проводится простым нажатием кнопочки "Import", надо только позаботиться о соответствии типов заменяемого ресурса (не пытайся согнуть ложку... в смысле, запихать в иконку картинку и наоборот). Добротно и по-нашему. Шароварка, но это не мешает. Must have.

ResHacker

А вот эта прога все пытается сместить eXeScope с моего компа :). Уж очень она мне нравится - с одной стороны, все сделано менее кустарно и куда более стильно и эргономично, а с другой, софтина смотрится еще профессиональней :). Все ресурсы представлены в виде универсального кода на С (известен как RC), превьюхи картинок и иконок выпадают автоматом, то же касается и диалогов с менюхами. Визуальное редактирование размеров, координат и текста, естественно, предусмотрено, причем на очень высоком уровне. Если в окошке визуального редактирования выбрать жертву и задействовать пункт "Edit Resource" из контекстного меню, покажется симпатичное окно свойств объекта (почти как в среде разработки типа Delphi или CPPBuilder). А маньяки могут спокойно все править ручками прямо в тексте. Кстати, поиск тут работает по всем ресурсам, хотя иногда лажает (это связано с тем, что многие слова содержат амперсанд - знак "&", показывающий винде, что следующий символ будет подчеркнут и использован в качестве шортката для быстрого перехода к строке меню). Импорт/экспорт на уровне, и тот и другой скрыты в меню "Action". В общем, снова must have. И не забудь включить "Show Dialog", Кулибин :).

Назад на стр. 029-098-1  Содержание  Вперед на стр. 029-098-3