Здравствуйте, гость ( Вход | Регистрация )

8 страниц V « < 5 6 7 8 >  
Ответить в эту темуОткрыть новую тему
> Чтение из памяти
DarkMaster
сообщение 17.3.2015, 17:04
Сообщение #121


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



А адрес то получается точно нужный вам? Для меня вообще не очень понятен смысл каждый раз складывать две константы.
0x0693AC00 + 0x6C - результат всегда будет одинаковый. В чем смысл сего действа? Скорее всего необходимо было считать адрес 0x0693AC00, получить из него указатель и к значению этого указателя прибавить 0x6C.
Цитата
readmem $target_pos_point_x #target_pos_point_x f

Вы считываете флоат.
Цитата
set #target_pos_point_x1 $target_pos_point_x + #offset2

Тут вы считываете адрес, который указываете флоатом. Адрес не может быть числом с плавающей точкой. Адрес всегда только int и никак иначе. Если быть точнее, то беззнаковый инт, т.е. число положительное и целое. Учитывая, что у вас набор указателей, то вы ошибочно задали тип считываемого значения. Указатель не имеет ничего общего с итоговым вашим типом значения, у указателя всегда тип беззнакового int, он же dword.

Вообще используйте для отладки вывод в лог получившихся значений. Чтобы перевести значения в шестнадцатиричный вид, используйте:
log dec2hex(переменная)


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ivanTu
сообщение 17.3.2015, 18:07
Сообщение #122


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Спасибо огромгое за подсказку. Буду работать дальше.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ivanTu
сообщение 18.3.2015, 9:10
Сообщение #123


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Разобрался, я сам затупил по черному, зачем то указатель флотом помечал ))))
Ваш пинок в нужное направление мне сильно помог, спасибо еще раз
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ivanTu
сообщение 18.3.2015, 10:16
Сообщение #124


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Что то я вообще запутался ))
То выдает значение, то нет, подскажите куда ковырять, в первом варианте выдает - 1

во втором все работает, что я не так делаю?

Код
While 1
//Позиция ЦЕЛИ по X
set #base_target_x 0x0692B000      
set #offcet1 0x270
set #offcet2 0x708
set #offcet3 0x298

readmem #base_target_x #base_target_x d
set #point1 #base_target_x + #offcet1
readmem #point1 #point1 d
set #point2 #point1 + #offcet2
readmem #point2 #point2 d
set #point3 #point2 + #offcet3
readmem $target_x #point3 F
hint $target_x
end_while
// КОНЕЦ //





While 1
//log dec2hex (#baseadr)      
set linedelay 50 //Для забывчивых
set #off1 0x4
set #baseadr 0x00179424
// Считываем базовый адрес и оффсеты HP выбранной цели
readmem #baseadr #baseadr d
set #point1 #baseadr + #off1
readmem $am_Y #point1 F
hint $am_Y
end_while
// КОНЕЦ //
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 18.3.2015, 10:38
Сообщение #125


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



вообще визуально косяков не вижу. Либо цепочка кривая либо при переносе из чит инжи в скрипт где-то ошибка. А чит инжи эту цепочку нормально считывает? Адреса совападют с тем, что пилот делает?

Цитата
#offcet1

offset
Цитата
#baseadr

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

// HP цели - это float? О.о


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ivanTu
сообщение 18.3.2015, 10:50
Сообщение #126


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



HP не float просто кусок кода скопировал )

Подскажите как прапвильно пользоваться log dec2hex (#baseadr) у меня так не выдает в лог в HEX

Все разобрался, спасибо. ) С адресами начудил
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 18.3.2015, 11:01
Сообщение #127


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



Цитата
Подскажите как прапвильно пользоваться log dec2hex (#baseadr) у меня так не выдает в лог в HEX

Если напрямую не получается, то можно попробовать так:
Код
set $tmp dec2hex (#baseadr) 
log $tmp


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ivanTu
сообщение 18.3.2015, 14:01
Сообщение #128


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Столкнулся с другой проблемой,
вот код лога:

как правильно присвоить значение переменным, а то получается -1

readmem $x1(-1) $target_pos_x(0) F
readmem $y1(-1) $target_pos_y(0) F
readmem $x2(-1) $player_pos_x(244630,171875) F
readmem $y2(-1) $player_pos_y(-94823,984375) F
set $zero(0) 0
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 18.3.2015, 15:12
Сообщение #129


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



Цитата
readmem $x1(-1) $target_pos_x(0) F
readmem $y1(-1) $target_pos_y(0) F

Переменная с адресом не задана либо задана ошибочно. Адрес не может быть равен нулю. Соответственно при считывании возвращается ошибка "-1".
Цитата
readmem $x2(-1) $player_pos_x(244630,171875) F
readmem $y2(-1) $player_pos_y(-94823,984375) F

Адрес опять задан флоатом.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ivanTu
сообщение 19.3.2015, 13:21
Сообщение #130


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



У меня вопрос к знатокам )
Есть мысль заставить бота подбирать не все подрят, а только предметы из списка, так вот вопрос, как то можно прочитать память в момент поднятия нужного предмета и в последующем поднимать уже используя write memory а не макрос pickup?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 19.3.2015, 13:42
Сообщение #131


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



Я не представляю, как с помощью writemem можно инициоравать поднятие предмета. Ну очень глубоко теоретически догадываюсь, но как это применить к реалиям не знаю.

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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ivanTu
сообщение 19.3.2015, 13:47
Сообщение #132


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



понятно, ладно спасибо, понял лиш, что это очень трудно реализовать )
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 19.3.2015, 14:36
Сообщение #133


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



проще фиш билетов купить)


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ivanTu
сообщение 19.3.2015, 15:05
Сообщение #134


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



всмысле? )))
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 19.3.2015, 15:08
Сообщение #135


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26745
Пользователь №: 16.971
Возраст: 29



Цитата
всмысле? )))

Купить рыбных билетов для расширения инвентаря и собирать всё подряд (IMG:style_emoticons/default/smile.gif)
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ivanTu
сообщение 20.3.2015, 8:37
Сообщение #136


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Понятно! )) Умно ))
У меня сейчас проблема очередная, память читается из Dll процесса ,
К примеру : "Engine.dll"+00ADD81C получаем адрес на указатель , к которому прибавляем оффсет, который выведет нас на нужное значение, через PE tools можно расковырять* l2.bin и увидеть все Dll'ки процесса и их HEX адреса памяти, что нам позволяет в начале не использовать "Engine.dll"+00ADD81C а сразу приплюсовать два hex'a и получаем стартовый указатель, НО ловушка в чем, при перезагрузки (не всегда) hex адрес памяти Dll'ки может измениться, что уже обрывает правильность цепочки, но если б вы научили меня читать значение непосредственно из engine.dll к примеру эта проблема превратиться в Пух.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.3.2015, 9:43
Сообщение #137


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



Я очень активно пинаю кнайта по этому поводу. Пока никак. Только отключать модульную адресацию и искать километровую цепочку указателей.

Если адреса длл имеют ограниченный набор, скажем 5 вариантов, то можно перебрать все 5 вариантов и найти рабочий на данный момент. Для этого необходимо будет найти некоторую последовательность в памяти, которая никогда не меняется в этой длл. Я бы посмотрел на самое начало дллки - вряд ли там что-то будет менятся. Сейчас еще раз чиркну кнайту.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ivanTu
сообщение 20.3.2015, 10:36
Сообщение #138


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Я нашел значение которое идет от другой DLL , она статична ) проблема устранена!
Но Кнайту лучше чернуть )))
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ivanTu
сообщение 6.4.2015, 16:27
Сообщение #139


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Уважаемый Дарк, вопросик появился, нашел бота, который использует вот такие значения памяти:
Как, что это, и куда это?


Эскизы прикрепленных изображений
Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.4.2015, 20:48
Сообщение #140


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



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

Сообщение отредактировал DarkMaster - 6.4.2015, 20:49


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

8 страниц V « < 5 6 7 8 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 27.4.2024, 15:28
Designed by Nickostyle