Ответы пользователя по тегу Программирование
  • С чего начать разработку сетевого приложения для взаимодействия со сторонним сервером?

    TrueBers
    @TrueBers
    Гуглю за еду
    1. Берётся сначала анализатор исполняемых файлов. Там нужно посмотреть, защищён ли бинарник каким-то алгоритмом, запакован ли, зашифрован?
    2. Если защищён, то нужно снять защиту. Для этого нужно знать реверс-инжиниринг и тонкости работы операционной системы. Обычно, защиты снимаются в модифицированных виртуальных машинах. Ну, или руками ковырять можно, но это очень долго.
    3. После снятия защиты, нужно расчехлять дизассемблер, отладчик, можно, опять же, пропатчить виртуалку под свои требования. По опыту скажу, что реверс и эталонная реализация простой библиотеки АПИ с 4-5 сотнями функций занимает около двух месяцев, в зависимости от опыта. Если опыта нет, можно и на полгода засесть.
    4. Ещё один важный момент: игра может детектить доступ с неоригинального клиента и банить. Банить может как просто аккаунт, так и по идентификатору железа вашего компьютера, т.е. второй аккаунт с этого железа вы уже не создадите. Это САМЫЙ сложный этап, на котором фейлятся даже мировые лидеры ботостроения. Здесь одному в принципе нереально ничего сделать. Здесь сотни человек работают, и несмотря на это бывают фейлы, как у известного бота для WoW, у которого была упущена пара байт в протоколе, которые с виду ничего не значили (всегда передавался ноль), а потом, как оказалось, это было замедленной защитой, которая внезапно "включилась" в следующем обновлении, и 50 тысяч пользователей получили баны.
    5. Ну и, наконец, игра может содержать античит. Они обычно реализуются в виде ядерного драйвера. Соответственно, нужно знать принципы работы ядра операционной системы.

    Грубо говоря, если вы задаёте подобные вопросы, у вас опыта нет вообще. Поэтому, если интересно, учите реверсинг, ассемблер, операционные системы. Годика должно хватить для понимания. А потом, уже зависит от того, насколько хорошо усвоили, насколько работает логика, решение нестандартных ситуаций. В игры уровня WoW одному можно даже не соваться. А что-то поменьше за 2-3 года можно раскурить, в свободное от работы время.
    Ответ написан
    1 комментарий
  • Почему созданные переменные не равные нулю в c++?

    TrueBers
    @TrueBers
    Гуглю за еду
    Учите ассемблер. После него таких вопросов возникнуть в принципе не может.
    Изучите, что такое стэк, как он работает, как растёт, как происходит выделение памяти на нём. Лучше для этого использовать какой-нить отладчик наглядный, типа OllyDbg или x64dbg.
    Ответ написан
    Комментировать
  • Как скомпилировать декомпилированый dll?

    TrueBers
    @TrueBers
    Гуглю за еду
    Как это вы так его умудрились декомпилировать? Таких инструментов в природе не существует.
    Загружайте дллку в Ольку, там ищите место, которое вы редактировали, и просто переписывайте бинарник.
    Ответ написан
    Комментировать
  • Как реализовать программу проверки коннекта (2 соединения) Windows?

    TrueBers
    @TrueBers
    Гуглю за еду
    1. Получить список интерфейсов (WinAPI: GetIfTable)
    2. Понять какой ethernet (IF_TYPE_ETHERNET_CSMACD), а какой ppp (IF_TYPE_PPP) (WinAPI: GetIfEntry). Смотрим на PMIB_IFROW->dwType.
    3. Повесить по сокету на них. Пинговать по таймеру через ppp, упал — email через другой.
    Ответ написан
    Комментировать