Как что-то сделать, при этом ничего не делая
Мания чисел
Вообще я опечатался. Хотел сначала "магия" написать. Но вроде и так ничего =)
Сразу оговорюсь, что ничего сверхъестественного ниже не написано.
Суть и предыстория, коротко и по пунктам:
- мы делали игрушку
- мы постарались защитить ее от взлома
- мы даже писали нечитаемый код (да-да, пусть враги боятся =))
...
- пришел Вася и все сломал через ArtMoney или что-то подобное.
Просто подменил значения в памяти и стал молодцом. Ну, Вы же знаете как это работает - запускаем программку, выбираем процесс (в случае с Firefox это будет PluginContainer), и сканируем память, выделенную этому процессу, на предмет интересующего числа (ну или строки, что, вообще-то, экзотика). Далее несколько раз фильтруем и находим нужный нам адрес. Далее просто подменяем значение по этому адресу - и вот мы чемпионы!
По сути дела, защититься от подмены значений в адресе памяти можно только одним способом - это не хранить это значение в памяти.
Epic fail, скажете Вы? - а вот и нет.
Первое же что пришло в голову - это хранить 2 левых значения, сумма или разность которых в итоге даст нам значение, которое мы хотим спрятать. Таким образом на свет появились 3 класса:
- HiddenInt
- HiddenUint
- HiddenNumber
Можно создать новый объект-хранилище (например HiddenInt) и по необходимости задавать/получать значение через геттер-сеттер. Само значение в памяти не хранится. Смысл работы, я думаю, всем понятен, если интересует реализация - милости прошу заглянуть во вложения.
ЗЫ
Туда же закинул битовую маску - ну просто так, чтобы не скучно было. Мало ли Вам захочется хранить 32 булевых переменных в одном числе =)
Всего комментариев 55
Комментарии
10.12.2010 23:46 | |
ну это если запрос не защищен каким-то ключом. иначе только ломать.
|
11.12.2010 01:33 | |
Ну про 1% я косвенно упомянул)
|
16.12.2010 02:47 | |
Но с помошью таких программ как Art Money нельзя взламывать сетевые игры, или вы здесь только о настольных?
|
16.12.2010 08:28 | |
Не только о настольных. =)
|
16.12.2010 21:55 | |
Хаха)) не, я имел ввиду локальные, то-есть те которые можно разместить на рабочем столе Windows.
Если-б с помошью Art Money можно было-б такие настольные игры взламывать - это было-б вообще круто! |
Последние записи от gloomyBrain
- Очередной загрузчик. Часть 2. (05.12.2012)
- Очередной загрузчик. Часть 1. (04.12.2012)
- Пул объектов (31.08.2011)
- Мания чисел (08.12.2010)
- Отправка файлов на сервер (допилил) (24.10.2010)