Изменяем запретное Крис Касперски Хакер, номер #090, стр. 090-122-6 Запускаем PEiD и загружаем в него какое-нибудь приложение, например общепринятый notepad.exe ака "блокнот" (см. рис. 1). Давим на кнопку со стрелочкой "–>", в правом нижнем углу. На экране появляется меню "Plugins", из которого мы выбираем пункт "CRC32" (см. рис. 2). Возникает симпатичное диалоговое окошко, сообщающее нам контрольную сумму всего файла (у мыщъх'а она равна AFBF6001h). Записываем ее на бумажке или запоминаем. Выходим из PEiD и правим файл, по своему усмотрению, в hiew'е или в любом другом hex-редакторе, который тебе больше всего нравится. Модифицированный файл вновь загружаем в PEiD и рассчитываем новую контрольную сумму, которая теперь равна A97343D5h. AFBF6001h != A97343D5h, что не есть хорошо. Заносим в поле NewCRC старую контрольную сумму оригинального файла (AFBF6001h) и жмем кнопку "Fix It". Плагин сообщает, что "4 bytes written" (см. рис. 3), и действительно дописывает к концу файла какую-то гадость (см. рис. 4). Зато контрольная сумма файла вновь равна AFBF6001h, какой она и была до модификации. Правда, длина файла изменилась. К тому же с защитами, следящими за контрольной суммой "от сих до сих", такой трюк уже не прокатывает, поэтому приходится хитрить. Берем оригинальный notepad.exe, привычным действием вычисляем контрольную сумму, затем отрезаем от его хвоста 4 байта (в hiew'е это делается так: загружаем файл, нажимаем <ENTER> для перехода в hex-mode, перемещаемся в конец файла по <Ctrl-End>, отступаем курсором на четыре байта назад, давим <F3> для перехода в режим редактирования и говорим <F10> (truncate), подтверждая всю глубину серьезности своих намерений клавишей "Y"). Модифицируем файл по своему усмотрению и fix'им его в PEiD. Как легко догадаться, корректирующие байты будут дописаны на место отрезанных. Ни длина, ни контрольная сумма файла теперь не изменится! Аналогичным образом можно корректировать отдельные блоки, если предварительно вырезать их из программы и сохранить в отдельном файле. А после модификации и исправления CRC вновь вернуть туда, где они лежали. Не от хакеров... Алгоритм CRC16/32/64/128 страхует только от непреднамеренных искажений, но для защиты от хакеров он непригоден. Используйте MD5 и другие, более продвинутые криптографические алгоритмы (кстати говоря, по производительности MD5 вполне сопоставим с CRC32, и слухи о его "неповоротливости" слишком преувеличены). Конечно, при желании можно подделать и MD5, однако для этого потребуются глубокие знания в области криптографии и нехилые вычислительные мощности, которых в распоряжении хакера, скорее всего, не окажется! |