Сейчас на форуме: Rio (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Помощь с сокрытием патчинга...
<< . 1 . 2 .
Посл.ответ Сообщение

Ранг: 137.9 (ветеран), 45thx
Активность: 0.080
Статус: Участник

Создано: 24 мая 2008 20:05
· Личное сообщение · #1

Есть програма с навешаним ExeCryptom, снять его и взломать програму не очень сложно, но скаждым обнолением (а это может быть и каждую неделю) разработчики залатывают дыры. Решил написать лоадер, чтобы не сильно паливно видно что патчиться, а его накрыть чем то, но сняв дамп все равно будет видно, исправления... Как сделать так что бы, не можна было понять как имено был произведен залом?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 26 мая 2008 16:12 · Поправил: Archer
· Личное сообщение · #2

Да вижу я, что автор не сможет отписаться. По-хорошему топик вообще закрыть надо... Ладно, пока перекинул в новички.

Мессага от kioresk вдогонку
Дык, дельного никто и не напишет, поскольку как ты там лоадер за защищай, банальное сравнение секций оригинального и патченного файлов (как уже писалось) все равно покажет где и что было исправлено.

Если бы сам заморачивался по поводу скрытия, то просто прошелся бы по распакованному и пропатченному файлу и немного бы разгреб обфуцированные инструкции (не путать с виртуализованными).

Для примера, можно взять один из паттернов обфуцированного jmp:

offset_1: call offset_5
offset_2: ..
offset_5: xchg eax, [esp] (или mov [esp], eax)
offset_6: pop eax
offset_7: ...

и заменять его на:

offset_1: jmp offset_7

Алго по замене будет не очень сложный:
1. ищешь E8
2. вычисляешь адрес, куда указывает прыжок
3. читаешь дворд по этому адресу (т.к. у xchg/pop опкодов как раз 4)
4. and 0x0F0FF00FFh (т.к. может использоваться любой регистр)
5. сравниваешь с 87 00 24 50 (xchg...) или с 89 00 24 50 (mov...)
6. все хорошо — вычисляешь адрес и заменяешь call на jmp

А паттернов у криптора много разных.

Но разработчики также могу написать простенькую прогу и при сравнении оригинала и пропатченного вариантов просто откидывать места где было E8 XX XX XX XX, а стало E9 XX XX XX XX. Т.е. все твои исхищрения просто усложнят поиск пропатченных мест, но как известно — при желании все возможно.

Поэтому я бы даже не стал бы заморачиваться над этим.


<< . 1 . 2 .
 eXeL@B —› Вопросы новичков —› Помощь с сокрытием патчинга...
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати