Сейчас на форуме: asfa, bartolomeo (+8 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Помощь во взломе игры |
Посл.ответ | Сообщение |
|
Создано: 28 июня 2012 16:39 · Личное сообщение · #1 Добрый день ![]() немного оффтопа: давным-давно играл в старую игрушку, но мне нравилась, как-то решил поиграть, но ее не оказалось (была на диске), тогда начал искать в инете, нашел версий 6 (русские+английские+хакнутые+нехакнутые), но у всех были проблемы (вылеты/низкое разрешение/не русифицирована полностью/неработающие читы...) тогда решил сделать свою сборку, ну и потратив недельку на поиск библиотек, правку ресурсов, починку читов... сделал, осталась одна проблема, была хакнутая версия главного ехе версии 1.0.1.23 в ней наблюдались некоторые проблемы, и 1.0.6.8, в ней этих проблем не было, но она была не хакнута, тогда я решил сделать хак Сам я программист, но асм знаю плохо, С знаю получше, ну и посидел я день в отладчике, но даже не нашел кода с защитой (зеленый был, да я щас такой же), тогда решил изучить систему защиты, а защита простая, в реестр пишется CDImage, возможно там хеш диска или еще чего, но проверяется только структура диска, тогда я сделал образ, полностью идентичный по структуре с оригинальным, но файлы пустые, все прошло, сейчас решил еще раз попробовать хакнуть ехе. Итак, в IDA подключив сигнатуры нашел пару функций касательно CD, но код на асме не особо понятен, хотелось бы привести его к си, сигнатуры в составе и найденные не особо помогли, решил свои сделать, зная, что использовался компилятор Visual C 5.1 (Visual C++ 97), еле нашел этот компилятор на старых фтп мелкомягких, скачал, но не могу создать сигны, к одной либе получилось, остальные нет, читал ман пару часов, как только не экспериментировал с ключами, но не особо понятно, не подскажите ли, что надо ввести и что пихать, только .lib или находящиеся там .pdb мож? Сама защита - окошко с просьбой вставить диск, оно находится в ресурсах дллки проги, знаю в каком блоке сообщение находится, также в ольке нашел место, откуда вызывается дллка, но переход в это место происходит из ntdll(так в стеке написано), также есть одно место в самом ехе игры, хотелось бы в иде найти си-фицированный код, тогда бы многое стало понятно. Также подскажите, может легче следить за вызовом винапи функции или сравнить дампы при вставленном диске и без или еще чего... Извините за "многабукаф", но хотел полностью описать все, и самому взломать, защита имхо очень простая, хотя можно было бы попросить, чтоб взломали, думаю это не заняло бы много времени у профи ![]() ![]() |
|
Создано: 28 июня 2012 16:42 · Личное сообщение · #2 |
|
Создано: 28 июня 2012 16:46 · Личное сообщение · #3 |
|
Создано: 28 июня 2012 17:01 · Личное сообщение · #4 |
|
Создано: 28 июня 2012 17:13 · Поправил: novashdima · Личное сообщение · #5 Гуглил, ничего вразумительного не нашел. в той статье, на которую вы скинули ссылку тоже не особо описано, как определить тип длл например, какой ключ для чего применяется, какая утилита нужны, для каких файлов вообще работает для каких языков, нашел пример: E:\flexlm\v8.0\i86_n3>pcf lmgr.lib lmgr lmgr.lib: skipped 0, total 142 и толку то от него, если я это все перепробовал и единственное, что я получаю после такой команды это: Can't open input file 'libc.lib' а почему, как с этим бороться нигде не написано, поэтому и попросил помощи, я же не зря сказал, что пару часов копал на эту тему Archer пишет: Со статей для новичков начать... Так ведь я так и написал, подскажите как то сделать и как это, киньте ссылочки на статьи, полезные в конкретном случае, а то, что надо изучать я итак это знаю. Насчет основ, читал я и основы работы с олькой и другие статьи и на этом сайте и на других. п.с. вы меня прям уж совсем ниже плинтуса опустили, я знаю что почти ничего не знаю, но такое очевидное писать ну уж прям совсем ![]() |
|
Создано: 28 июня 2012 18:01 · Личное сообщение · #6 |
|
Создано: 28 июня 2012 22:17 · Личное сообщение · #7 novashdima пишет: п.с. вы меня прям уж совсем ниже плинтуса опустили, я знаю что почти ничего не знаю, но такое очевидное писать ну уж прям совсем А как ты хотел? Не зная основ, сам ты сделать ничего не сможешь и придется все делать за тебя... ОСНОВЫ - это ВСЕ! Никто не сможет есть суп, пока не научиться держать ложку. Никто не сможет научиться ездить на машине, пока не знает, какая педаль за что отвечает... и так далее... Выдай ссылку на игру, покажи - чему ты научился, когда читал статьи! И тогда люди к тебе потянутся, начнут подсказывать... Более никак... ----- One death is a tragedy, one million is a statistic. ![]() |
|
Создано: 28 июня 2012 23:00 · Личное сообщение · #8 Да, игра старая, 1999 года, я же и говорю, хак должен быть простой, поменять переход или адрес перехода я смогу, только надо найти, где проверка выполняется, поэтому я и хотел сделать сигнатуры для иды и посмотреть код в си, тогда уж и в отладчике все сделал бы. ZaZa пишет: Не зная основ, сам ты сделать ничего не сможешь и придется все делать за тебя Под основами все понимают разное, если самые самые основы, то я их знаю. Я же описал систему защиты, что нашел, вот и спрашиваю, в какую сторону копать: ловить вызов дллки с сообщение, или работу с реестром, смотреть найденный сигнатурами в иде код работы с образом СД, сравнивать дампы с диском и без и потом сравнивать или сравнить ломаный ехе старой версии и неломанный. ![]() |
|
Создано: 28 июня 2012 23:20 · Личное сообщение · #9 |
|
Создано: 28 июня 2012 23:32 · Личное сообщение · #10 novashdima Дай уже игру... ну или название хотя бы... интриган ----- One death is a tragedy, one million is a statistic. ![]() |
|
Создано: 28 июня 2012 23:44 · Поправил: -=AkaBOSS=- · Личное сообщение · #11 novashdima пишет: код на асме не особо понятен, хотелось бы привести его к си ну приведешь, и что? патчить-то один фиг придётся на асме... сомнительно, чтобы декомпиляция в си стоила пары байт патча novashdima пишет: проверяется только структура диска, тогда я сделал образ, полностью идентичный по структуре с оригинальным, но файлы пустые, все прошло это называется MiniISO теперь можно попробовать подключиться к проге каким-нибудь API-шпионом, либо расставлять бряки в отладчике. даже если проверяется только наличие файлов, обращения могут быть самыми разными: от банальных CreateFile/FindFirstFile/FindNextFile до неочевидных проверок типа GetFileAttributes/SetFileAttributes /ADD NikolayD пишет: Игрyшка как называется? RE? hlmadip пишет: Игра Recoil? битва экстрасенсов продолжается ![]() ![]() |
|
Создано: 28 июня 2012 23:54 · Личное сообщение · #12 novashdima пишет: Сам я программист, но асм знаю плохо ![]() ![]() ![]() вам сюда ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 29 июня 2012 00:18 · Поправил: hlmadip · Личное сообщение · #13 Игра Recoil? Гадания какие-то начались. novashdima пишет: Я же описал систему защиты, что нашел, вот и спрашиваю, в какую сторону копать: ловить вызов дллки с сообщение, или работу с реестром, смотреть найденный сигнатурами в иде код работы с образом СД, сравнивать дампы с диском и без и потом сравнивать или сравнить ломаный ехе старой версии и неломанный. Возможно, программа работает так: получение списка дисков -> проверка типа диска(GetDriveType)-> поиск на диске необходимых файлов(пост -=AkaBOSS=-'а). В таком случае отловить проверку диска и проверку файлов. ![]() |
|
Создано: 29 июня 2012 01:50 · Личное сообщение · #14 hlmadip пишет: Игра Recoil? Ведь несложно найти, правда, ники у меня везде одинаковые))) Поэтому да, игра Recoil. hlmadip пишет: GetDriveType Насколько я помню эту функцию я и видел в списке юзаемых в инфе об ехе. ClockMan пишет: упаси боже юзеров от твох программ... Дык я же не на асме пишу, или вы хотите, чтобы после того, как я скомпилил прогу я открывал ее в отладчике и проверял, насколько хорошо работает оптимизация компилятора(есть у меня знакомый программист, каждый такт считает) или может вы хотите, чтобы я на асме писал? так может сразу на машинных кодах? А за ссылочки на винапи спасибо, хотя у меня вместе с комилятором ставилась и оффлайн помощь мсдн и другие.... -=AkaBOSS=- пишет: ну приведешь, и что? патчить-то один фиг придётся на асме...сомнительно, чтобы декомпиляция в си стоила пары байт патча это только для понимания что где и как происходит, нет ли доп проверок каких или еще чего ![]() |
|
Создано: 29 июня 2012 01:54 · Поправил: hlmadip · Личное сообщение · #15 novashdima пишет: Ведь несложно найти, правда, ники у меня везде одинаковые)))Поэтому да, игра Recoil. Искал не по нику. Ну теперь выложи что-ли главный исполняемый файл, а то с торрентов долго тянется upd novashdima пишет: Насколько я помню эту функцию я и видел в списке юзаемых в инфе об ехе. Ну так что мешает посмотреть, где и как она используется? ![]() |
|
Создано: 29 июня 2012 02:51 · Личное сообщение · #16 hlmadip пишет: Ну так что мешает посмотреть, где и как она используется? хм... так это же насколько я знаю (т.е. не знаю) только в отладчике найти можно, а как поставить брейк на винапи функцию??? а узнал я о том, что она юзается после изучения ехе в PeExplorer приатачил ехе игры ![]() ![]() |
|
Создано: 29 июня 2012 03:07 · Поправил: hlmadip · Личное сообщение · #17 Используй IDA Процедура проверки кажись такая же, как и в версии 1, 0, 1, 23 Адрес для остановки 4A59E0 novashdima пишет: хм... так это же насколько я знаю (т.е. не знаю) только в отладчике найти можно, а как поставить брейк на винапи функцию??? ![]() |
|
Создано: 29 июня 2012 06:21 · Поправил: ZaZa · Личное сообщение · #18 hlmadip пишет: Адрес для остановки 4A59E0 Все верно: Code:
Затем идет перебор всех дисков и проверка на то, что представленные диск является CD/DVD... Code:
И если это действительно CD/DVD, то проверяем наличие файла: "\video\intro_01.avi"): Code:
И если файл присутствует, то происходит прыжок на адрес 004A5A74, а там: Code:
Поэтому можно сделать вывод, что всего-то нужно сделать: 1. Скопировать в корень диска C:\ всю структуру файла (ну или изменить пути в программе). 2. Изменить: Code:
на: Code:
А потом сохранить и пробовать... ![]() P.S. А вообще: реализаций обхода - великое множество... ----- One death is a tragedy, one million is a statistic. ![]() |
|
Создано: 29 июня 2012 12:40 · Поправил: hlmadip · Личное сообщение · #19 |
|
Создано: 29 июня 2012 12:44 · Поправил: ZaZa · Личное сообщение · #20 |
|
Создано: 29 июня 2012 20:11 · Поправил: novashdima · Личное сообщение · #21 ZaZa пишет: P.S. А вообще: реализаций обхода - великое множество... Да это итак понятно) А каким образом нашли этот кусок кода? Искали по функциям винапи? hlmadip пишет: RTFM спасибо, пойду изучать. ClockMan пишет: Такое ущущение что вы сложнее "Hello World" ничего неписали. Хм... что-то я вас не пойму, вы меня обвинили в том, что я плохо знаю асм, тут же вы имхо думаете, что я не отлаживаю программы что ли? Так когда пишешь на языках высокого уровня не обязательно на асме отлаживать, а то вдруг вы не знаете) ClockMan пишет: Вот только ненадо обижатся Да конечно же нет, я адекватно воспринимаю критику, которая имеет место, а если и не имеет, то в основном это означает, что кто-то немного не так что-то понял ![]() ZaZa пишет: А если игра использует этот самый файл в своей работе? Этот файл находится в папке с игрой, просто изначально если ставить с оригинального диска, то там есть минимальная установка, при которой на винт не копируются видео, а проигрываются с диска, тут же только полная инсталляция, иначе бы были проблемы при первом запуске игры используя MiniISO. В общем спасибо всем, если знаете еще интересные статьи прошу кинуть ссылку, к сожалению на чтение всех времени нет, да и практиковать же надо еще) ![]() |
|
Создано: 29 июня 2012 20:15 · Поправил: ZaZa · Личное сообщение · #22 novashdima пишет: А каким образом нашли этот кусок кода? Искали по функциям винапи? Именно так: если ты заглядывал в статьи для новичков, то должен был натолкнуться на такую функцию GetLogicalDriveStringsA (получение имен всех логических дисков), ну а если там еще рядом и GetDriveTypeA (определить тип диска) есть, тада ваще труба ![]() Статья здесь: ----- One death is a tragedy, one million is a statistic. ![]() |
|
Создано: 29 июня 2012 20:35 · Поправил: plutos · Личное сообщение · #23 novashdima "... вы меня обвинили в том, что я плохо знаю асм..." Да никто вас не обвинял, смотри выше : "Сам я программист, но асм знаю плохо, С знаю получше" Т.е. получше, чем "плохо"... Когда человек просит в десятый раз "кинуть ссылочку" (после того, как ему уже накидали "ссылочек") и тут же заранее заявляет, что "на чтение всех времени нет, да и практиковать же надо еще", то сразу становится ясно, что возня с ним - пустая трата времени... PS novashdima: Может я фигней занимаюсь? Да, похоже на то... ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 29 июня 2012 21:13 · Поправил: novashdima · Личное сообщение · #24 plutos пишет: Т.е. получше, чем "плохо"... А, ну если с этой стороны смотреть, тогда понятно) Но я ведь не сказал, что это единственные языки, которые я может плохо, но знаю) plutos пишет: Когда человек ... Я бы с радостью прочитал все, что только есть, но говорю, времени итак не хватает, втупую перечитать можно за неделю весь материал, но надо же вникнуть и понять что да как, поэтому и говорю, что лучше киньте пару ссылок на несколько самых лучших/подходящих для моего нулевого уровня и не сильно устаревшее, вот их изучу, тогда уже дальше пойду, но на все надо время... ОФФТОП: Да, особенно если прога вышла пару часов назад, стоимость этой самой проги исчисляется числом с 5-6 нулями, то да, а если делаешь ради изучения, приобретения опыта и просто ради кайфа, то только ломать самому) Да, еще вопрос гуру, юзаю 2.04 версию ольки, раньше юзал стабильную 1.х, а в этой указав директорию до плагинов не горит кнопка с плагинами, а без командной строки как без рук( К тому же не применяются настройки цветовой схемы. Может я фигней занимаюсь? Юзать версию 1.х и не париться? ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Помощь во взломе игры |