Честно говоря не пробовал запускать программу, смотрел только код. Но видно, что меняется только одна секция .text. На самом деле изменяемых секций две. Вторая всегда размером в 3FH. Её надо дополнитьельно создать. Часто и без неё программа работает, но, к примеру Шоколатор 2 без неё запускается, работает, но при выходе происходит сбой, помогает только перезагрузка.
PS: WriteProcessMemory, так же показывает, что процессов замены два.
Денис Фатеев, 15/09/2010 08:30
Может быть, защита уже изменилась; я смотрел примерно десяток игр от Невософт, но везде меняется одна секция. Брейки на 'WriteProcessMemory' я не ставил, поскольку не видел в том необходимости.
Вообще странно, конечно. Получается, что производитель оригинальной игры линкует лишнюю секцию мусора? Иначе, как объяснить её присутствие в незащищенном/расшифрованном EXE? Производители пытаются интерактивно взаимодействовать с wrapper-ом, используя секцию в памяти как буфер?
Как вернусь из отпуска, посмотрю на «Шоколатор 2»
Сергей Сальцев, 05/10/2010 06:50
Возможно я спутал название игры (смотрел много игр) но повторно сломанный Шоколатора 2 прекрасно работал и без дополнительной секции.
Но вообще-то процессов WriteProcessMemory 2. К примеру в игре Супер Корова
В данном случае полностью заменяется 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 он навиду,а в «семерке» скрыт.
Обсуждение
Добрй день, Денис!
Честно говоря не пробовал запускать программу, смотрел только код. Но видно, что меняется только одна секция .text. На самом деле изменяемых секций две. Вторая всегда размером в 3FH. Её надо дополнитьельно создать. Часто и без неё программа работает, но, к примеру Шоколатор 2 без неё запускается, работает, но при выходе происходит сбой, помогает только перезагрузка.
PS: WriteProcessMemory, так же показывает, что процессов замены два.
Может быть, защита уже изменилась; я смотрел примерно десяток игр от Невософт, но везде меняется одна секция. Брейки на 'WriteProcessMemory' я не ставил, поскольку не видел в том необходимости.
Вообще странно, конечно. Получается, что производитель оригинальной игры линкует лишнюю секцию мусора? Иначе, как объяснить её присутствие в незащищенном/расшифрованном EXE? Производители пытаются интерактивно взаимодействовать с wrapper-ом, используя секцию в памяти как буфер?
Как вернусь из отпуска, посмотрю на «Шоколатор 2»
Возможно я спутал название игры (смотрел много игр) но повторно сломанный Шоколатора 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 может быть рарбита на несколько секций и заменяться будет какая угодно. Честно говоря не задумывался зачем нужна новая секция, ведь получается, что всё работает и без неё.
Я тоже посмотрел Шоколатора 2, видел два вызова 'WriteProcessMemory()', но дальше с 'drm.exe' копать не стал (проверил, что работает с одной секцией и «забил» на детали).
Скачал только что «Потерянные Души» с их сайта, распаковывал только StraySouls.exe, потом вынес всю DRM и файл .db, папку с игрой зипнул и унёс маме на ноут, и ещё услал сестре в Италию. У мамы пока работает. thanx bro
Всё работает отлично, СПАСИБО!!! ОГРОМММММММНОЕЕЕЕЕ!!!
подскажите, пожалуйста, что делать??при запуске игры выдает ошибку CANNOT OPEN DATABASE похоже я что-то напутала с base.db , но что именно понять не могу я в этом плохо разбираюсь.
Если вы меняли там что-то вручную, произвольным образом, то неудивительно. Общий совет: сохраните данные игры, удалите повреждённый 'base.db' и переустановите игру заново. Рабочий 'base.db' появится автоматически.
Спасибо большое, я все исправила, только оболочка игр качается в папку не drm как было раньше ,а в Nevosoft.Games.
Подскажите плиз а почему при разшифровки БД пишет ошибка расшифровки БД!?
Укажите точный текст ошибки.
Извените что побеспокоил вас. все теперь нормально. ваша програмка работает на ура! спасибо огромное. А почему была ошибка расшифровки я так и не понял.
Вопрос автору статьи…
как вы выяснили что база зашифрована XOR-ом по ключевому массиву размером 256 байт?? а исполняемый файл - массивом длиной 1024 байта??
я просто этому хочу научиться….
заранее благодарю
Исследовал wrapper, ставил брейки. На каком-то моменте шло обращение к внешнему файлу (это можно и FileMon/ProcessMon отследить). При этом было чтение из ресурсов, редактором ресурсов можно посмотреть на запрошенные данные. Это был ключевой массив. Оттуда же и размер виден, для перестраховки можно поставить брейк и посмотреть, сколько байт читается из ресурсов. Их будет 256 или 1024 (учетверенный исходный массив, типа оптимизация чтения-записи).
Касательно ключевого массива из БД, там чисто эмпирически. Посмотрел на нескольких игрушках, размер данных в поле 'crpt_inf' всегда был 1024 байт. Где-то во wrapper-e это значение прописано явно. Или размером поля в SQLite прописано, сейчас точно не помню.
Ребят подскажите где скачать Delphi 7 просто где не скачиваю везде вирус дайте пожалуйста нормальную ссылку зарание большое спасибо))))
На трекерах ищите или в старых сборниках ПО.
Подскажите,пожалуйста,как сохранить изменения после редактирования базы данных в программе SQLiteExpertProfessional3.Заранее спасибо!
Для сохранения в 'SQLite Database Browser' есть стандартная кнопка «Сохранить». Для изменения значений, если программа не даёт изменять напрямую, пользуйтесь SQL-запросами.
Моя проблема в том,что я не знаю английского и опыта нет. В 'SQLite Database Browser'есть кнопка «Сохранить»,но редактировать не дает. В 'SQLite Expert Pro 3.4.Portable'редактирую,но не знаю,как сохранить(кнопки нет). Дальше у меня будет проблема,как обратно зашифровать базу. Что такое SQL-запросы,я не в курсе. Если можете,объясните мне поподробнее.Заранее благодарю!
Если у вас задача поэкспериментировать с wrapper-ом и значениями в базе, вам нужно почитать про основы SQL. В программе есть вкладка «Execute SQL» специально для выполнения запросов. Это несложно. Например, запрос
вернёт количество строк в таблице 'games', а запрос
вернёт ключевой массив, которым зашифрована EP-секция исполнимого файла. Есть запросы для изменения данных в базе, примеры запросов посмотрите в коде утилиты 'nevootools'. Касательно зашифровки, поскольку используется 'XOR', используется та же функция, что и для расшифровки (см. выше код DecryptNevoDatabase).
Большое спасибо,Денис!
Здравствуйте, что посоветуете на счёт новой защиты Nevosoft?
Пока нет времени смотреть, что там придумали.
Доброй ночи! Подскажите, пожалуйста, что делать?? При запуске игры выдает ошибку CANNOT OPEN DATABASE. base.db я не могу найти (у меня Windows 7). Что мне делать?
Переустановить игру, если не поможет – то в техподдержку Nevosoft.
А если в службе поддержки не могут помочт с этой ошибкой что делать???
Здравствуйте Денис!Поставил сегодня Windows7 и 'nevotools' не распаковывает экзешник,а расшифровывает базу и выдает ошибку.Не подскажете в чем дело?
Давно туда не смотрел, поэтому не знаю. Или прав на чтение/запись не хватает, или алгоритм изменили.
Спасибо.Будем разбираться.Он вообще не открывает файл,а срузу пытается расшифровать базу,хотя никто его об этом и не просит.
Извини,Денис.Совсем вылетело из головы,что в трейде нужно закрывать значок.В XP он навиду,а в «семерке» скрыт.