Page 1 of 6 123 ... LastLast
Results 1 to 10 of 60

Thread: Bot hand made

  1. #1
    krukovis
    krukovis is offline
    New member
    Join Date
    2010 Jul
    Posts
    36
    Thanks Thanks Given 
    7
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Rep Power
    0

    Bot hand made

    Добрый день!

    Предлагаю продолжить на этом форуме тему по созданию собственного бота.
    Началом предлагаю считать тему с elitepvpers, так как там есть почти все для создания своего бота. Но нет предела совершенству! ))

    -- 2010-07-05, 08:24 --

    И первый вопрос! Функция инжекта по работе с диалогом нипа. Если у вас есть какие то наработки или представление куда копать - поделитесь пожалуйста.

    -- 2010-07-12, 10:13 --

    Всем привет, с инжектами нашел где почитать.

    Поделитесь опытом использования боевых скилов пожалуйста.
    У меня это реализовано так: В цикле пока здоровье моба > 0 стоят подряд команды на использование скилов. Т.е. какой откатился тот и будет кастоваться. Мне эта безконтрольность не нравится.
    Хотелось бы узнать как у вас функция использования скилов реализована. Используете ли таймеры?
    Лежит ли в памяти информация откатился ли скилл?

    Буду рад любой информации для размышления!
    Если Вы не отзоветесь, мы напишем в Спортлото!

  2. #2
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,222
    Thanks Thanks Given 
    211
    Thanks Thanks Received 
    2,230
    Thanked in
    292 Posts
    Rep Power
    10

    Re: Bot hand made

    krukovis
    Что касаемо написания бота, то свой материал я буду выкладывать только при наличии достаточного количества заинтересованных людей. Под "заинтересованностью" подразумевается желание не только воспользоваться готовым результатом, но и прикладывать силы в создании, развитии бота (что практически не наблюдалось на немецком сайте). Проект можно сделать с открытым исходным кодом.

    Насчет алгоритма использования скиллов, то его можно сделать достаточно сложным: сделать небольшую экспертную систему, принимающую решения на основе поступающих от бота данных (какой скилл лучше в данный момент задействовать, какие доступны и т.п.). Примерно таким образом работал мой бот, но только оценивалась эффективность данного спелла, затрачиваемая мана и урон (составлялась приблизительная цепочка из скиллов, которая могла дать наилучший результат)
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  3. #3
    krukovis
    krukovis is offline
    New member
    Join Date
    2010 Jul
    Posts
    36
    Thanks Thanks Given 
    7
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Rep Power
    0

    Re: Bot hand made

    Я и многие другие люди с радостью бы подключились к проекту, но как быть если все пишту на разных языках? Я на VB.net, вы на C++ на сколько помню, Phyton, AlexGD и еще ряд людей на Delphy, FunkU и еще ряд имен на AutoIt. Ну и как все эти светлые головы подключаться? При том что некоторые только учатся как я , а некоторые уже умеют, как Вы. Кто то пишет быстрее, кто то медленнее. Будет то же самое что и на немецком форуме, как мне кажется. Или у вас другое представление о совместном проекте?

    Спасибо за концепцию по использованию скилов! Крутой у вас бот. Видимо не для обычного фарма его делали.

    Я на данный момент хочу сделать просто обычного фарм-бота. А дальше уже думать об улучшениях и усложнениях логики. Мне кажется это самый лучший путь. Улучшать то, чего нет - глупо. А бот на AutoIt я продолжать улучшать не хочу, т.к. я увлекся концепцией Phyton'a о многопоточной релизации, а AutoIt многопоточность не поддерживает, да и вообще не самый лучший вариант для написания чего то стоящего.

    А ответите на более конкретный вопрос - как вы определяли откатился ли скил? По таймеру или стоит начать розыск этой информации в памяти клиента? Указателей на кастующийся скилл штук 6 вроде, но все они отражают информацию одну и ту же и только во время каста.
    Если Вы не отзоветесь, мы напишем в Спортлото!

  4. #4
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,222
    Thanks Thanks Given 
    211
    Thanks Thanks Received 
    2,230
    Thanked in
    292 Posts
    Rep Power
    10

    Re: Bot hand made

    как вы определяли откатился ли скил
    Так ведь есть структура со спеллами, где указан максимальный cooldown и текущий (если спелл был использован). Если не ошибаюсь, но раньше данная структура была вот здесь: [BA] + $1с + $20 + $E04 + 0 :: Skills description

    Касаемо языка программирования: я пишу на delphi, а AutoIt в рассмотрение вообще не берется. В совместном же проекте, естественно, лучше использовать один, заранее выбранный язык программирования, разработать начальную концепцию бота (что и как должно выполняться), а потом уже писать
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  5. #5
    krukovis
    krukovis is offline
    New member
    Join Date
    2010 Jul
    Posts
    36
    Thanks Thanks Given 
    7
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Rep Power
    0

    Re: Bot hand made

    Я умею искать базовый адрес и смещение где лежит жизнь персонажа и подобные вещи (значение маны и прочее) с помощью CE по гайду (уже не помню где я его видел). А еще я умею методом перебора определять оффсеты, если знаю какое мне значение нужно )). Так я сегодня искал смещение targeta персонажа, так как с тех пор как вы выкладывали его на форуме оно изменилось и нужно было мне для проверки выделился моб (попал ли в таргет персонажу) или нет, а так как я знаю смещение ID цели, это было не сложно.
    Но вы знаете видимо какой то другой способ поиска оффсетов? Можете научить?

    лучше использовать один, заранее выбранный язык программирования
    Вы хоть когда нибудь слышали чтобы на VB.net кто нибудь что нибудь писал? ))) Кого ни спросишь, либо делфи либо C++. Чувствую себя ущербным каким то... Может уже на Делфи перейти? Там синтаксис не сильно сложный? Не буду полгода переделывать то что уже на VB.net написал? )))

    Я бы с удовольствием поучаствовал в таком проекте. Но не представляю как это реализовать... Больше вопросов чем ответов. А если пока начать вдвоем? Хотя от меня толку да и зачем я вам, у вас бот то уже есть)) Я больше замучаю вопросами чем помогу. )) Но если научите - я готов делать что угодно. Что то я умею уже.
    Если Вы не отзоветесь, мы напишем в Спортлото!

  6. #6
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,222
    Thanks Thanks Given 
    211
    Thanks Thanks Received 
    2,230
    Thanked in
    292 Posts
    Rep Power
    10

    Re: Bot hand made

    krukovis
    бот был сделан лишь из спортивного интереса, я все равно не играю ни в PW, ни в Requiem и т.д.

    какой то другой способ поиска оффсетов
    в том то и дело, что ничего искать не надо. Допустим, есть область памяти, в которой хранятся параметры персонажа [BA]+$1C+$28 (если не ошибся), вот эту область памяти и надо просто "рассмотреть": у cheat engine существует опция view memory, которая отображает в шестнадцатеричном виде указанный участок памяти, можно в ollydbg смотреть дамп, смотреть и анализировать. Изменить какой-либо параметр у чара, переключиться на дамп и идентифицировать участки с измененными значениями. Для быстрого сравнения, можно воспользоваться программой "Beyond Compare" (сравнить скопированный текст из дампа до и после изменений).
    В целом, тут нельзя дать четких рекомендаций "как" и "что" нужно анализировать. Достаточно запастись терпением, временем и сидеть смотреть на экран, на длинные строки hex значений
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  7. The Following User Says Thank You to Dwar For This Useful Post:


  8. #7
    krukovis
    krukovis is offline
    New member
    Join Date
    2010 Jul
    Posts
    36
    Thanks Thanks Given 
    7
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Rep Power
    0

    Beyond Compare

    Так как только что столкнулся с тем что на многих сайтах программа Beyond Compare выложена с трояном (по показаниям VirusTotala) и/или ShareWare версия, решил здесь выложить не зараженную и бесплатную версию. Снадобье внутри, на себе проверил - работает. Сюда http://ifolder.ru/18526425 залил Beyond Compare последней версии на сегодняшнее число (файл 5Мб, на форум не лезет), скачано с официального сайта http://www.scootersoftware.com, так что вирусов нет (но на слово мне не верьте, все проверяйте).

    [offtopic]З.Ы. Хочется что нибудь хорошее сделать. Если есть для подобного софта отдельный раздел - перенесите пожалуйста и я заодно увижу где этот раздел. Эту подпись можно удалить. И кстати, на форуме можно оформлять ссылку в виде например слова ТЫК к которому прикреплен URL-адрес? Если да, то пример правильного оформления ссылки покажите пожалуйста. =)[/offtopic]

    -- 2010-07-13, 18:27 --



    -- 2010-07-13, 18:49 --

    Я знаю что:
    • $98B460 = BA – базовый адрес
      $98B47C = BA+$1C – начало данных игровой сессии
      $98B49C = BA+$1C+$20 – начало данных о персонаже
      $98B900 = BA+$1C+$20+$464 – значение здоровья персонажа

    Вот теперь хочу посмотреть в памяти на то как будет изменяться здоровье персонжа (ну чтобы потом так же найти информацию о спеллах).
    Я прикрепил 2 скрина "До" и "После", снимал и ставил ожерелку на телосложение, чтобы поменять ХП. Там по адресу $98B900 ничего не поменялось.
    Я адрес $98B900 в памяти искал так: в СЕ есть пометка: 98B8F4, отсчитал от этого значения 12 ($C) байт и пришел к $98B900. На значение ХП должно выделяться 4 байта (ну вроде как...), вот эти 4 байта я и просматривал. Ничего не поменялось((
    Может нужно было в ollydbg смотреть, а CE этих значений не показывает?
    Где я не правильно делаю, подскажите пожалуйста. Очень хочется разобраться....
    Если Вы не отзоветесь, мы напишем в Спортлото!

  9. #8
    Python
    Python is offline
    Guest
    Join Date
    2010 Jul
    Posts
    3
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Rep Power
    0

    Re: Bot hand made

    Добрый день!

    Какое-то время назад я наткнулся на немецкийсайт,
    прочитав который сделал бота на Delphi, умеющего все, чем там хвастались
    (за исключением алгоритма Дейкстры )) ).
    Это было не сложно, учитывая, что все разжевано не один раз.

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

    С ассемблером знаком очень поверхностно.

    По совету "dj_al", через ollydbg посмотрел на 004A1670.
    Обнаружил там плотненько уложенные функции действий персонажа. (медитация, ассист, ...)
    Заинжектил - работает.

    Но прогуливаться по коду клиента, инжектя все подряд не выход,
    а ждать чужих подсказок не хочется.

    Отсюда вопрос:
    Как "задебажить" Клиента?
    Из Оли по F9 не получается, т.к. напрямую клиент не запускается.

    И второй вопрос:
    Как в Оле выбрать точку для брекпоинта?
    Например:
    действие - медитация (из обычного состояния -> в медитацию)
    Все что могу придумать - сравнить всего клиента (view memory) до и после медитации.
    Если сильно повезет - найду адрес флага (медитирует или нет),
    в том же СЕ нахожу путь к [BA].
    Ищу в асме код смещений к найденому мной флагу медитации.
    Тут, или функцией выше, ставлю брекпоинт.

    Вопрос:
    Есть ли более простой способ?
    И как быть с функциями без явных флагов?
    (например ассист)

    Заранее благодарю за ответы.

    -- 2010-07-15, 10:17 --

    Quote Originally Posted by krukovis
    • $98B460 = BA – базовый адрес
      $98B47C = BA+$1C – начало данных игровой сессии
      $98B49C = BA+$1C+$20 – начало данных о персонаже
      $98B900 = BA+$1C+$20+$464 – значение здоровья персонажа
    Формула [BA]+а+б+с не означает, что к [BA] нужно прибавлять сумму (а+б+с).

    По адресу [BA] лежит указатель на переменную в области памяти, к ней и прибавляй "а",
    по новому указателю лежит другая переменная, к которой плюсуешь "б".....

  10. #9
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,222
    Thanks Thanks Given 
    211
    Thanks Thanks Received 
    2,230
    Thanked in
    292 Posts
    Rep Power
    10

    Re: Bot hand made

    Python
    посмотрел на 004A1670.
    у немцев я много выкладывал материала, если им правильно воспользоваться, то вообще нет нужды "искать" стандартные функции, которые можно вызвать из своего бота (движение, работа с джином и т.п.)... но об этом в другой раз. сейчас нет времени обновлять все это и готовить
    принципы нахождения адресов и функций для инжекта
    анализировать клиент, смотреть как выполняется код. Другого варианта нет.
    Из Оли по F9 не получается, т.к. напрямую клиент не запускается.
    запускается, достаточно убрать проверку на "запуск через launcher". Либо, если нет желания этим заниматься (хотя, это дело трех минут), можно просто выполнить Attach отладчика к уже запущенному процессу.
    Все что могу придумать - сравнить всего клиента
    очень плохая идея. Пусть этим занимается Cheat Engine, а статический адрес можно отыскать и трассируя код в ollydbg
    И как быть с функциями без явных флагов
    эмм, имелось ввиду «параметры функции»? все тот же анализ кода в дизассемблере (искать любые "зацепки"…). Здесь нельзя дать четких рекомендаций и указаний.

    krukovis
    $98B460 = BA – базовый адрес
    $98B47C = BA+$1C – начало данных игровой сессии
    $98B49C = BA+$1C+$20 – начало данных о персонаже
    $98B900 = BA+$1C+$20+$464 – значение здоровья персонажа
    немного добавлю. Дабы не возникало никаких трудностей, желательно получить базовые представления о низкоуровневом программировании.
    mov EAX,ECX – загрузить значение в аккумулятор из ecx
    mov EAX,[EDX] - загрузить значение в eax через указатель
    Указатели заключаются в квадратные скобки
    Т.е., [BA] – указатель, и если уж дальше копать, то [[[[BA]+а]+б]+с] (это так, для понимания)
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  11. #10
    Python
    Python is offline
    Guest
    Join Date
    2010 Jul
    Posts
    3
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Rep Power
    0

    Re: Bot hand made

    Quote Originally Posted by Dwar
    сейчас нет времени обновлять все это и готовить
    И не нужно. 200 страниц форума - прекрасная защита от ленивых

    Quote Originally Posted by Dwar
    можно просто выполнить Attach отладчика к уже запущенному процессу.
    Спасибо! Открылся новый горизонт для изучения.

    Цель моих экспериментов - инжект диалогов с НПС. (работа с меню)
    Именно эту тему до конца у немцев не раскрыли.

Page 1 of 6 123 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •