Нужно помощь в организации плана для самообучения.Что есть:=======Корейская MMORPG (клиент + сервер). Серверная часть написана на Си и находится на github (https://github.com/eathena/eathena). Клиент спизженный корейский, пропатченный и отвязан, опыт администрирования игровых серверов и понимание как это работает на базовом уровне - имеется. Опыт фикса очень простых багов, и написания базовых функций (например доп логическая команда для игрового NPC), так же. Т..е другими словами хочу продвинуть свои знания в этой сфере не для рубки бабла (сообщество по этой игре мертвое), а чисто для себя для самообразования.Что хочу:=======1. Свободно понимать что и как и до чего в сорцах. На текущий момент понимаю ну максимум 30-40% от всего кода. Еще процентов 30-40 не понимаю из-за не знания основ Си, т.е. си обязательно буду учить.2. Писать патчи \ фиксить баги (да даже по банальном issues tracker)3. Разобраться с пакетами обмена данных, как чуваки достают пакеты, как с ними работать, как например зная о структуре пакета написать копию функционала который не доступен в эмуляторе.4. После того, как буду свободно плавать в эмуляторе, хочу начать писать чит-софт для клиента (кликеры \ автожоры читающие память в .exe), повторить функционал уже существующих читов, и понять как чуваки разбирали экзе и видели уловки и дыры в экзешнике которые можно эксплуатировать.5. Написать своего клиент-based бота (уже есть альтернативы которые написаны на perl, но я хочу бота подключить через dll к клиенту который напишу самостоятельно)6. После всего изученного выше хочу научиться расширять функционал с помощью дифа экзешника и разрабатывать свои client-server фичи которые модифицируют клиент и вносят дополнительный функционал в экзешник (например сменить размер шрифта в клиенте с помощью дллки, либо заменять спрайты определенных игровых профессий или мобов на какую-то хуйню, либо убирать дамаг наносимый противнику для увеличения FPS игрового клиента)7. Ну и результирующая цель - написать собственную защиту client-server с шифрованием трафика, защитой от ботов, с защитой от читов описанных выше.С чего хочу начать:===============1. Изучение Си (классически книги по Си)Где нужна помощь:===============1. Ну вот Си я выучу, начну внедрять и фиксить баги, но для меня останутся неведомые области с пакетами между клиентом и сервером (да даже сейчас могу пофиксить простенький баг \ или написать свою функцию на Си, но не сложнее этого) 2. Что учить дальше, какие мои дальнейшие шаги по обучению? Напишите плиз список литературы, желательно отсортированный в порядке прочтения \ изучения.Си - обязательный язык для эмуля, ведь он на Си написан.С++ не оч. люблю, но какой-то другой ЯП необходим для написания читов \ дебага \ написания своих плюшек.Какой язык для написания читов посоветуете? Какой язык для написания защиты посоветуете? Куда копать? С чего начать после изучения Си?Если структурировать и подвести некий итог:===================================1. Вот выучу Си на базовом уровне, а куда собственно дальше копать и что читать (нужны конкретные примеры) что бы писать чит-софт \ взаимодействовать с клиентом \ написать защиту для этой древней MMORPG? Напомню двач - это все исключительно для самообразования делаю, потому что в этом немного понимаю, и в бородатые 200* держал сервера с онлайнами выше 500, но тогда особо никаких знания кроме как знания внутреннего скриптового языка (разработанного для этого игрового эмулятора, который напоминает синтаксис Си) ничего и не нужно было.Пардон за много букав, но надеюсь тут найдутся толковые парни которые писали читы, или занимались подобным, и посоветуют двигаться в правильном направлении а не на ощупь как собственно двигаюсь я (смутное виденье и понимание того, к чему я стремлюсь).
>>859978 (OP)Херасе ты написал.> либо заменять спрайты определенных игровых профессий или мобов на какую-то хуйнюЭто делается распаковкой ресурсов и заменой нужных спрайтов.> с онлайнами выше 500Неблохо. Хотя 400 из них был торгаши, инфа 90%По существу: ты слишком большую цель взял, Кармак. Того же бота разрабатывали десятки людей. Помню кто-то из сообщества приложение для создания пользовательских карт разрабатывал и это для одного человека оказалась непосильная задача (для опытного разработчка), что-то делать это редактор и умел, но падал при каждом чихе. Так что сделай переоценку своих возможностей и ограничься тем, чем ты действительно хотел бы заниматься. Либо уж с сервером работать, либо с клиентом. Ты просто не представляешь насколько ты высокую для себя планку поставил, что пиздец, потому что даже выбрав сервер или клиент, тебе всё равно надо сузить планку, раз в 10.Книжку по Си тебе на всех ресурсах мира предложат одну единственную. K&R.Но тебе нужно начать с другого, если честно. Если хочешь, чтобы твой энтузиазм не закончился в течение 4 дней, ознакомься с вот этими ресурсами (бесплатны):1. http://www.cci.health.wa.gov.au/resources/infopax.cfm?Info_ID=50 (англ)2. https://www.coursera.org/learn/learning-how-to-learn (есть русские сабы, но я надеюсь, что ты в эти дебри полез зная язык всё-таки)
Тут есть C-трэд, там много годной литературы.Но читать ее надо после пары недель активного кодинга и копипасты со stackoverflowБрать за основу чужой клиент хорошо, но разбирать чужой код гораздо сложнее, чем писать собственный. Если в первый месяц сможешь понять как работает один маленький модуль - уже хорошо
>>860063Я понимаю о чем ты говоришь, и согласен что это овердохуя. Но желание есть, и это самое главное, и уже ебусь какой год - а желание не пропадает, и не пропадешь лишь потому, - что интересно. Следовательно намерен ебаться с этим и дальше.
>>863645Да, я видел - читал, жаль что очень мало годноты там, которая по делу. Уж слишком много людей в треде которые ничего кроме лаб в вузе в лучшем случае и не видели, поэтому и был создан данный тред с надеждой услышать мнение людые которые в теме (для меня лично их легко вычислить по тому, что они будут писать).
>>859978 (OP)$ find . -name ".c" | xargs wc -l 144330 total$ find . -name ".h" | xargs wc -l 12634 total 156964 total> Свободно понимать что и как и до чего в сорцахЭто нереал, если ты не писал его сам 10 лет.> На текущий момент понимаю ну максимум 30-40% от всего кодаПиздеж. Если бы ты понимал 40%, то автоматом понимал бы и остальное. Просто по инерции.Дай угадаю? Ты просто названия файлов посмотрел чтоли???> Писать патчи \ фиксить багиКак ты их собрался тестировать? Играя в игру? Всё???> Написать своего клиент-based бота+10к строк кода. Ниосилиш.> написать собственную защиту client-serverКАКИМ ОБРАЗОМ ТЫ СОБРАЛСЯ ПИСАТЬ ЗАЩИТУ, ЕСЛИ ТЫ НИКОГДА НЕ ЛОМАЛ ММО???> Изучение Си (классически книги по Си)+5000 часов опыта в ММО.> начну внедрять и фиксить багиНе начнешь. Для тебя это будет просто набор функций и всё. Ты фиксил баги в войне и мире? Нет? русский же твой родной язык.>>863729Не понимаешь
>>863735Плиз, съеби нахуй. Ты не в теме, и видимо с программированием связан исключительно установленной ОС, и беглым чтением карманного справочника по командам Linux, возможно даже сидишь на арче, или генту и строишь из себя крутого айтишника.
>>863759Ты с радаров не пропадай. Хорошо? И не съебывай на хуй. Заведи гитхаб, форкни, ссылку дай. Ну как у людей.
>>863759Но он прав. А ты его оскорбляешь на таком доброжелательном ресурсе. Учись быть вежливым, когда тебе отвечают. Или проигнорируй, если ответ не нравится.>>859978 (OP)>как чуваки достают пакетыТы имеешь в виду структуру сетевого пакета? Дизассемблирование программы.>зная о структуре пакета написать копию функционала который не доступен в эмулятореЗная, для чего этот пакет, пишут функционал под него. Например, какая нибудь телепортация, структура пакета: кто, откуда и куда будет телепортироваться. Вот и пишешь функционал.>чит-софт для клиента (кликеры \ автожоры читающие память в .exe)Начни прямо сейчас. Мне нужно придумать способ перехватывать и модифицировать TCP пакеты. Найдёшь способ, как это сделать, т.к. клиент не поддерживает прокси?>как чуваки разбирали экзе и видели уловки и дыры в экзешнике которые можно эксплуатироватьДизассемблирование. И долгий поиск возможных мест для багов, а также тестирование для поиска этих багов.>6.Когда узнаешь, подскажешь. То же так хочу.
>>859978 (OP)пакет это просто набор байт, всё. В каком порядке он идет - хз. Они могут в начале поместить unsigned short, а это уже 65 535 комбинаций. Только дизасемблирование. И да, никто не мешает твоей ММО задетектить попытку хака и тебя заблокировать.
>>863801>2ch.mail.ru>на таком доброжелательном ресурсеПросто умри, гнида.
>>863778живой проект где будут люди бегать пока я это делаю, и в паблик выложить свои наработки для своего проекта что бы админы других проектов пиздили сорцы и возможности и багофиксы которых нет в их эмуляторе? Да ну нахуй, я делаю это для образования, бабки тут не намоешь, т.к. сообщество мертвое, но жадность в распространении решений и потребность в этих решениях от других имеется, нахуя я должен шарить эти фиксы, и возможности которые я реализовываю бесплатно, когда я их могу продать на их саппорт бордах? Поэтому вариант к сожалению расшаривания кода с репозитория в паблик - нельзя сделать.
>>863932> я делаю это для образования> продать на их саппорт-бордах
>>864039одно другому не мешает как бэ.Или если "ученый \ художник" - то обязательно должен быть голодным и нищим?