forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Болтовня (http://forum.boolean.name/forumdisplay.php?f=25)
-   -   Кряк'еры (http://forum.boolean.name/showthread.php?t=13715)

Ganociy 13.11.2010 20:36

Кряк'еры
 
Вот интересно: выходит игра (лицензионная), несколько уровней защиты, вплоть до того, что без диска не играет. Те люди, которые делают для игр кряки (вроде NODVD, или там замени экзешник игры что бы не вводить серийник), как они это делают? Вскрывают основной исполняемый (или не исполняемый) файл, прописывают свои коды и заново компилируют? Если они каким-то чудом это вскрывают, значить у них есть код игры? Или я не прав:4to: ? Или это делают не хакеры одиночки, а специально (законно) компании? Объясните.

baton4ik 13.11.2010 20:39

Ответ: Кряк'еры
 
Дизассемблируют

Program23 13.11.2010 21:28

Ответ: Кряк'еры
 
задам и я свои вопросы.
Вот есть онлайн игры,и даже для такого гиганта,как WoW,сделали читы.Как они это делают? (жду)

moka 13.11.2010 21:41

Ответ: Кряк'еры
 
Ну раз такая туса пошла, и я свой вопрос по шаблону вбубеню:
[sarkazm]Земля крутится вокруг солнца, а луна вокруг земли, как они это делают?[/sarkazm]

ABTOMAT 13.11.2010 21:58

Ответ: Кряк'еры
 
Скомпиленный ехе можно превратить в ассемблерный код, т.к. операция на асме практически точно соответствует определённым байтам в скомпиленном ехе.
Собственно, история-то какая (могу в деталях ошибаться, поправьте, если что):
Сначала все проги писали в бинарном коде.
Затем людям это надоело, и они придумали ассемблер: то же самое, только словами, более-менее понятными для человека.
Например было 0101010101101011 (взял число от балды), а я назвал это mul. Последнее человеку понятней. Так что прогер пишет mul, а ассемблер (прога-сборщик) из них совершенно однозначно делает машинный код (то есть из mul получается 0101010101101011 и только).
А так как он делает это однозначно, то возможен и обратный процесс.
Потом придумались языки высокого уровня типа Си, Бейзика, Алгола, Паскаля и т.д.
А уже там то, какой получится машинный код, зависит от компилятора, т.к. возможны варианты. Появились переменные, которым юзер может назначить свои имена, классы и т.д. Все эти подробности теряются при компиляции.
Так что асм-код из ехе получить можно, а код на си - уже нет.
Недавний пример:
Давеча крякал себе плугинчик к Максу (кряка нигде не нашёл)
Нахожу кнопку регистрации. Появляетсо окно со строкой, куда надо писать ключик. Жму ок - появляется простой месседжбокс "Regisrtation code is invalid!" (ну естессно)
Ну чего, ковыряю плугин.
Оказался он обычным бинарником, т.е. тупо dll-кой, переименованной в dlu.
Короче, дизассемблировался без проблем.
Нашёл строчку "Regisrtation code is invalid!"
Немного выше на это место ссылается jnz (условный переход)
В случае если он не происходит то код идёт дальше, среди кучи непонятных регистров видна ссылка на строку "Registration successfull!"
Нахожу в гекс-редакторе это место с jnz и вставляю туда аналогичный по размеру, но ничего не дающий в д. случае оператор (2 байта)
Схороняю, загружаю макс, пытаюсь регистрироваться.
Оставляю поле пустым, давлю на ОК.
Success!
К сожалению при следующем старте макса плуг опять не зареган и надо снова "регать", видимо, при старте есть ещё проверка ключа, которую я не выключил. Впрочем, дальше искать было лениво, работает и ладно.

Вот так всё и ломается.
Только, думаю, в защищённых игровых проектах тупо поиском по строчке не найдёшь ничего.
Там нужно хорошо знать ассемблер и иметь хорошие мозги :)
Ведь ассемблерный код - это не исходник на си, и его очень трудно понять, особенно когда нет явных зацепок, он большой и генерировался не человеком.

den 13.11.2010 22:24

Ответ: Кряк'еры
 
Хех, прочитал про дизассемблинг на википедии, короче вот цытата:
Цитата:

Примером автоматических дизассемблеров может служить Sourcer. Такие дизассемблеры генерируют готовый листинг, который можно затем править в текстовом редакторе. Пример интерактивного — IDA. Он позволяет изменять правила дизассемблирования и является весьма удобным инструментом для исследования программ.
теперь то мы знаем зачем он нужен:-D

.Squid 13.11.2010 22:29

Ответ: Кряк'еры
 
Цитата:

Сообщение от ABTOMAT (Сообщение 168538)
Ведь ассемблерный код - это не исходник на си, и его очень трудно понять, особенно когда нет явных зацепок, он большой и генерировался не человеком.

Ага, особенно если это самомодифицирующийся код.

DeeJex 13.11.2010 22:53

Ответ: Кряк'еры
 
Цитата:

Вот есть онлайн игры,и даже для такого гиганта,как WoW,сделали читы.Как они это делают?
Два варианта:
1)Взлом сайта игры (XSS, подмена Cookies, Sql injection и т.д.)
2)Запускаешь саму игру, запускаешь снифер, играешь, анализируешь все, что поймал снифер, обдумываешь способы взлома...

.Squid 13.11.2010 23:20

Ответ: Кряк'еры
 
Цитата:

Сообщение от DeeJex (Сообщение 168551)
1)Взлом сайта игры (XSS, подмена Cookies, Sql injection и т.д.)

Имхо, таким способом можно только очков в таблице рекордов какой-нить казуалки накрутить. И то не факт.

DeeJex 14.11.2010 00:19

Ответ: Кряк'еры
 
Цитата:

Имхо, таким способом можно только очков в таблице рекордов какой-нить казуалки накрутить. И то не факт.
От игры зависит. Вот например в Toribash весь менеджмент вынесен на сайт игры.

ViNT 14.11.2010 01:22

Ответ: Кряк'еры
 
Чаще даже не просто ассемблерный код анализируют, а запускают прогу под отладчиком и, например, как в случае АВТа, ставят точку останова на вызов MessageBox. Дальше запускают и смотрят, куда зайдет программа при вылете сообщения, а точнее, что там выше - в несложных системах защиты там часто как раз и оказывается джамп на функцию проверки регистрации. Допустим, перешли туда, а там вызов какой-нибудь CalculateSerial из License.dll. Дальше берут эту самую dll и делают на ее основе кейген. Или патчат, чтобы пустые серийники принимал и т.п.


Часовой пояс GMT +4, время: 12:04.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot