1. Сходите туда, куда хотите устроиться на стажировку и узнайте из первых рук, что нужно подучить, чтобы вас взяли. Больше самостоятельности.
2. Больше практики. Читать книги без практики - очень неэффективно
Прикольное обсуждение по теме. Чувак волнуется, что он видел что у него месяц назад lifetime writes был 600 GB, а сегодня показал 500 GB, и начал переживать что это каунтдаун до финиша.
Как такое может быть?
Теоретически, SSD может считать количество записанных блоков, суммируя их в GB, и слишком "усталые" отключать, активируя резерв. При этом счетчик записанного может уменьшиться, так как он перестает учитывать отключенные..
Александр Ануфриев: ну а что вы хотели. Ищете все эти списки и баните. Вешаете мониторинг активности и поведения и баните айпишники, с которых идет подозрительная активность. Но понятно что можете и ошибиться и забанить игроков, играющих от одного провайдера, поэтому проверяйте.
А вообще, от ботоводства нужно защищаться тем, что проектируете игру таким образом, чтобы боты были невыгодны.
В UTF-8 символы могут занимать разное количество байт. Например английские буквы - 1 байт, русские - 2 байта, спецсимволы - до 6 байт.
Если вы будете вводимую строку ограничивать только английскими буквами, цифрами и простыми символами (подчерк, дефис, скобки) - то нужно их считать по 1 байту.
Александр: Если вы пробовали кого-либо самостоятельно научить чему-нибудь с нуля, вы очень удивитесь тому, что это непросто, и занимает не 5-10 минут.
Никто ж не знает, что вам нужно учить. Может надо с азов того, что такое http и байт, может надо с того, что такое цикл и ветвление, может надо с того, что такое запрос, и что такое сертификат.
Только перечисление тем (именно основных тем, а не дополнительных), которые необходимо знать для создания многофункционального интернет-магазина, займет больше 5-10 минут. А вы хотите аккуратненький план.
Я постараюсь еще раз посоветовать освоить сперва простой уровень, а потом составлять план более сложного, когда у вас в голове начнет укладываться база. На текущем этапе уточнение и детализация что учить, чтобы не учить все - это ненужная затея.
longclaps: Без навыка гугления, не получится выучить ничего. Вопрос как научиться делать на WP многофункциональные магазины - прям вот возьми и расскажи какой плагин поставить чтобы все заработало - так же не будет. Все меняется, через полгода какой-то плагин перестанет развиваться, а какой-то новый появится.
Человеку нужно понять, что нельзя составить план как развиться с нуля до сеньора. Нужно развиться до джуниора, потом уже с навыками джуниора составлять план до мида, потом уже развившись до мида, составлять план дальше.
ОС берется под задачи, а они нам неизвестны. Если софт под ваши задачи есть под просто убунту - ставьте просто убунту. Если он есть под LTS - ставьте LTS.
Pamir: Они все являются персональными данными.
Вы некорректно пользуетесь терминологией. Персональные данные бывают разные и требуют разного отношения.
Например, возможность 100% идентифицировать по ним человека просто дополнительно накладывает на вас определенные обязательства.
old_mamont: Вы понимаете что именно говорит человек на видео?
Человек знает про программирование очень много, а не пару команд в ассемблере.
Например, он не ставит брейкпоинт в рандомную EAX команду ассемблера, он говорит что мы используем winsock, это библиотека в windows, и мы ставим брейкпоинт на вызов конкретной функции, например клик мышки, после чего ставит брейкпоинт и несколько раз кликает мышкой, чтобы попасть в нужное место в коде, в котором после клика на определенного персонажа появляется функция разговора с ним.
Отловив в коде этот момент, он начинает восстанавливать функциюи какие параметры она передает, чтобы потом сделать подобную функцию отдельно от клиента.
Обратите внимание, что синтаксис функции у него в блокноте от языка C, а не ассемблера.
Зная где находится в коде функция, и в каком файле она лежит (engine.dll), он может попытаться ее заинжектить в своем внедренном коде, и например выполнить уже не тем способом который предлагает клиент (подойти к персонажу и кликнуть на него на экране), а просто нажать кнопку в менюшке, причем даже не поворачиваясь к персонажу экраном (сервер не проверяет куда вы смотрите, он проверяет на каком расстоянии вы от персонажа, когда ему приходит пакет "игрок в диалоге с персонажем x вызвал меню y).
То есть все, что делает функция - создает сетевой пакет и отправляет на сервер. Если такой пакет отправить другим способом, или вызвать функцию другим способом - можно проще автоматизировать процесс.
Но малости знаний тут совсем недостаточно. Тут как раз перечислено все, что я выше описывал - умение программировать на каком-то языке программирования, в данном случае на С/С++ чтобы писать свою dll, которую будете подставлять вместо/вместе с оригинальной. Иметь представление о структуре данных и процессе компиляции (обратите внимание, что он легко понимает сколько параметров нужно функции и какой у них размер). Иметь знание о библиотеках целевой платформы - в данном случае windows, тот же winsock это стандартная сетевая библиотека.
old_mamont: ollydbg это просто отладчик, который позволяет просмотреть текущий процесс в памяти.
Нужно понимать, что неважно, на чем была написана программа, в памяти будут уже машинный код (который можно дизассемблить в получитабельный ассемблер), но еще нужно учитывать платформу и архитектуру приложения.
То есть, понимать то, что вам покажет ollydbg - нужно учить ассемблер с приложением к целевой платформе (например знать windows API).
С другой стороны, мобы - это не mov, jpz, eax. Мобы и другие объекты - это данные, котороые хранятся не в виде языка программирования, а в виде байт и структур. Неважно на каком языке их обрабатывать, важно понять в каком виде они там лежат. Для MMO игр, было бы удобнее лазить не в память, а перехыватывать и разбирать сетевые пакеты.
Чтобы хорошо взламывать игры, хорошо сперва научиться их писать. Хотя бы базовые навыки программирования, понимание процесса компиляции, понимание сетевого траффика, понимание хранения разных типов данных в памяти ( байт, слово, массив, структура).
А то, складывается впечатление, что вы не очень правильно понимаете значение слова бот.
Мало усилий - мало результата.
Мало времени - мало результата.
ну и непонятно что вы хотите. Хотите работать программистом - устройстесь программистом. Хотите решать простенькие начальные задания - решайте начальные задания.