Jump to content

Search the Community

Showing results for tags '.exe'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Russian Section
    • Новости и объявления
    • Пиратия: Документация
    • Пиратия: Релизы
    • Пиратия: Разработка
    • Пиратия: Web
    • Пиратия: Помощь
    • Совместные проекты / набор команды
    • Доска объявлений
    • Программирование
    • Оффтопик
    • Корзина
  • English Section
    • News & Announcements
    • Guides
    • Releases
    • Development
    • Web
    • Questions & Help
    • Shared Projects / Team search
    • Paid services & Requests
    • Programming
    • Offtopic
    • Recycle bin
  • Portuguese Section
    • Dúvidas & Ajuda
  • Spanish Section
    • Preguntas y Ayuda
  • Servers
    • Russian servers
    • English servers

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 1 result

  1. "Вы исчерпали число попыток, игра будет принудительно закрыта" Всем привет! Как известно, если 4 раза подряд ввести неверный пароль от Вашего аккаунта (или аккаунта Вашего друга, который забыл Вам сообщить пароль), то игра закроется с сообщением "Вы исчерпали число попыток, игра будет принудительно закрыта". Иногда это бывает неудобно. В данной статье я расскажу как сделать так, чтобы игра больше не закрывалась. Работать будем с 1.3х ру. оф. клиентом. Сразу скажу, что в данный момент я сам не знаю как это можно сделать, поэтому будем разбираться вместе. С чего начать? Давайте попробуем зацепиться за сообщение "Вы исчерпали число попыток, игра будет принудительно закрыта". Где оно может находиться? Либо в Game.exe, либо в StringSet.txt. Проверим StringSet.txt. Действительно, здесь есть такая строка: [251] "Вы исчерпали число попыток, игра будет принудительно закрыта" Запомним ее номер 251. Он же 0xFB в шестнадцатеричной системе счисления. Откроем Game.exe в отладчике OllyDBG и поищем это число. Нашлось всего 11 инструкций, это хорошая новость. Так же нас интересуют только инструкции PUSH, а их здесь всего 2. Проверим инструкцию push 0xFB по адресу 0x005076A5: Ниже видим вызов системной функции SendMessageA с параметром WM_DESTROY. Что делает функция SendMessageA()? Она отправляет заданное сообщение окну. А заданное сообщение у нас WM_DESTROY, это сообщение посылается когда необходимо уничтожить окно. Таким образом, можно сделать вывод, что этот код закрывает игру, а по адресу 0x005076A5 начинает загружается строка с сообщением. Перестаем гадать и ставим точку останова по адресу 0x005076A5, идем в игру и 4 раза вводим неверный пароль. Точка останова сработала! Значит где-то выше код, который закрывает клиент, если мы 4 раза введем неверный пароль. Теперь нас интересуют инструкции условных переходов. По адресу 0x00507691 можно увидеть инструкцию cmp EAX, 3. А дальше идет условный переход на адрес 0x00507709, если значение в регистре EAX меньше и не равно 3. Можно предположить, что в EAX попадает количество попыток неудачного входа: EAX = 0 (1 попытка); EAX = 1 (2 попытки); EAX = 2 (3 попытки); EAX = 3 (4 попытки). Давайте это проверим. Ставим точку останова по адресу 0x00507691. И вводим несколько раз неверный пароль. Действительно, если 3 раза ввести неверный пароль, то EAX = 2. Как заставить игру перестать закрываться? Очень просто: условный переход меняем на безусловный: Возвращаемся в игру и пробуем вводить неверный пароль. После 10 попытки становится понятно, что игра не закроется и мы достигли поставленной цели. Сохраняем наши изменения в Game.exe. Так же можно изменять количество попыток, после которых игра закроется. cmp EAX, <число попыток - 1> jmp 0x00507709 * число попыток должно быть в шестнадцатеричной системе счисления Например, инструкция cmp EAX,0A Означает, что игра закроется после 11 попытки. На этом все!
×
×
  • Create New...