Криптор - защита от дампа

Тема в разделе "WASM.BEGINNERS", создана пользователем katrus, 9 сен 2009.

  1. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Попробовал сделать дамп процессу чей запускаемый файл зашифрованн криптором и скормить его в IDA. В результате получаем код на ассемблере ненамного хуже чем код получаемый из некриптованного запускаемого файла.

    Какие есть способы улучшить защиту от дампа? Первое, что приходит в голову - "окно" в исполняемом коде которое декриптуется/криптуется паралельно с исполнением кода. Но для большого приложения это слишком сложно.
     
  2. Flint_ta

    Flint_ta New Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    312
    Испортить хидер, так как дамперы считывают откуда-то структуру файла. Можно обнулить imagebase некоторые дамперы считывают ее из из PEB, некоторые из PE - заголовка. Обнуление imagebase в PEB черевато косяками, после этого некоторые апи функции могут возвращать некорректные результаты. Обнуление imagebase в PE заголовке не слишком надежно, но траблов будет меньше. Можно полностью стереть структуру секций в PE. Можно в PE заголовке или PEB_LDR_DATA обнулить size of image. Наконец можно сделать огромный виртуальный размер последней секции. Короче вариантов масса.
     
  3. TbI_TyT

    TbI_TyT New Member

    Публикаций:
    0
    Регистрация:
    2 мар 2009
    Сообщения:
    58
    Порча заголовка толком ничем не поможет, т.к. можно из файла зачитать, что не представляет больших технических трудностей
     
  4. TriX

    TriX Member

    Публикаций:
    0
    Регистрация:
    7 мар 2008
    Сообщения:
    68
    TbI_TyT
    можно добавить еще слой, в котором для раскриптовки будут юзаться те самые значения из хидера, которые мы "испортили" , мм..?
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Flint_ta
    Все ваши методы только для тулз подходят, если дампить вручную, то на это даже внимания никто обращать не будет.
    Защита от дампа может выполняться двумя способами. Это запрет чтения памяти и сокрытие адреса. Запрет чтения памяти - с этим проблемы, так как если дампер ядереный, то можно напрямую к физической памяти обратится или свопу и считать данные. Второй способ эффективнее, как частный случай трассировка, эмуляция и тп. Эффективна замена селекторов, при которой смещение в сегменте отлично от нуля.
     
  6. TbI_TyT

    TbI_TyT New Member

    Публикаций:
    0
    Регистрация:
    2 мар 2009
    Сообщения:
    58
    Clerk
    Зачем все на блюдечке с голубой каемочкой подносить, может ты еще код за них писать будешь ? Хоть бы для приличия пару багов в изложении мыслей сделал, пусть проверяют и учатся
     
  7. Flint_ta

    Flint_ta New Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    312
    Clerk

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