World of Tanks, беглый анализ используемых технологий безопасности

Dec 02, 2012 19:16

Антиотладочных механизмов/крипторов/обфускаторов на вскидку не обнаружил, спокойно ковырял в ольке 1.10. Клиент большой, но видимо это единственная защита от анализа - типа вам будет лень ковырять СТОЛЬКО добра :) Ну и 9й cpp рантайм с замангленными именами неизменно доставляет, когда видишь километровые имена функций в отладчике ( Read more... )

fun, security, games, online, research

Leave a comment

Comments 6

ctocopok December 8 2012, 08:38:28 UTC
Если я правильно понял, то сам пароль не хранится в файле C:\Users\\AppData\Roaming\Wargaming.net\WorldOfTanks\preferences.xml там сохраняется логин (e-mail) в виде base64 текста в параметре login,

Насколько я помню, перед base32 (а не 64) кодированием логина и пароля в preferences.xml пароль шифруется обычным XOR по смешному ключу в виде прикольного слова.
RSA? не, не слышали. в *этой* части клиента его нет.

И движок надо не в ехе расковыривать, а в питоне. Там все вкуснее и интереснее.
Хотя, если поможете снять дамп некоторых модулей, находящихся именно в ехе (прилинкованных из Питона же), будет оченно приятно и благодарственно.

Reply

roman_pro December 8 2012, 12:00:14 UTC
Может это в старых версиях так было ? У меня связка base64_decode+CryptUnprotectData нормально расшифровывает данные, колхоза на базе XOR не обнаружил (возможно плохо искал).

А что ковырять надо питон - это я уже понял, там интересные потрошка торчат например в файле accountcommands.pyc:

CMD_SET_MONEY
CMD_ADD_XP
CMD_ADD_TMAN_XP
CMD_UNLOCK_ALL

говорящие названия команд. Правда наивный шаг прописать эти команды в preferences.xml примерно так:

KEY_F9

KEY_F10

KEY_F11

KEY_LEFTMOUSE

KEY_MOUSE1

...

не проканал. Иначе всё было бы слишком уж просто :)

Reply

ctocopok December 10 2012, 06:13:05 UTC
Взглянул в preferences.xml после долгого перерыва.
Действительно, раньше пасс умещался в 16-20 байт (на глазок, не считал), а счас это - длиннющая строка.
И тем не менее, уверен, расшифровывается она в самом питоне.
хотя, возможно, Питон импортирует нечто, на С компилированное. В таком ключе работы Питона я не разбирался. :)

Что до секретных команд - они еще валидируются и в клиенте, и на сервере. Даже обойдя валидацию в клиенте некоторых тестовых команд, типа, поломать модули, добавить жизни, - сервер не реагирует на них, если у клиента не выставлены хитрые флаги в аккаунте.

В общем, добро пожаловать в клуб ковырятелей танчиков :)

Reply

roman_pro December 10 2012, 06:44:57 UTC
Эта часть наверное неинтересна, но для коллекции всё же приведу :)

Reply


Leave a comment

Up