Шифрование кода выполняющегося по условию

Тема в разделе "WASM.CRYPTO", создана пользователем GoldFinch, 22 окт 2008.

  1. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Помогите, гугл меня забанил, читать книги я разучился

    Задача такая: если "строка" равна искомой_строке - выполнить код
    Если считать хеш "строки" и сравнивать его с хешем искомой_строки по одному алгоритму,
    потом если хеши совпали, генерить из "строки" ключ по другому алгоритму и расшифровывать этим ключем код,
    реально ли спалить до выполнения условия что это была за "строка" и что делает код?
     
  2. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Уже стремно :)
     
  3. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    GoldFinch
    учись заново, а помимо гугла есть и другие поисковики.
    слишком муторно для анализатора. хотя анализатор может идти другим путём: запись в исполняемые страницы по - любому акция подозрительная.
     
  4. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    меня больше люди беспокоят чем эвристика
     
  5. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    GoldFinch
    тоесть? ты хочишь защиту от мозга человека?:)
     
  6. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    я хочу чтобы тот кто будет копать мой код не узнал что и когда этот код делает до того как код это чтото сделает.
     
  7. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    GoldFinch
    ну, уж тут всё зависит от того, как твой код ковырять буют: если кодокопатель сразу начнёт искать вызовы функи записи в процесс и установки страниц на исполнение, то они их обнаружат. а после бряк на вызов и смотреть что исполняется до бряка. а ещё лучше могут код подфиксить и в кастроварианте запустить, как ни крути, а запись в исполняемые страницы весьма специфичная штука и для обычных прог она ненужна.
     
  8. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    "запись в исполняемые страницы" производится любым упаковщиком, если на проге написать что она запакована, палева 0
    идея в том что если условие не выполняется кодокопатель сможет увидеть только то что прога чтото проверяет, вернее он увидит что прога например ищет наличие какой-то записи в реестре, или файла на диске, или проверяет дату, но пока условие не выполнится, что именно прога ищет он узнать не должен, и какой код при этом выполнится он знать не должен.
     
  9. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    GoldFinch
    только заметь, распаковщик работает в самом начале и отследить его вызовы на запись сравнительно просто.
     
  10. scf

    scf Member

    Публикаций:
    0
    Регистрация:
    12 сен 2005
    Сообщения:
    385
    Шифровать код на самом деле необязательно:
    Было:
    Код (Text):
    1. a = 1;
    2. b = 2;
    3. c = a + b;
    4. if (c == 4) {
    5.    c++;
    6. }
    Стало:
    Код (Text):
    1. if (key > 30) a = key - 99;
    2. if (key/25 == 4 || a == b) {
    3.   b = key - 98
    4.   c = a + b;
    5. }
    6. if (key < 0 && c == a) {
    7.   c = b;
    8. }
    9. if (key < 200 && c == key - 96) {
    10.    c += key - 99;
    11. }
    Не зная значения ключа key=100, реверсировать этот код бесполезно.
    На практике можно использовать несколько ключей, добавлять "неработающие" условные переходы, шифровать ключом адреса переменных и переходов и т.п. - на что фантазии хватит
     
  11. dag

    dag New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    446
    key/25 == 4 || a == b ... прикололся чтоли ???
     
  12. dag

    dag New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    446
    GoldFinch
    На подобе такого используют некоторые крипторы, например тот что использует 0x05EB04EB,0x0189 для обозначения покриптованного блока. В случае остуствия ключа код не расшифруецо, даже если знаешь алгоритм шифрования.