путь программиста

Оффлайн renekene#110.04.2010 15:23:32
Ну начнем пожалуй ;)
Как всё начиналось.
Однажды, первого января две тысячи седьмого года я приехал домой после празднования нового года. Захотелось чего-нибудь эдакого и я поставил новую игру, которую накануне скачал мой коллега по работе по случаю получения халявного интернета.
Игра называлась RF Online, сервер - The Abyss.
Первые впечатления были смешанными. Управление в рф после линейки казалось крайне не удобным. Скрол мыши в обратную сторону, движения камеры какие-то плавные, левая кнопка брала предмет, а правая использовала... Куда идти вообще не понятно. Телепортнулся в какую-то локацию, там мобы сильные, убивают с двух ударов. Но воскрешения бесплатные, ничего не теряется, и пока колотишь моба, шкала уровня ползет вверх.
Так потихоньку-помаленьку начиналось моё знакомство с рф. Подробнее о процессе я может быть напишу в другой раз, а пока заглянем немного вперёд.
Раз статья называется "Путь программиста", то стоит затронуть начальные попытки создания чего-либо дла РФ.
В этой игре опыт давался не только за убийство мобов, но и за использование заклинаний. Поэтому в свободное от игры время пользователи стояли афк* и бафали себя всевозможными бафами.
На этот счет у меня была на примете одна програмка - Sign of Misery. Я давно делал на ее основе програмки, которые запускали инсталяторы и автоматически ставили программы, попутно вводя серийные номера, ставя галочки на лицензии итд.
Я разскопал свои старые наработки и приступил к написанию скриптов. Большинство скриптов не представляли ничего сложного - последовательность слипов и нажатий клавиатуры. Городить чего-то суперсложного не представлялось возможным, ввиду отсутсвтия нормальной поддержки этой замечательной программы. Всё что имелось в распоряжении - справка по командам. Ни каких-либо обсуждений на форумах, ни статей, ничего подобного в интернете найдено не было.

Так продолжалось какое-то время. Кач, бегатня, создали свой клан в игре, били врагов. Я потихоньку писал различные изысканные скрипты, с хитрозаумными переключениями клавиатур и окон клиентов... Нужно было просто запустить два окна, настроить панель быстрого доступа и запустить программу - окна начинали сменять друг друга, чары бафаться, всё красиво.
Через несколько часов такой беспорядочной кнопконажималки удавалось накачать себе немного процентов опыта. Дальше больше - мало было просто качать бафы. Можно ведь еще и руду копать в это время, а еще и бафать всех вокруг нахаляву.
Вобщем скрипты расли, усложнялись, доходили за сотни строк кода. А тут еще и отсутствие понятной документации, столько всего хотелось сделать, но отталкивала сложность разработки, неудобство в обращении с готовыми скриптами. На выходе получался exe файл, к которому можно было разве что прикрутить хоткей для запуска, а остановить его приходилось через три веселых кнопки. Все попытки сделать нормальное управление скриптом не доходили до желаемого результата.

Delphi
Потихоньку я посматривал в сторону Delphi. Я пытался когда-то заняться делфи и писать программы. Но дальше формы с кнопочками дело почему-то не доходило. Видимо не было какой-то цели, какого-то стимула. Хотелось написать то_незнаю_что, поэтому делфи я несколько раз забрасывал. Первые накаляканные программы представляли собой зачатки RFAlias - отправляли текст в чат игры. Быстрые клавиши для ввода команд /Map, /Party, итд.

Однажды по случайному сложению обстоятельств, я познакомился с одним человеком под ником mugaga из клана Serenity. Он мне рассказал, что сам программист и писал кое что для рф. В часности авто поты, которых в то время не было, макрос для бафов итд. Я незамедлительно попросил посмотреть его код и через пару минут он уже был у меня в почте.
Это был код на Delphi.
Програмка естественно не компилировалась, ругалась на кучу мест, в которых я не разбирался, поэтому я потихоньку разгребал код и переносил функции в уже имеющиеся программы.
Из этого кода я узнал как из делфи нажимать клавиши клавиатуры, как читать память процессов, и еще несколько полезных вещей. Я не до конца понимал как это всё работало, но мог написать рабочую программу.
Более того, непонятные куски можно было искать в интернете, и находить сопутствующую информацию. Так я наткнулся на сайт, где описывали что такое DMA, как его победить, как написать трейнер итд.

rf-cheats
Дальше стало еще интереснее. То, что так не давало покоя при игре - маленькое отдаление камеры, наконец-то было побеждено. Где-то я наткнулся то, что с помощью артмани можно увеличить зум в игре. Слабо верилось подобное, но я стал искать. Артмани я знал хорошо. Ломал раньше игры и на ура находил значения. В своих поисках я зашел на сайт rf-cheats.ru. Там уже кто-то выложил одну из моих программ. У меня на тот момент их было три - RFMacro, RFAlias, RFZoom . Уже не помню какую я увидел на сайте. Отписался в той теме, и админ форума предложил создать раздел для моих програм. Сказано-сделано. Я потихоньку развивал и дорабатывал в соответствии с просьбами форумчан абиса. Мои программы не содержали читерских функций, и просто помогали играть, поэтому я долгое время выкладывал их на форуме абиса.

RFUtilities
Со временем три программы объединились в одну. Так зародился проект RFUtilities это было примерно весна 2007 года. На носу висел диплом, поэтому я зарёкся не играть. И не играл. Писал программы для рф, очень уж захватило это дело. Пока писал, думал что с игрой завяжу, научился без нее обходиться, а программы писать мне нравилось. После защиты диплома меня всётаки назначили главным в моей же гильдии, ибо заместитель, который был главным в моём отсутствии ушел в "отпуск" от игры. Лето пролетело быстро - дом-работа-дом-работа. Играл после работы обычно часов до двух ночи, бывало и до пяти-шести утра.

Смерь абиса
Еще летом на абисе начали твориться малоприятные вещи. Администрация похоже забыла про сервер. Всё шло самотёком. Гмов в игре не было, на форуме срач. Сервер часто падал. Я хоть и посещал рфчитс, но читами особо не интересовался, наслаждался игрой. Позже всетаки разрулил WPE и прокачал бафы и дебафы пакетами. Осенью 2007 года на абис обрушились толпы читеров. Все пытались положить сервер, нарисовать себе денег и вещей, что приводило к частому его падению, а так как администрации не было, сервер по пол дня висел, после чего происходили откаты. Через какое-то время администрация всетаки появилась и решила навести порядок. Был куплен новый сервер, хоть кривой и не рабочий, но новый апдейт. С установкой нового сервера возникали проблемы, разногласия в административном составе тоже давали о себе знать. Всё шло к полному краху. Старый закрыли, ибо играть смысла не было, всех ждал второй в мире абиса вайп. Тут я понял, что играть в рф больше не буду.

RFUtilities2
Пока лежал абис, я немного работал над программой, а также копал файлы сервера с одним одмино-гмом одного сервера.
Я не хотел бросать проект RFUtilities, ибо это было единственным, что так долго заставляло меня заниматься Delphi. Мне это было интересно. К тому времени я понял что в коде много мусора и нужно всё это по хорошему переделать. Начал читать книги по делфи, изучал самые основы, то что пропустил в своё время. К новому году я переписал программу с нуля и выпустил RFUtilities2. Также я добавил туда некоторые "дополнительные функции" - отключение автообновления клиента, запуск нескольких окон, убивание процесса игры, изменение координат. И выложил на rf-cheats пост о платной версии программы. Для поддержания интереса к игре нужен был какой-то стимул, и я посчитал, что деньги будут хорошим стимулом.

FarStyle.net
В асю постучал Dark - администратор форума рфчитс со словами примерно следующего содержания:
"ты продаёш свою программу, которая делает то же что и наша на нашем же форуме. Не хорошо". Вобщем вежливо "попросил" убрать с его форума. Что ж делать? В рф я играть перестал, интерес к развивающейся программе RFU был огромный, но нужно было где-то выкладывать свою программу. Так появился первый сайт FarStyle.net. Я купил домен, нашел хостинг, попросил знакомых ребят поставить форум и выложил туда информацию о программе. На рфчитсе я положил бесплатный вариант программы без "доп функций".

RFUtilities2.2.3byBoxA
Примерно месяц спустя я узнал, что бесплатную программу взломали и сделали вполне рабочей. Благо в ней была кривая реализация некоторых вещей и большой ценности программа не представляла. Вот и первый удар в спину. Я прекратил все работы над развитием программы и сел за защиту. Прочитал кучу статей, посмотрел как делают другие, взял знакомого кодера, который делал сайт и мы засели за написание защиты. Так появилась онлайн защита программы. Без верификации программа представляла собой пустышку, которая ничего не умеет, кроме своих основных, можно сказать классических функций. В то же время я решил, что раздавать программу всем подряд не очень хорошая мысль, поэтому программу получали только "избранные", что предотвращало распространению и дальнейшему взлому программы.

RFUPro & RFUFree
Чуть позже я еще раз переписал программу с нуля и разделил бесплатную версию и продвинутую для большей надёжности. Третья версия практически не развивалас. В 2008 году я жил и работал во Владивостоке. Я был занят работой, у меня не было интернета, что весьма затрудняло разбор клиента рф. Да и времени на всё это дело не было

Хорошие люди
В этот период ремени я нашел двух хороших людей. Один из них писал скрипты для неокомпилера, после ознакомления с ними, я предложил ему заняться delphi, более перспективным вариантом. В последствии он открыл еще несколько интересных вещей. Хороший спидках, волхак, зачатки невидимости, итд.
Второй человек раскопал лоадер рфа, предоставил информацию о том, как идет процесс запуска игры. В последствии он написал свой лоадер для игры, которым я пользовался потом больше года.
К сожалению оба они ушли из рф в перфект ворлд и там видимо обитают и на момент написания статьи.

Пустота
Интернета у меня не было, в RFU я лишь изредка вносил какие-то изменения, программа не продавалась. Сайт был в запущенном состоянии, хотелось полностью его переделать. В результате переделки и переезда на новый хостинг база старого форума была удалена. Я начал всё с чистого листа.
После нового 2009 года я вернулся домой, поставил себе нормальный интернет (DSL оказывается такой хороший, после года GPRS), и подумывал венуться к разработки RFUtilities. Но всё как-то боком да мимо. Несколько раз хотел разобраться с лоадером, написать свой. Нужен был какой-то стимул для продолжения. И этот стимул появился.

Снова в деле
Однажды ко мне в асю постучался один человек и сказал, что заинтересован в одном проекте. Дал мне клиент, под который нужно было писать программу. Клиент у меня не запустился, ибо был глючный лаунчер. Перво-наперво я решил серьезно взяться за лаунчер и написать его с нуля. Вооружился дебагером, статьями по реверсингу, книжкой по ассемблеру я начал копать клиента рф. Старый лоадер, которым я пользовался не подходил под этот клиент, версия была другая и протокол немного изменен. Две недели я раскапывал что к чему, написал-таки программу для запуска бинарника, и приступил к дальнейшему разбору клиента.

eLauncher
На русофе РФ вышло обновление BSB. Через два дня я нашел клиент для русофа и при беглом взгляде узнал в нем что-то знакомое. Это была та же версия клиента, которую я раскапывал. Первый лоадер который я сделал пришлось немного переделывать, но это того стоило. Я написал лоадер с нуля, взяв из старых исходников только самые нужные и удачные решения. Лоадер еще не был готов для широких масс, но на форуме рфчитс народ стонал от отсутствия нормального лоадера. Стандартным авном никто не хотел пользоваться. Я поднажал, иногда приходилось сидеть до утра, но я всетаки выпустил готовый к использованию вариант лоадера, назвав его eLauncher.

Delete
Информацию о лоадере я выкладывал на сайте рфчитс, а также на своём форуме. Через два дня моя тема на рфчит оказалась удалена. Я пробежался по заголовкам - Дарк выпустил свой лоадер RFLogin. И под это дело снес всю информацию о программе-конкуренте.
Я попытался связаться с Дарком, но тот где-то пропал и на связь не выходил. Я еще раз запостил тему. На этот раз она прожила подольше. Почти неделю. Мой лоадер был лучше по некоторым параметрам. Ему не страшны добавления/удаления серверов, он не удалял "ненужных" файлов игры, и развивался он быстрее.

Fin
Сегодня всетаки удалось пообщатсья с Дарком. Разговор был коротким. Я знал, что расчитывать не на что, никто не будет держать конкурентов у себя под боком. В нашем общении мелькнула фраза:
dark 3 июля 2009 г.
1:11 ну как-то неудобно, когда что-то наше переписывают и пытаются продавать у нас же на форуме )
Хех, я оказывается взял и переписал ваш лоадер . Ну что ж. Снова возникла дилема. Хочется заниматься проектом, есть много идей, но распространять его не так просто. На самом популярном форуме по RF путь закрыт. На остальных, мелких форумах похоже сидят какие-то неадекваты. На свой форум я в своё время не собрал достаточное количество пользователей. На официальных форумах серверов тоже не выложишь...

Чтож поживем увидим. Уже набрался контингент людей, ради которых есть смысл развивать проект. На
это есть и время и желание. Осталось решить денежный вопрос. Я сейчас практически не работаю, а тех, доходов, которые имеют место, не всегда хватает, так что если не будет поддержки со стороны пользователей, то придется искать работу, а это время, которое можно пустить на развитие программ.
В любом случае, я решил себя попробовать в интернет заработке на программах, надеюсь всё получится, от чего будет хорошо как мне, так и вам, дорогие пользователи.
ну и в заключении моего рассказа хачу вам рассказать историю создания моего шедевра
Долго копаясь в файлах, кодах, ищя баги которые смогли бы облегчить игру, я наткнулся на баг который как мне показалось с первого взгляда был 100%. Я начал изменять клиент игры, разбирая код программы и через три с половиной месяцев я все-таки закончил свою программу, Но, к сожалению, ничего путного не вышло.
Затем через какое-то время на сервера Rf onlain был установлен последний обгрейд, скачав его, я снова начал его изучать, и создал программу с помощью, которой в сеже можно обмануть сервер РФ, и получить практически любое количество денег.
Оффлайн kolakot#210.04.2010 17:33:30
удалил ссылки, тк нет гарантий, что содержимое безопасно. Если считаете что я не прав - напишите мне в ПМ.
Оффлайн renekene#310.04.2010 17:51:23
Все правильно, ваше право.
Оффлайн galil#410.04.2010 17:59:35
Ну ть молодец) много бабок срубил? ;)
Оффлайн kolakot#510.04.2010 18:38:13
Нам интересно финансирование таких модулей и программ. icq в ПМ