· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Про crt

Посл.отвђт Сообщенiе


Дата: Май 24, 2004 18:16:43

Lопусим есть original.exe его взломали получили crack.exe, может ли крак иметь отличный от оригинала размер?


Дата: Май 24, 2004 18:29:37 · Поправил: bogrus

Lопусим может .

crack.exe это файл у которого байты отличаються от original.exe ? Тогда две абсолютно разные программы являються как crack.exe так и original.exe по отношению к друг другу .


Дата: Май 24, 2004 19:05:16

bogrus
Просто я думаю люди при взломе чаще ставят 90 чтобы сохранить правильные смещения в файле, поэтому и спрашиваю могут ли отличаться размерами взломанный и оригинал?
Если да то ежели не трудно приведи пример.


Дата: Май 24, 2004 19:25:31

Пример прост :
Не всегда можно просто забить 0x90 нужные места.
Ещё иногда нужно делать runtime patching.
Один из вариантов такого (я сам делал) :
В код программы добавляем код-препаратор (к примеру куда-нить вместо строки с копирайтом), а патчер добавляем как ресурс. Препаратор запускает код патчера из ресурса...
Как результат размер будет увеличен из-за ресурса.

p.s. просто засунуть EP в ресурс нельзя - ибо AVP будет ругаться на подозрение в вирусе.


Дата: Май 24, 2004 19:25:43 · Поправил: bogrus

При взломе люди что только не правят . И ресурсы меняют , и целые секции . И если размер файла изменяеться , то это ещё не значит , что смещения станут неправильными .
Главное знать где и как править . Пример в аттаче
_261944788__size.zip


Дата: Май 25, 2004 14:42:43

в PE/ELF файлах (да и в old exe частично тоже) смещение на диске слабо связано со смещением в памяти, поэтому на диске файл можно менять как угодно, но это не затронет целостности его образа. в голову приходят следующие вариаеты:
1) крак оптимизирует секции, выкидывая все лишнее
2) крак дописывает в хвост секции, имеющей виртуальный размер больше физического свой код (например, код падчера), увеличивая размер файла на диске
3) крак увеличивает/уменьшает заголовок
4) крак отсекает релоки, дебужную инфу, просто мусор за концом последней секции, который часто встречается в файлах
5) крак добавляет свой мусор в конец файла (обычно это получается при неаккуратном дампе)
6) крак действительно раздвигает секции в памяти, грубо внедря код в середину (такое редко, но встречается)
7) наконец, оригинальный файл мог быть полностью или частично упакован
8) крак использует хитрый пример, позволяющий обходить необходимость выравнивая физической длины секций
9) и т.д. и т.п.


Дата: Май 25, 2004 18:23:12

Спасибо за ответы!


Дата: Май 25, 2004 19:10:11

Допустим я имею файл размером в 1200 байт.

И вдруг последние 12 байт в этом байте мне
стали не нужны как мне из этого файла выки-
нуть эти 12 байт?

Точнее: Как укоротить мне файл на 12 байт?


Дата: Май 26, 2004 07:01:05

EvilsInterrupt
Например, переписать в новый файл первые 1188 байт, удалить оригинальный и переименовать новый в оригинальный. Или воспользоваться функцией SetEndOfFile.


Дата: Май 26, 2004 14:34:21

А без создания нового, реально?


Дата: Май 26, 2004 14:59:31

> А без создания нового, реально?
не понял вопроса. требуется усечь файл или скорректировать заголовок? если усечь - то это fseek, если же заголовок, то в PE-файлах необходимо проанализировать таблицу секций и если усекаемые байты принадлежат к послелней секции, уменьшить ее размер, хотя здесь могут быть сложности, т.к. физический размер должен быть выровнен на FA, правда если v_sz < raw_sz, то это не столь критично. так же возможно придется скорректировать image size (это смотря на сколько усекаешь), остальные поля (code size, data size) можно не трогать...


Дата: Май 26, 2004 16:09:02

kaspersky
Спасибо за грамотный ответ, на хреново заданный вопрос!


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.045