анти ArtMoney

Тема в разделе "WASM.RESEARCH", создана пользователем severe44, 3 июн 2005.

  1. severe44

    severe44 New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2003
    Сообщения:
    4
    Есть такая программка ArtMoney. Она позволяет достаточно подробно исследовать (делать поиск, выборки и т.д.) данные запущенной программы.

    Вопрос: как (чем) запретить доступ этой и подобной ей программам к данным процесса в памяти?

    Главная проблема в том, что защищаемая программа только в виде exe, без исходников.



    Из опробованного мной это получилось сделать только x-protector'ом. Если зашифровать им файл, то ArtMoney просто не видит данных запущенной программы.

    Чем еще можно сделать подобное?
     
  2. yureckor

    yureckor New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    494
    Адрес:
    Russia
    Да просто шифруй значения в игре.

    Т.е. например (набранные_баллы xor 12345678h)

    ArtMoney просто ищет числа до изменения и после изменения и находит совпадающие адреса. А если у тебя в памяти числа шифрованые, то...



    [Edited] sorry, не заметил что только exe'шник.

    Попробуйте разные крипторы, они контролируют целостность кода против crack'а, должны и данные защищать.
     
  3. severe44

    severe44 New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2003
    Сообщения:
    4
    Это слишком легко.

    1. Найти адрес зашифрованного значения (по абсолютному адресу или относительно незашифрованных данных).

    2. И даже методом тыка подобрать нужные значения.



    Это даже пионер, который про xor ничего не слышал сделает :dntknw:



    Сейчас, например, разбиваю данные на части, храню байты в разных местах шифрую их и еще их контрольную сумму считаю и храню ее отдельно. Но столкнулся с тем, что мест которые надо защищать слишком много и постоянно находятся новые данные, которые надо шифровать и скрывать. Без исходников таких патчей много не наделаешь. Поэтому и есть желание скрыть все.
     
  4. severe44

    severe44 New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2003
    Сообщения:
    4
    yureckor

    Попробуйте разные крипторы, они контролируют целостность кода против crack'а, должны и данные защищать.





    Должны то должны, но большинство обпробованных из "Инструментов" защищают только исполняемый код (антипатч в памяти). С данными только с x-prot пока получилось.
     
  5. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    > С данными только с x-prot пока получилось



    Код тут нипричем - надо запретить программам открывать свой процесс с помошью OpenProcess(), чтоб потом не использовали ReadProcessMemory(), и не давать внедрять dll'ки через ловушки и CreateRemoteThread(). Методов много, но все они для нулевого кольца и непацанским патчем функций ядра == нужна дровина (у шпрота она имеется).
     
  6. yureckor

    yureckor New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    494
    Адрес:
    Russia
    >даже пионер, который про xor ничего не слышал сделает

    Причем здесь человек, если защита от ArtMoney?

    Если защита от взома, то как говорится, поиск по форуму рулит :)
     
  7. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Я пишу немного конкурентный Artmoney взломщик игр WinnerGameCheater, и мое имхо - защита памяти процесса дело бессмысленное (к примеру у меня скоро возможно появится ядреный драйвер, позволяющий успешно инфильтровать dll в защищеные игры). Очень хорошо здесь пригодится неявная защита (ее где-то упоминал Крис Касперски), то есть значение будет и находится и менятся, но после этого в логике программы будут возникать проблемы вплоть до вылета ее. То есть защищеному значению должна быть сопоставлена зашифрованная пара.

    Еще хороший вариант, хотя и не производительный - защищенные данные хранить в странице памяти с аттрибутом PAGE_NOACCESS, и перед доступом к ней аттрибут менять на PAGE_READWRITE. Как результат эта страница с очень малой долей вероятности попадет под внимание взломщика, что при многократных отсевах очень даже хорошо.



    Ну и наконец чисто алгоритмический метод - значение состоит в разбиении защищаемого значения на два или более шифрованных значения, которые изменяются по очереди при

    изменении защищаемого.
     
  8. Red Alert

    Red Alert New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2005
    Сообщения:
    20
    По-моему при использовании АrtMoney, T-Search итд.

    - смысл в вылавливании изменившихся значений при изменении игровой ситуации. (я правильно понял - это игра ?).А если при каждом сёрч-некст в переменной показывается разное значение, то ищущий обычно выкидывает его из списка, так заведи лажевые переменные штук 100 или 10000 на вкус(да не убудет от хипа ;), которые показывают " да, вот ТУТ новое значение" ,а реальное значение заставь динамически меняться, к примеру привяжи его к чему нибудь типа тиков таймера (пяток лишних таймеров - дело хозяйское).Да плюс предложенное выше -> 3атрахаются ковырять (но это для ArtMoney и ПОДОБНЫХ инструментов исследования).

    P.S. А может, я неправ ;)))))))))))
     
  9. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    severe44



    Достаточно с некоторой периодичностью менять положение переменнной в памяти. При этом ее можно даже не шифровать.
     
  10. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Для предотвращения взлома с участием отладки, важно что-бы программа не оставляла вычисленный результат зашифрованного значения, на одном и том же месте (например в стеке, как это часто бывает). Тогда не удасться его обнаружить методом послеовательных отсевов (в том числе, через поиск неизвестного значения) и поставить data breakpoint.
     
  11. mOzG

    mOzG New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2005
    Сообщения:
    11
    a esli wsetki ktoto postawil na pamyti PAGE_NOACCESS 4em posowetuete le4ity 4tobi wsetki pro4esty?
     
  12. CRONUZ

    CRONUZ New Member

    Публикаций:
    0
    Регистрация:
    22 июн 2007
    Сообщения:
    101
    Я че мешает делать так:

    1) Создать 4 массива переменных
    2) Получить в первый наше значение
    3) Заполнить 2 массив нашим значением
    4) Заполнить 3 массив нашим значением
    5) Заполнить 4 массив нашим значением
    6) Очистить 4 и получить в него первое значение +

    Скопировать значение 4 массива в дополнительный массив
    и изменять его при изменении реального значения и т.д.

    +

    x-protector.

    +

    Нахождение ArtMoney
     
  13. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Red Alert
    За 100 баксов,естественно никто ковыряться не будет, а вот за 10000...
     
  14. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    Все критичные для взлома данные храни в динамически выделяемой памяти, а не в виде глобальный переменных, которые у тебя лежат в секции данных.