|
|
| Посл.отвђт | Сообщен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 |