Что нового

[Iris Online] iWalker. Потрошим память игры. Пытаемся написать бота.

bugaj

Знающий
Сообщения
140
Репутация
11
Re: Iris Online vs iWalker. Потрошим память игры. Пытаемся написать бота.

а слабо в ЕвЕ найти адрес где хранится СС или количество СП? Пробовал искать СП. если забивать в СЕ число СП когда ева на странице логина - адрес находит, но этот адрес при каждом входе в игру меняется. Потом заходим в игру, там значение СП уже другое (на экране), тем не менее в найденом адресе значение все то же и оно не меняется, я так и не нашел как его поменять, стопал скилы врубал, нифига. Попытка поиска "Новых значений" ни к чему не приводит, СЕ их не находит. Значение в Найденном адресе уже не меняется. Попробовал OLLYDBG (она с ходу начинает дебагать еву и мониторить память) через него запустить еву причем одновременно с СЕ. Нашел адрес в СЕ, а вот как его найти в Оли кто его знает, в тех окнах что отображаются вообще другие диапазоны, наверное чего то я в этой оле не разобрался.

upd. Эх похоже что OllyDbg после запуска дебага и затем запуска евы просто отваливаецо, т.к. в углу пишецо Процесс терминейтед. Потому видимо я и не могу найти в ней адреса ))
 

anonymous7

Знающий
Сообщения
40
Репутация
8
Re: Iris Online vs iWalker. Потрошим память игры. Пытаемся написать бота.

уххх...лан// правой клавишой по полю ->display type->4 byte decimal
Пасиб конечно, но сам быстрее нашёл :smile:


Добавлено:
Сообщение автоматически объединено:

Дописываю 4 и 5 пункт:
4. Ищем значение опыта. Я искал 4 раза. Делается это так: снимаем галочку "Fast scan", Value type: Float, Scan type: Value between. Т.к. точное искомое значение нам не известно, ищем диапазон значений (Value between). Ищем первый раз, затем убиваем мобика, изменяем в поле поиска значения соответственно, нажимаем Next scan и так пока не останется наше искомое значение.
25374178.jpg

5. Добавляем адреса двойным нажатием мышки и делаем так:
58439216.jpg

нам предложат подключится к процессу в Debug режиме - соглашаемся. Открывется окошко, после чего его сварачиваем - убиваем мобика - разворачиваем снова и видим:
70958194.jpg

нажимаем More information
74280443.jpg

Рассмотрим данное окошко:
а. [esi + 000000A8] - что нам интересно из этого значения esi - это некое промежуточное значение 2A22DD80, 000000А8 - это число, которое прибавляется к базовому значению, чтобы получить нашу ячейку памяти в которой хранится опыт.
б. 2A22DD80 - это промежуточное значение, которое нас интересует.
Берём вот это значение 2A22DD80 и дальше делаем по пункту 6.

ПС: если кому интересно у меня вот такое значение текущего хп получилось 009618c0 + C5 и МП 009618c0 + C9.
 

Disketka

Знающий
Сообщения
8
Репутация
6
Re: Iris Online vs iWalker. Потрошим память игры. Пытаемся написать бота.

У меня такой вот небольшой вопросик .

Чтоб прочесть имя персонажа какой тип данных должен быть установлен в параметрах ?
При установке "Dword","ptr","Float" в MsgBox пытаюсь вывести результат поиска ...
и получаю цифровые значения ... как быть ?
 

anonymous7

Знающий
Сообщения
40
Репутация
8
Re: Iris Online vs iWalker. Потрошим память игры. Пытаемся написать бота.

Чтоб прочесть имя персонажа какой тип данных должен быть установлен в параметрах ?
При установке "Dword","ptr","Float" в MsgBox пытаюсь вывести результат поиска ...
и получаю цифровые значения ... как быть ?

Это очень легко... Ищи текст. Так же получится найти имя мобов вокруг и даже поменять им имена :smile:
Выбираешь: Value Type -> Text
Ставишь галочку: -> Unicode

Через аутоит:
Код:
_MemoryRead($mem, $DllInformation,"char[16]")
 

nicotino

Новичок
Сообщения
30
Репутация
0
а во флэш играх поиск в памяти работает? имеется ввиду построить такой же бот только для флэш игры
 

Marselos

Новичок
Сообщения
26
Репутация
0
как ты нашёл базовый адресс позиции персонажа?
 

Skazka

Новичок
Сообщения
4
Репутация
0
На 14 пункте запинка, ничего не находит совсем, предыдущие оффсеты : a8 и 104. Что это может быть?
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Skazka сказал(а):
На 14 пункте запинка, ничего не находит совсем, предыдущие оффсеты : a8 и 104. Что это может быть?
пробуй заново, может изначально был взять не верный оффсет. По сути тебе надо прошарить все динамические ячейки в которых хранится твое значение. Их может быть как 2-3 так и все 50-100
 

Skazka

Новичок
Сообщения
4
Репутация
0
Долгий поиск дал результат ;) и это только один из...)) Сразу несколько вопросов:
1) После обновления сразу все оффсеты меняются?
2) Для чего нужен файл NoMadMemory и отчего при запуске его ничего не происходит, даже если я ставлю ID процесса в строке
Func _MemoryOpen($iv_Pid = 3352, $iv_DesiredAccess = 0x1F0FFF, $iv_InheritHandle = 1)
3) С значениями хп мп и тд. все ясно, с координатами, я так понимаю та же схема, а вот как быть со значениями координат дропа лута и его подбора?
4) Так же вопрос по таргету цели атаки и последующего применения скилов?
5) Как можно с помощью скрипта изменить зум в игре на более дальний, больший чем позволяет приложение?
Буду счатлив если получу ответы на все вопросы) :ok:
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
Skazka [?]
1) После обновления сразу все оффсеты меняются?
Как повезёт)

2) Для чего нужен файл NoMadMemory и отчего при запуске его ничего не происходит, даже если я ставлю ID процесса в строке
Func _MemoryOpen($iv_Pid = 3352, $iv_DesiredAccess = 0x1F0FFF, $iv_InheritHandle = 1)
NoMadMemory-это библиотека функций которую должен использовать ваш скрипт, а не сам скрипт...

4) Так же вопрос по таргету цели атаки и последующего применения скилов?
Вопрос воапще не ясен

5) Как можно с помощью скрипта изменить зум в игре на более дальний, больший чем позволяет приложение?
зум хак достигается путём изменения некоторых частей (участков) памяти.
 

Skazka

Новичок
Сообщения
4
Репутация
0
4) Так же вопрос по таргету цели атаки и последующего применения скилов?
Вопрос воапще не ясен

Цитата
5) Как можно с помощью скрипта изменить зум в игре на более дальний, больший чем позволяет приложение?
зум хак достигается путём изменения некоторых частей (участков) памяти.

Я имел ввиду захват цели для убиения невинного животного или человека, и при атаке моба использовать определенные скилы, в iWalker не нашел ничего, чтобы отвечало за это.
А по поводу зумхака, где хоть приблизительно искать то место(кусок кода), то что нужно заменить, или как это можно вычислить? Зум идет в данных integer, float или еще как то? Чтобы понять что искать в памяти, хоть какое нибудь значение, которое будет меняться.
 

lirikmel

Продвинутый
Сообщения
226
Репутация
84
Я имел ввиду захват цели для убиения невинного животного или человека, и при атаке моба использовать определенные скилы

1 - send {"tab"}; так например
2 - send {1} // 2 ...3...4 ну ли на каких цифрах нужные скилы стоят

зум хак возможен...но раздражает дрожание камеры. значение float лежит рядом с координатами персонажа
 

xVetis

Новичок
Сообщения
2
Репутация
0
Прочитал статью, всё сделал. Хочу взломать на опыт. Что делать после 16-го пункта, мне совсем непонятно. Объясните плиз нубу, очень вас прошу. :'(
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Это не взлом, ты не изменишь количество своего опыта. Перечитай статью раз 50 чтобы понять для чего мы лезим в память.
 

xVetis

Новичок
Сообщения
2
Репутация
0
Прочитал заново, всё переосмыслил и осознал :smile:
 

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Помогите переделать функцию определения угла:
Код:
Func be_CoordsToRotation($bectr_X1, $bectr_Y1, $bectr_X2, $bectr_Y2) ;Author: dwerf
    Local $bectr_DX = $bectr_X2-$bectr_X1
    Local $bectr_DY = $bectr_Y2-$bectr_Y1
    Local $bectr_AXY = Abs(ATan($bectr_DX/$bectr_DY))
    Local $bectr_AYX = Abs(ATan($bectr_DY/$bectr_DX))
    Local $bectr_hpi = ATan(1)*2
    Local $bectr_Angle = 0
   If $bectr_X1 > $bectr_X2 Then
        $bectr_Angle += 2*$bectr_hpi
        If $bectr_Y1 > $bectr_Y2 Then
            $bectr_Angle += $bectr_AXY
        ElseIf $bectr_Y1 = $bectr_Y2 Then
            $bectr_Angle += $bectr_hpi
        ElseIf $bectr_Y1 < $bectr_Y2 Then
            $bectr_Angle += $bectr_hpi
            $bectr_Angle += $bectr_AYX
        EndIf
    ElseIf $bectr_X1 = $bectr_X2 Then
        If $bectr_Y1 > $bectr_Y2 Then
            $bectr_Angle += 2*$bectr_hpi
;~      ElseIf $bectr_Y1 = $bectr_Y2 Then
;~      ElseIf $bectr_Y1 < $bectr_Y2 Then
        EndIf
    ElseIf $bectr_X1 < $bectr_X2 Then
        If $bectr_Y1 > $bectr_Y2 Then
            $bectr_Angle += $bectr_hpi
            $bectr_Angle += $bectr_AYX
        ElseIf $bectr_Y1 = $bectr_Y2 Then
            $bectr_Angle += $bectr_hpi
        ElseIf $bectr_Y1 < $bectr_Y2 Then
            $bectr_Angle += $bectr_AXY
        EndIf
    EndIf
    Return $bectr_Angle
EndFunc

Сейчас вот так:
Код:
         180
270               90
          0
А нужен такой вид:
Код:
           0
270               90
         180
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
Dellroc
Лучше содать отдельную тему.
И поконкретней расписать проблему...
 

lirikmel

Продвинутый
Сообщения
226
Репутация
84
Код:
 0
270               90
         180

ну поменялись ток координаты по y ..что тут непонятного -)

Код:
Func be_CoordsToRotation($bectr_X1, $bectr_Y1, $bectr_X2, $bectr_Y2) ;Author: dwerf
    Local $bectr_DX = $bectr_X2-$bectr_X1
    Local $bectr_DY = $bectr_Y2-$bectr_Y1
    Local $bectr_AXY = Abs(ATan($bectr_DX/$bectr_DY))
    Local $bectr_AYX = Abs(ATan($bectr_DY/$bectr_DX))
    Local $bectr_hpi = ATan(1)*2
    Local $bectr_Angle = 0
   If $bectr_X1 > $bectr_X2 Then
        $bectr_Angle += 2*$bectr_hpi
        If $bectr_Y1 < $bectr_Y2 Then
            $bectr_Angle += $bectr_AXY
        ElseIf $bectr_Y1 = $bectr_Y2 Then
            $bectr_Angle += $bectr_hpi
        ElseIf $bectr_Y1 > $bectr_Y2 Then
            $bectr_Angle += $bectr_hpi
            $bectr_Angle += $bectr_AYX
        EndIf
    ElseIf $bectr_X1 = $bectr_X2 Then
        If $bectr_Y1 < $bectr_Y2 Then
            $bectr_Angle += 2*$bectr_hpi
;~      ElseIf $bectr_Y1 = $bectr_Y2 Then
;~      ElseIf $bectr_Y1 > $bectr_Y2 Then
        EndIf
    ElseIf $bectr_X1 < $bectr_X2 Then
        If $bectr_Y1 < $bectr_Y2 Then
            $bectr_Angle += $bectr_hpi
            $bectr_Angle += $bectr_AYX
        ElseIf $bectr_Y1 = $bectr_Y2 Then
            $bectr_Angle += $bectr_hpi
        ElseIf $bectr_Y1 > $bectr_Y2 Then
            $bectr_Angle += $bectr_AXY
        EndIf
    EndIf
    Return $bectr_Angle
EndFunc
 
Верх