Comments 25
Для таких «разбирательств» очень полезна IDA — она умеет читать количество параметров для всех функций и показывать код в виде С-подобного кода, что очень сильно упрощает разбор кода. Только с её помощью я смог за неделю вытянуть из одной игры примерно 3к ветвлений сюжета, хранящихся в самой программе в виде чудовищных switch-case — на голом АСМе такие трюки тяжело делаются. Да и дебажить там проще — в любом мете отладки можно нажать F5 и курсор будет на текущей операции псевдокода. Ориентация по памяти тоже очень простая.
0
Ради интереса попробовал загрузить plaidscores.dll в IDA. Выбрал функцию psSubmit, нажал F5 и увидел следующую сигнатуру
int __cdecl psSubmit(int a1, double a2, int a3)
Это нормально, что IDA приняла const char* за int? Я, конечно, понимаю, что указатели можно хранить и в int'ах, но всё же0
Дальше по коду будет понятно, что с типам была ошибка и можно вручную поменять тип данных — тогда и касты пропадут.
Структуры и объекты оно тоже не определяет — приходится самому все это описывать. Но это же мелочи, всё равно упрощение труда значительное получается.
Структуры и объекты оно тоже не определяет — приходится самому все это описывать. Но это же мелочи, всё равно упрощение труда значительное получается.
+1
UFO just landed and posted this here
Статья интересная, много инструментов, без лишних сложностей.
P.S.
Скачать IDA и нажать F5 стало так просто :)
А цена и условия приобретения кусаются, но кого это интересует, мы даже не замечаем что пишем.
P.S.
Скачать IDA и нажать F5 стало так просто :)
А цена и условия приобретения кусаются, но кого это интересует, мы даже не замечаем что пишем.
+1
А при чём здесь цена? На официальном сайте IDA можно скачать бесплатную версию
+1
Я ждал такого ответа.
А на этой версии www.hex-rays.com/products/ida/support/download_freeware.shtml можно использовать hex-rays?
Или Ильфак изменил свою позицию, возможно пропустил в СМИ.
Расстраивает что люди перестали замечать разницу между лицензией и контрафактом.
А на этой версии www.hex-rays.com/products/ida/support/download_freeware.shtml можно использовать hex-rays?
Или Ильфак изменил свою позицию, возможно пропустил в СМИ.
Расстраивает что люди перестали замечать разницу между лицензией и контрафактом.
+2
Спасибо за ссылки на инструментики. Вообще, всегда поражал ход мысли хакера. Интересно, сколько времени в итоге ушло, чтобы взломать очки? Сляпать такую игру из двух дрыгающихся спрайтов и двух синих кирпичей займёт пару-тройку вечеров в любой современной игроделке.
0
Delphi — это косяк DiE?
0
А что, человек не мог написать игру на Delphi?
0
Теоретически мог, но сомнительно как-то…
0
Непонятно почему используется такая старая версия DiE. Не хочу сказать, что в данном примере новая чем-то сильнее помогла, просто глаза резануло.
0
И почему сомнительно? Age Of Wonders написана и как-то никто не умер.
А мелкие игры так вообще постоянно на ней делаются, не даром Game Maker дельфевый.
А мелкие игры так вообще постоянно на ней делаются, не даром Game Maker дельфевый.
0
«Космические рейнджеры» написана целиком на дельфях, вообще-то ;)
0
Я ожидаю в скором времени пост про: «Как играть в игру, не запуская её».
Возможно это будет осуществлять внедрением NFC-чипа под кожу…
Возможно это будет осуществлять внедрением NFC-чипа под кожу…
0
Конечно исследование очень увлекательно, но мне кажется проще вариант использовать Fiddler (Для HTTP запросов), что бы перехватить запрос и генерировать поддельный используя встроенный Composer или Autoresponder.
0
Не совсем вас понял. Что именно и каким образом вы хотите подделывать в отправляемых запросах, учитывая, что алгоритм генерации хеша так и не был распарсен?
0
Прошу прощения упустил момент, что это не просто MD5 от данных
0
Возможно, это и MD5 от данных, вот только от каких именно и в каком порядке — неизвестно
0
Как цифровая подпись используется хег от передаваемых данных (параметров) + «соль». Параметров тут немного, а «соль» скорее всего передается вторым параметром в функцию psInit — так проще/надежней использовать единую «соль» и в EXE и в DLL. Осталось перепробовать их комбинации (параметры + «соль») и результат, скорее всего, будет найден.
PS
Очепятка?
Может все-таки стоит смотреть на адрес 0x09F6018E, т.к. по адресу 0x09F60195 находится собственно вызов функции?
PS
Очепятка?
В отличие от софтварных, хардварные брейкпоинты останавливаются на инструкции, идущей после выполнения интересующих нас действий, так что смотрим на то, что находится по адресу 0x09F60195.
Может все-таки стоит смотреть на адрес 0x09F6018E, т.к. по адресу 0x09F60195 находится собственно вызов функции?
0
Нельзя просто так взять и поиграть в игру.
Спасибо за познавательную статью. Кстати про float, я через ArtMoney уже сталкивался с нецелым количеством патронов. А так же изощрёнными данными моей «Империи» в формате текст. Так что с тех пор делаю с десяток изменений числа, чтобы уж наверняка попасть на нужный.
Кстати популярный ход, это побегать не зарабатывая очков, чтобы многие значения поменялись, кроме искомого.
Спасибо за познавательную статью. Кстати про float, я через ArtMoney уже сталкивался с нецелым количеством патронов. А так же изощрёнными данными моей «Империи» в формате текст. Так что с тех пор делаю с десяток изменений числа, чтобы уж наверняка попасть на нужный.
Кстати популярный ход, это побегать не зарабатывая очков, чтобы многие значения поменялись, кроме искомого.
0
Кстати, рекомендую использовать Cheat Engine вместо ArtMoney. Он, во первых, бесплатный, во вторых — намного более мощный. Может бы вышло и без ollydbg обойтись :)
0
Sign up to leave a comment.
Как заработать очки, даже не запуская игру