Как снять защиту CD Star Force

Discussion in 'Болталка' started by superboy4, 26 Oct 2007.

  1. superboy4

    superboy4 Banned

    Joined:
    17 Jul 2007
    Messages:
    151
    Likes Received:
    19
    Reputations:
    -8
    Меня БЕСИТ эта защита! Например, если ты поцарапал диск, то игра не запустится. Знаете же игру Пираты Карибского моря и файл в ней 'engine.dll'? Всё из-за него, я даже уверен,что это файл защиты, посмотря на свойства. Надо его заменить на такой же точно файл, не выполняющий защиту, а лишь запускающий саму игру 'engine.exe'. Защиту Star Force ещё никто не поломал, так что лучше подменить её. Я не знаю, насколько я прав.
     
  2. FeraS

    FeraS Elder - Старейшина

    Joined:
    19 Jan 2007
    Messages:
    555
    Likes Received:
    420
    Reputations:
    76
    сделай образ алкоголем
     
  3. sys(64)

    sys(64) New Member

    Joined:
    26 Aug 2007
    Messages:
    0
    Likes Received:
    3
    Reputations:
    0
    torrents.ru/forum/viewtopic.php?t=101258
     
  4. superboy4

    superboy4 Banned

    Joined:
    17 Jul 2007
    Messages:
    151
    Likes Received:
    19
    Reputations:
    -8
    Ну сделал, ну и что, всё равно, зараза, не видит копию-диск, а с оригинала пашет!!!
     
  5. Onix

    Onix Elder - Старейшина

    Joined:
    19 Apr 2006
    Messages:
    102
    Likes Received:
    7
    Reputations:
    -4
    http://gamecopyworld.com
     
  6. superboy4

    superboy4 Banned

    Joined:
    17 Jul 2007
    Messages:
    151
    Likes Received:
    19
    Reputations:
    -8
    поганый СТАРФОРС!!!!!!!

    Оригинал-то у меня в беспонтовом состоянии из-за того, что постоянно пихаю в CD-rom!!!!как отучить Pirates of Caribbean от диска??? Подкиньте мне хакнутую DLL-ку(engine.dll)!!!!
     
    #6 superboy4, 12 Nov 2007
    Last edited: 12 Nov 2007
  7. BlackCats

    BlackCats Elder - Старейшина

    Joined:
    1 Feb 2006
    Messages:
    642
    Likes Received:
    630
    Reputations:
    -3
    сам хотел создать тему, кароче такая байда: диск друга - сильно исцарапал, у меня работает, но у друга сидиром просто не пррочтёт, копии - последним неро(8) делал, всёравно нехочет работать, устанавливается норм, а при проверке диска говорит"вставте лецензию" мне неохота ему новый диск покупать... он 300р стоит..
     
  8. [dword]

    [dword] Elder - Старейшина

    Joined:
    11 Apr 2007
    Messages:
    109
    Likes Received:
    74
    Reputations:
    40
    Alcohol и подобные ему программы, эмуляторы в т.ч давненько уже не берут ее. Тут индивидуальный подход к каждой игре нужен, отладчик\дизасм. в зубы и вперед. Проверка на физическом уровне проходит, никакие образы и топологии не помогут (за исключ. старых версий). Это больше вопрос к реверсерам наверное.
    Вывод:
    Искать NoCD сделанный уже за вас
    Делать его самому.
     
  9. superboy4

    superboy4 Banned

    Joined:
    17 Jul 2007
    Messages:
    151
    Likes Received:
    19
    Reputations:
    -8
    Да, ты прав, даже старрффак не помогает, вылезает ета хррень
     
  10. Фещ

    Фещ Banned

    Joined:
    20 Aug 2007
    Messages:
    92
    Likes Received:
    91
    Reputations:
    -11
    Как скопировать диск защищенный StarForce 3

    Ваш CD-привод не работает со StarForce?
    Вы не хотите каждый раз вставлять диск с игрой в привод, боясь поцарапать его?
    Тогда эти советы для Вас. (проверено на самой «неломаемой» игре «В Тылу Вага»)
    Что понадобиться:
    1. Alcohol 120% - желательно последней версии (испытано на 1.9.2.1705)
    2. UltraISO - желательно последней версии (испытано на 7.21 SR2)
    3. Лицензионный диск с игрой

    Что делать:
    1. В папке куда установлен Alcohol 120% находим файл AxType.ini, и в конец файла добавляем следующие строчки:
    ----------линия отреза----------
    [StarForce 3.x сonfig]
    MAX Read Speed=65535
    Skip Read Error=0
    Fast Skip Read Error=0
    Read SubChannel Data=0
    Read PreGap Area=0
    DPM=1
    DPM Precision=1
    MAX Write Speed=65535
    Fix EFM Error=0
    Burn RMPS on Disc=0
    RecordMethodCount=4
    RecordMethod_00=0x01
    RecordMethod_01=0x02
    RecordMethod_02=0x03
    RecordMethod_03=0x04
    ----------линия отреза----------
    Либо создаем подобный профиль вручную:


    Некоторые люди рекомендуют устанавливать чекбокс «Чтение субканальных данных…». У меня при данной настройке пустой .mdf не монтировался. Появлялось сообщение «неверный файл-образ».
    Запускаем копирование диска с данным профилем.
    Скорость измерения DPM лучше установить равной 1

    После того как DPM измерен и началось копирование диска, процесс можно прервать. На вопрос «сохранить ли файлы» ответить утвердительно.
    2. В UltraISO открываем файл *.mdf и удаляем из него все файлы и папки.
    Сохраняем в виде BIN. Полученный *.bin переименовываем в *.mdf, а *.cue просто удаляем. (Вместо *, естественно имя игры.) В итоге остаются два файла *.mdf и *.mds
    3. Выключаем компьютер, открываем корпус и отключаем все CD-приводы.
    Другой вариант – в BIOS отключаем IDE канал на котором стоят привод(ы) CD. Именно IDE канал, иначе, по крайней мере у меня, драйвер StarForce все равно определяет наличие CD-привода.
    4. Включаем компьютер, монтируем образ, и запускаем игру.

    ===============================================

    С третьим старфорсом это прокатывало, с 4-ым - вряд ли.


    или

    Вот еще статейка, как отучить игры от проверки CD-ROM (на примере Hellfire):

    Использованные программы: Hellfire v2.0, W32Dasm v8.9, Dos Navigator v1.5
    В статье рассматриваются следующие вопросы:

    Заменяем в программе HellFire v2.0 проверку с диска CD-ROM на сетевой диск
    Пишем Fake-CD для OS Windows 95
    Заменяем в программе HellFire v2.0 проверку с диска CD-ROM на сетевой диск

    Суть проблемы состоит в том, чтобы доказать программе, что винчестер на самом деле совсем не винчестер, а CD-ROM. Или скажем - как в данном случае - в выдаче за локальный CD сетевого, ну один CD на работе, а играть-то всем охота!
    Приступим. Цель - Функция GetDriveType(). Она возвращает тип диска, имя которого ей передали. Вот ее прототип:


    UINT GetDriveType(LPCTSTR lpRootPathName);
    Функция возвращает следующие значения:

    Числовое
    значение Идентификатор Описание диска
    0 - Невозможно определить тип
    1 - Диск не найден
    2 DRIVE_REMOVABLE Гибкий (возможна замена)
    3 DRIVE_FIXED Жесткий (замена невозможна)
    4 DRIVE_REMOTE Сетевой диск
    5 DRIVE_CDROM CD-ROM
    6 DRIVE_RAMDISK RAM - Диск

    Стандартно программа получает список всех дисков, проверяет их на "CDромность" и по нахождению проверяет наличие нужных файлов. Для проверки, необходимо, очевидно, сравнить возвращаемое значение с 5. Найдем этот момент программы, вот как он выглядит после дизассемблирования HellFire с помощью W32Dasm :


    Reference To: KERNEL32.GetDriveTypeA, Ord:00DFh |
    :0041D976 FF151CA56F00 Call dword ptr [006FA51C]
    :0041D97C 83F805 cmp eax, 00000005
    :0041D97F 752A jne 0041D9AB

    В принципе можно использовать любой другой дизассемблер, или SoftICE, в последнем случае для нахождения нужного куска необходимо написать:

    bpx GetDriveType
    bpx GetDriveTypeA
    В самом же W32Dasm можно воспользоваться списком использованных функций. Ищем KERNEL32.GetDriveTypeA и два раза щелкаем по функции мышью. В IDA такой список есть в конце отдизассемблированного файла. Листинг полученный Sourcer'ом придется исследовать обычным текстовым поиcком.
    Запишем HEX-DUMP этого куска и найдем его в шеснадцатеричном редакторе. Например в DN: откроем файл hellfire.exe по F3, далее F4 (переход в HEX режим), F7 (поиск), в строке ввода HEX строки введем записанное ранне и вперед (т.е. ENTER).

    Вместо 83F805 введем 83F804 и любой из подключенных сетевых дисков теперь будет восприпринят прораммой за CD, иначе введем 83F803 - тогда жесткие диски будут приниматься за CD. Фантазия может развиваться по-любому, можно изменить условие перехода после сравнения, тогда не придется заботится о типе диска.

    Вот и все на сегодня, в следующий раз можно будет поговорить о минимизации количества данных, копируемых с диска. Эта проблема отнюдь не тривиальна, так как файлы обычно храняться в виде типа PAK как, например в QUAKE. Для простых же программ можно посоветовать обнулить все WAV, AVI файлы. Для этого есть специальные утилиты, но, конечно, проще создать файл нулевой длинны с таким же именем, например по Shift-F4 в любом дисковом коммандере (DN,NC,etc.).

    Пишем Fake-CD для OS Windows 95

    Для DOS существовала прекрасная утилита - FakeCD, которая подменяла MSСDEX и эмулировала таким образом CD-диск который, на самом деле, был каталогом на винчестере. Для Win95 такую программу найти не просто, поэтому необходимо ее сделать самим. Этим мы и займемся, тем более, что это будет прекрасная практика по копанию в недрах 95'ого.

    Посмотрим на проблему, обсуждавшуюся раннее, с другой стороны. Заменим не использование функции, а саму функцию. Если в DOS для замены функций необходимо только было изменить обработчик прерываний, то в Windows такой финт уже не поможет. Выясним, где "живет" GetDriveType(). И - о ужас - это главная библиотека Win95 KERNEL32.DLL. Что делать? Как всегда, запастись кофе и напуcтить на KERNEL32.DLL дизассемблер. OK, ждем окончания процесса и смотрим список экспортируемых функций. Вот нужная нам:

    Exported fn(): GetDriveTypeA - Ord:013Fh
    :BFF777C4 57 push edi
    :BFF777C5 6A21 push 00000021
    ...
    ...
    ...
    :BFF777E1 F2 repnz
    :BFF777E2 AE scasb

    * Referenced by a (U)nconditional or ©onditional Jump at Address:
    |:BFF777DA©
    |
    :BFF777E3 648F02 pop dword ptr fs:[edx]
    :BFF777E6 83C408 add esp, 00000008
    :BFF777E9 5F pop edi
    :BFF777EA E9E5D4FFFF jmp BFF74CD4
    Делаем переход в конце(кнопка Jump to на панели W32Dasm) и видим продолжение. Функция, оказывается-то, длинная! Не будем в ней разбираться, а лучше вспомним как происходит возврат значения из функции. Т.о. ищем строку типа

    mov eax,03000000
    Нашли? Далее, как и при любом взломе, запомним последовательность HEX кодов нужной команды (а лучше нескольких следующих, так как загрузка в аккумулятор числа 3 не самая редкая операция) и найдем этот блок в копии библиотеки (в копии - потому что файл используется системой и не может быть изменен). Все, осталось лишь в режиме DOS подменить KERNEL32.DLL. Перезагрузимся и в Проводнике насладимся результатом - все ваши жесткие диски представленны в виде кругленьких пластинок ранее обозначавших CD.
    А теперь - для ленивых - кусок кода, который возвращает 3:

    * Possible Reference to String Resource ID=00003: "....."

    | :BFF74E0F B803000000 mov eax, 00000003 //Возвращаемое значение
    :BFF74E14 EB05 jmp BFF74E1B //Переход на возврат

    * Referenced by a (U)nconditional or ©onditional Jump at Addresses:
    |:BFF74DEB©, :BFF74DFC©, :BFF74E0D©
    |

    * Possible Reference to String Resource ID=00006: "..."
    Да - лучше сохранить старый KERNEL32, так как некоторые программы могут не оценить ваш юмор, и решить, что несколько CD и ни одного винчестера - это слишком. А вообще идеально было бы изменить функцию коренным образом. Скажем сделать CD дисками все, начиная с T. Тогда можно было бы подключать subst'ом каталоги, которые были бы CD, а винчестеры остануться винчестерами. Но это уже задание на дом. Удачи!


    честно стырено с 0day.kiev.ua :)
     
  11. superboy4

    superboy4 Banned

    Joined:
    17 Jul 2007
    Messages:
    151
    Likes Received:
    19
    Reputations:
    -8
    дА ты прав, [dword], нужно дизассемблировать и декомпилировать экзешник, чтобы в нём не было процедуры вызова библиотечки защиты. её несложно определить,хоть и строк десятки тысяч с подключаемыми модулями, вероятно...
     
  12. Дрэгги

    Дрэгги Elder - Старейшина

    Joined:
    26 Aug 2005
    Messages:
    284
    Likes Received:
    398
    Reputations:
    182
    /threadnav51591-1-10-%E7%E0%F9%E8%F2%E0.html вот еще почитай там ниже есть пост.
     
  13. superboy4

    superboy4 Banned

    Joined:
    17 Jul 2007
    Messages:
    151
    Likes Received:
    19
    Reputations:
    -8
    Понимаете, я НЕ собираюсь зарабатывать на защите StarForce деньги, я лишь хочу без диска играть!!!!