Поиск:

Обсуждение

Сергей Сальцев, 14/09/2010 07:22

Добрй день, Денис!

Честно говоря не пробовал запускать программу, смотрел только код. Но видно, что меняется только одна секция .text. На самом деле изменяемых секций две. Вторая всегда размером в 3FH. Её надо дополнитьельно создать. Часто и без неё программа работает, но, к примеру Шоколатор 2 без неё запускается, работает, но при выходе происходит сбой, помогает только перезагрузка.

PS: WriteProcessMemory, так же показывает, что процессов замены два.

Денис Фатеев, 15/09/2010 08:30

Может быть, защита уже изменилась; я смотрел примерно десяток игр от Невософт, но везде меняется одна секция. Брейки на 'WriteProcessMemory' я не ставил, поскольку не видел в том необходимости.

Вообще странно, конечно. Получается, что производитель оригинальной игры линкует лишнюю секцию мусора? Иначе, как объяснить её присутствие в незащищенном/расшифрованном EXE? Производители пытаются интерактивно взаимодействовать с wrapper-ом, используя секцию в памяти как буфер?

Как вернусь из отпуска, посмотрю на «Шоколатор 2» :-)

Сергей Сальцев, 05/10/2010 06:50

Возможно я спутал название игры (смотрел много игр) но повторно сломанный Шоколатора 2 прекрасно работал и без дополнительной секции. Но вообще-то процессов WriteProcessMemory 2. К примеру в игре Супер Корова

WriteProcessMemory 1 hProcess = 0000045C Address = 401000 Buffer = 0C4A0020 BytesToWrite = B9000 — WriteProcessMemory 2 hProcess = 0000045C Address = 140000 Buffer = drm.004A21A8 BytesToWrite = 3F

В данном случае полностью заменяется 1 сеция, но это не обязательно, .text может быть рарбита на несколько секций и заменяться будет какая угодно. Честно говоря не задумывался зачем нужна новая секция, ведь получается, что всё работает и без неё.

Денис Фатеев, 05/10/2010 07:24

Я тоже посмотрел Шоколатора 2, видел два вызова 'WriteProcessMemory()', но дальше с 'drm.exe' копать не стал (проверил, что работает с одной секцией и «забил» на детали).

Renegade1979, 19/06/2011 16:57

Скачал только что «Потерянные Души» с их сайта, распаковывал только StraySouls.exe, потом вынес всю DRM и файл .db, папку с игрой зипнул и унёс маме на ноут, и ещё услал сестре в Италию. У мамы пока работает. thanx bro

Дмитрий, 01/12/2011 20:16

Всё работает отлично, СПАСИБО!!! ОГРОМММММММНОЕЕЕЕЕ!!!

Алина, 08/12/2011 20:38

подскажите, пожалуйста, что делать??при запуске игры выдает ошибку CANNOT OPEN DATABASE похоже я что-то напутала с base.db , но что именно понять не могу я в этом плохо разбираюсь.

Денис Фатеев, 09/12/2011 07:18

Если вы меняли там что-то вручную, произвольным образом, то неудивительно. Общий совет: сохраните данные игры, удалите повреждённый 'base.db' и переустановите игру заново. Рабочий 'base.db' появится автоматически.

Алина, 09/12/2011 12:54

Спасибо большое, я все исправила, только оболочка игр качается в папку не drm как было раньше ,а в Nevosoft.Games.

Евгений, 27/12/2011 05:05

Подскажите плиз а почему при разшифровки БД пишет ошибка расшифровки БД!?

Денис Фатеев, 27/12/2011 05:36

Укажите точный текст ошибки.

Евгений, 27/12/2011 07:51

Извените что побеспокоил вас. все теперь нормально. ваша програмка работает на ура! спасибо огромное. А почему была ошибка расшифровки я так и не понял. :-\

Electronic Arts, 05/02/2012 17:26

Вопрос автору статьи…

как вы выяснили что база зашифрована XOR-ом по ключевому массиву размером 256 байт?? а исполняемый файл - массивом длиной 1024 байта??

я просто этому хочу научиться….

заранее благодарю

Денис Фатеев, 06/02/2012 07:04

Исследовал wrapper, ставил брейки. На каком-то моменте шло обращение к внешнему файлу (это можно и FileMon/ProcessMon отследить). При этом было чтение из ресурсов, редактором ресурсов можно посмотреть на запрошенные данные. Это был ключевой массив. Оттуда же и размер виден, для перестраховки можно поставить брейк и посмотреть, сколько байт читается из ресурсов. Их будет 256 или 1024 (учетверенный исходный массив, типа оптимизация чтения-записи).

Касательно ключевого массива из БД, там чисто эмпирически. Посмотрел на нескольких игрушках, размер данных в поле 'crpt_inf' всегда был 1024 байт. Где-то во wrapper-e это значение прописано явно. Или размером поля в SQLite прописано, сейчас точно не помню.

Артём Дубинский, 10/03/2012 11:20

Ребят подскажите где скачать Delphi 7 просто где не скачиваю везде вирус дайте пожалуйста нормальную ссылку зарание большое спасибо))))

Денис Фатеев, 10/03/2012 11:36

На трекерах ищите или в старых сборниках ПО.

Анатолий, 04/04/2012 14:55

Подскажите,пожалуйста,как сохранить изменения после редактирования базы данных в программе SQLiteExpertProfessional3.Заранее спасибо!

Денис Фатеев, 04/04/2012 15:15

Для сохранения в 'SQLite Database Browser' есть стандартная кнопка «Сохранить». Для изменения значений, если программа не даёт изменять напрямую, пользуйтесь SQL-запросами.

Анатолий, 05/04/2012 11:34

Моя проблема в том,что я не знаю английского и опыта нет. В 'SQLite Database Browser'есть кнопка «Сохранить»,но редактировать не дает. В 'SQLite Expert Pro 3.4.Portable'редактирую,но не знаю,как сохранить(кнопки нет). Дальше у меня будет проблема,как обратно зашифровать базу. Что такое SQL-запросы,я не в курсе. Если можете,объясните мне поподробнее.Заранее благодарю!

Денис Фатеев, 05/04/2012 13:56

Если у вас задача поэкспериментировать с wrapper-ом и значениями в базе, вам нужно почитать про основы SQL. В программе есть вкладка «Execute SQL» специально для выполнения запросов. Это несложно. Например, запрос

 select count(*) from games 

вернёт количество строк в таблице 'games', а запрос

 select crpt_inf from games where id=374 

вернёт ключевой массив, которым зашифрована EP-секция исполнимого файла. Есть запросы для изменения данных в базе, примеры запросов посмотрите в коде утилиты 'nevootools'. Касательно зашифровки, поскольку используется 'XOR', используется та же функция, что и для расшифровки (см. выше код DecryptNevoDatabase).

Анатолий, 06/04/2012 15:10

Большое спасибо,Денис!

Дмитрий, 12/04/2012 06:01

Здравствуйте, что посоветуете на счёт новой защиты Nevosoft?

Денис Фатеев, 12/04/2012 13:33

Пока нет времени смотреть, что там придумали.

Людмила, 26/01/2013 18:18

Доброй ночи! Подскажите, пожалуйста, что делать?? При запуске игры выдает ошибку CANNOT OPEN DATABASE. base.db я не могу найти (у меня Windows 7). Что мне делать?

Денис Фатеев, 26/01/2013 18:38

Переустановить игру, если не поможет – то в техподдержку Nevosoft.

Анастасия, 07/03/2013 16:23

А если в службе поддержки не могут помочт с этой ошибкой что делать???

Анатолий, 19/04/2013 14:25

Здравствуйте Денис!Поставил сегодня Windows7 и 'nevotools' не распаковывает экзешник,а расшифровывает базу и выдает ошибку.Не подскажете в чем дело?

Денис Фатеев, 19/04/2013 14:45

Давно туда не смотрел, поэтому не знаю. Или прав на чтение/запись не хватает, или алгоритм изменили.

Анатолий, 21/04/2013 11:38

Спасибо.Будем разбираться.Он вообще не открывает файл,а срузу пытается расшифровать базу,хотя никто его об этом и не просит.

Анатолий, 21/04/2013 15:36

Извини,Денис.Совсем вылетело из головы,что в трейде нужно закрывать значок.В XP он навиду,а в «семерке» скрыт.



 
© 2009–2013 Денис Фатеев (Danger)
Копирование контента без указания автора преследуется сотрудниками ада.
Recent changes RSS feed
Valid XHTML 1.0
Valid CSS