Перейти к содержимому

Фотография
- - - - -

С чего начать написание бота?

написание бота

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 27

#1
KVPV

KVPV
  • 11
    3
    Не выбрано
    • Lvl 9
    • Пользователь

Долго искал возможность внедриться в клиент игры, и заинжектить DLL, чтобы благополучно получить доступ к целевому процессу. Но у меня получилось это, с минимальным использованием kernel mode.

 

С пакетами возился ещё в 2008-2010ых годах, сейчас многое забыл, на то время даже не вникал что для этого нужно, и как это работает.

 

Знаю, что большинство функций находится в Engine.dll, и понимаю что некоторые из них, я могу перехватить / поставить хуки...

 

Но единственное что я до сих пор не понимаю, как мне двигать чаром в игре? То ли мне использовать функции из экспортируемой Engine.dll,то ли перехватывать пакеты? И отправлять какие-то пакеты клиенту с действиями? Не понимаю этого момента.

 

Знаю, что все накрыто там VMProtect'ом, ну что же поделать, будем делать отладку и смотреть как это работает)))

 

Мануалов, и информации в интернете очень мало, поэтому будем спрашивать тех кто в курсе, и может поделиться знаниями / либо кодом (для примеров), Спасибо!


  • 2

#2
ScythLab

ScythLab

То ли мне использовать функции из экспортируемой Engine.dll ... отправлять какие-то пакеты клиенту с действиями?
оба варианта допустимы

 

с минимальным использованием kernel mode
это как?) "немного беременна"?)
  • 0

Хобби: разработка непубличного бота для Lineage


#3
xDarkDelux

xDarkDelux

Вроде как есть пакет PawnMoveToLocation (точное название не помню), отправлять его на сервер.


  • 0

#4
KVPV

KVPV
  • 11
    3
    Не выбрано
    • Lvl 9
    • Пользователь

ScythLab

 

Скрытый текст
Быть пользователем с именем ScythLab

 

Поэтому думаю с чего бы начать, или чего бы написать такого для L2 :)


Сообщение отредактировал fAkeN: 12 Август 2020 - 21:55

  • 1

#5
ScythLab

ScythLab

KVPV, хайд зачетный, Sarcazm его когда-нибудь прочтет... наверное)


  • 0

Хобби: разработка непубличного бота для Lineage


#6
NeonEye

NeonEye

ScythLab, Sarcazm уж точно я думаю не прочтет.


  • 0

#7
Zubastic

Zubastic

Интересно на пустом ли клиенте был инжект тк с защитой все становится многократно сложнее.


  • 0

#8
ScythLab

ScythLab

Zubastic, автор темы здесь редко появляется, но по фразе "с минимальным использованием kernel mode" можно предположить, что этот самый "kernel mode" как раз и нужен для получения доступа к защищенному процессу.


  • 0

Хобби: разработка непубличного бота для Lineage


#9
KVPV

KVPV
  • 11
    3
    Не выбрано
    • Lvl 9
    • Пользователь

ScythLab, обошелся без него. Первоначально да, я использовал его, пока не нашел другой путь. Потому, что драйвер, вешает callback`и и мешает получить доступ к процессу л2.

 

Вчера успешно похукал UNetworkHandler, и добрался до VMT. Сейчас я вижу все пакеты, но без определения (клиент/сервер), в не зашифрованном виде.

 

Сейчас гадаю с тем, чтобы реализовать удаленное управление процессом, и собственно сам процесс общения моей DLL и внешней программы. (Чтобы была возможность отправлять любые кастомные пакеты, или что-то другое)

 

Есть ли какие-то готовые фреймворки или решения, для создания ботов? Сейчас ещё пошарится хочу в Interlude SDK, посмотреть нагляднее что внутри нее.


  • 0

#10
ScythLab

ScythLab

пока не нашел другой путь
я пробовал другие пути, но они на SG не срабатывали, чисто теоретически есть еще один вариант, но это как зубы лечить через задницу, хотя не исключаю наличие элегентных решений

но без определения (клиент/сервер)
пакеты не перемешиваются, есть специальный список (и функции по работе с ним) в них временно хранятся пакеты от сервера к клиенту, а пакеты от клиента к серверу отправляются через приватный метод, внутри шифруются и через winsock отправляется серверу, т.е. они нигде не сохраняются, так что направление пакетов спутать сложно

реализовать удаленное управление процессом
смотришь варианты "межпроцессного взаимодействия" и выбираешь то что больше нравится

Есть ли какие-то готовые фреймворки или решения, для создания ботов?
не встречал, но и не искал подобное
  • 1

Хобби: разработка непубличного бота для Lineage


#11
jr

jr

Что то мне кажется, что сейчас поздновато писать бота именно для л2 -) И даже проблема вовсе не в том что сама игра теряет популярность (хотя по факту это не так), а в хитроумности сегодняшних защит. С тех пор как я начал заниматься этим (2016 год), их уровень вырос настолько, что если бы я начинал сейчас, то скорее всего быстренько бы забил xD (впрочем, я так думал каждый раз когда в них появлялась какая то новая фича).


  • 0

#12
Zubastic

Zubastic

jr, ну ты тертый калач

KVPV, у меня есть приватный фреймворк для оог, подойдет если только для ознакомления с сетевой частью.


  • 1

#13
Bingo7696

Bingo7696
  • 142
    48
    Не выбрано
    • Lvl 40
    • Пользователь
    ВКонтакте
    nebo7even

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


  • 0

проверка на нул


#14
jr

jr

Bingo7696, а ты к какой части себя относишь?


  • 1

#15
Bingo7696

Bingo7696
  • 142
    48
    Не выбрано
    • Lvl 40
    • Пользователь
    ВКонтакте
    nebo7even

jr, к той которая вообще не использует ПО для игр


  • 0

проверка на нул


#16
ScythLab

ScythLab

Все смешалось в кучу: патерны, пользователи и игры.


  • 1

Хобби: разработка непубличного бота для Lineage


#17
KVPV

KVPV
  • 11
    3
    Не выбрано
    • Lvl 9
    • Пользователь

Zubastic, буду лишь рад. :)


jr, однажды я помню был бесплатный бот, назывался он l2epic, очень кстати напоминает твой проект.


  • 0

#18
Zubastic

Zubastic

KVPV, чиркани в личку контакт.


  • 0

#19
jr

jr

KVPV, это совершенно два разных софта


  • 0

#20
KVPV

KVPV
  • 11
    3
    Не выбрано
    • Lvl 9
    • Пользователь

jr, Да я понял это.

 

Сейчас вроде с некоторыми моментами уже разобрался, в частности с получением инфы,

и обработкой пакетов через хукованную функцию AddNetworkQueue.

 

Сейчас смотрю в сторону использования API клиента, в частности функции типа UseItem и RequestMagicSkillUse.

Там аргумент передается один как класс, называемый L2ParamStack. И тут сейчас происходит затычка у меня.

 

jr, я видел твою тему на одном форуме по программированию на счет L2ParamStack.

Я всматривался в код твой, и не особо понимаю выделения памяти твоё типа:

 

L2ParamStack* result = new char[16];

 

Как объявляешь L2ParamStack?

Когда прилетает L2ParamStack я пытаюсь дампнуть его, и посмотреть что в нём содержится,

и потом пытаюсь оригинальной функции скормить аргументы передаваемые, и критует собственно.

 

Вот лог с функции, когда в неё залетает L2ParamStack:

00002198 0:18:28 [6976] Попытка дампнуть стек <- Создается L2ParamStack* Stack = new L2ParamStack( 10 );
00002199 0:18:28 [6976] Размер стека: 206830237 <- GetBufferSize(...)
00002201 0:18:28 [6976] Integer: 7274563 <- ObjectID(...)
00002202 0:18:28 [6976] Buffer: 010E2224 <- GetBuffer(...)
00002203 0:18:28 [6976] UseItem [0] = 71292273832052716 - 010E2224 
00002204 0:18:28 [6976] UseItem [1] = 50756935678248952 - 010E222C 
00002205 0:18:28 [6976] UseItem [2] = 71292325371660484 - 010E2234 
00002206 0:18:28 [6976] UseItem [3] = 71293227314792650 - 010E223C 
00002207 0:18:28 [6976] UseItem [4] = 71293253084596228 - 010E2244 
00002208 0:18:28 [6976] UseItem [5] = 71294721958565571 - 010E224C 
00002209 0:18:28 [6976] UseItem [6] = 71292376911268072 - 010E2254 
00002210 0:18:28 [6976] UseItem [7] = 71293356163811344 - 010E225C 
00002211 0:18:28 [6976] UseItem [8] = 71293381933615126 - 010E2264 
00002212 0:18:28 [6976] UseItem [9] = 71292479990482972 - 010E226C 

Затем я пытаюсь записать всё в Stack и передать это как указатель оригинальной функции, и получаю крит с л2.

 

Поделись пожалуйста примером как решить эту проблему? Буду очень благодарен)

Уверен что я где-то туплю, и все на одном месте...


Сообщение отредактировал KVPV: 23 Сентябрь 2020 - 15:58

  • 0



Темы с аналогичным тегами interlude, написание бота

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Rawr.pro - Сделано с для игроков.