Перейти к содержанию

Рекомендуемые сообщения

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

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

 

Собственно сам скрипт:

 

Спойлер

[ENABLE]
aobscan(Inf.Item,48 63 40 18 85 C0 7E 07 B8) // should be unique
alloc(newmem,$1000,0DF4F8DA)
registersymbol(Inf.Item)
label(code)
label(return)

newmem:
cmp [rax+10],00000017
jne code
mov [rax+18],#99
code:
  movsxd  rax,dword ptr [rax+18]
  test eax,eax
  jmp return

Inf.Item:
  jmp newmem
  nop
return:

[DISABLE]

Inf.Item:
  db 48 63 40 18 85 C0

unregistersymbol(Inf.Item)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 0DF4F8DA

0DF4F8AE: 0F 84 35 00 00 00              -  je 0DF4F8E9
0DF4F8B4: 48 8B 47 20                    -  mov rax,[rdi+20]
0DF4F8B8: 48 8B 40 20                    -  mov rax,[rax+20]
0DF4F8BC: 48 8B C8                       -  mov rcx,rax
0DF4F8BF: 49 8B D7                       -  mov rdx,r15
0DF4F8C2: 48 83 EC 20                    -  sub rsp,20
0DF4F8C6: 83 38 00                       -  cmp dword ptr [rax],00
0DF4F8C9: 49 BB 50 86 6C 04 00 00 00 00  -  mov r11,00000000046C8650
0DF4F8D3: 41 FF D3                       -  call r11
0DF4F8D6: 48 83 C4 20                    -  add rsp,20
// ---------- INJECTING HERE ----------
0DF4F8DA: 48 63 40 18                    -  movsxd  rax,dword ptr [rax+18]
0DF4F8DE: 85 C0                          -  test eax,eax
// ---------- DONE INJECTING  ----------
0DF4F8E0: 7E 07                          -  jle 0DF4F8E9
0DF4F8E2: B8 01 00 00 00                 -  mov eax,00000001
0DF4F8E7: EB 02                          -  jmp 0DF4F8EB
0DF4F8E9: 33 C0                          -  xor eax,eax
0DF4F8EB: 48 8D 65 E8                    -  lea rsp,[rbp-18]
0DF4F8EF: 41 5F                          -  pop r15
0DF4F8F1: 5F                             -  pop rdi
0DF4F8F2: 5E                             -  pop rsi
0DF4F8F3: C9                             -  leave 
0DF4F8F4: C3                             -  ret 
}

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если бы я знал как это сделать то не спрашивал бы у вас.

Может кто объяснит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, Dison сказал:

Если бы я знал как это сделать то не спрашивал бы у вас.

Может кто объяснит?

Может сделать перехват в другом месте?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, Dison сказал:

Может кто объяснит?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я читал эту тему, в примере с моим кодом как это сделать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Dison сказал:

Я читал эту тему, в примере с моим кодом как это сделать

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас еще перечитаю, где то я что то не понял

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это понятно, я бы больше понял это на примере моего кода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Dison сказал:

Это понятно, я бы больше понял это на примере моего кода.

Найди другое место, где есть постоянный доступ к структуре!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, Hack сказал:

Найди другое место, где есть постоянный доступ к структуре!

Мне нужно знать как делать ВЫЗОВ ФУНКЦИИ. 

Я тему создал наверно не просто так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Одно дело тема перечитана 100 раз, другое дело когда кто то может объяснить как это сделать.

Например я не понимаю что товарищ в созданной теме описал, и хотел бы по подробнее понять, что и как и откуда берется и куда вписывается, можно ли это сделать с аб скан, может нельзя,

я не гуру, иногда чтобы понять что то, нужно больше деталей.

Изменено пользователем Dison

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 20.03.2020 в 11:32, Xipho сказал:

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

😂 Хипко ты как всегда, проще написать этот текст когда ты что-то знаешь и рубишь в этом.

А для меня твой ответ это ТЕМНЫЙ ЛЕС! 😂

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребят кто поможет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 21.03.2020 в 19:22, Dison сказал:

Ребят кто поможет?

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

В 19.03.2020 в 18:47, Dison сказал:

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
15 часов назад, youneuoy сказал:

попробуй сделать как-нибудь попроще

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 часов назад, Dison сказал:

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

тебе уже дали всё, что для этого нужно😉 

Простенький скрипт, что-то вроде этого в итоге будет и у тебя:

Спойлер

[ENABLE]

alloc(newmem,1024)
createthread(newmem)

newmem:
push всякое-разное
mov ecx,что-нибудь
call нужная функция
ret
[DISABLE]
dealloc(newmem)

 

 

Вот примерный список действий, которые тебе необходимо выполнить: 

1 - перечитать эту тему

2 - перечитать тему "Использование createthread (или война со стеком)"

3 - поискать ещё что-нибудь по этому поводу

4 - поставить бряк в начале твоей функции

5 - разобраться какие в неё передаются аргументы когда она делает то, что тебе нужно

6 - найти откуда бы тебе можно было бы эти параметры взять

7 - выполнить ещё раз первые  3 пункта инструкции

8 - вот тут ты по идее уже сможешь закончить сам😀

 

 

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

 

Про это на форуме очень много написано. Ты или не видишь ничего, или не хочешь искать сам, или же вообще хочешь, чтобы всё сделали за тебя😜

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
18 часов назад, Dison сказал:

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

На основе своего aobscan ты сможешь только найти инструкцию в теле какой-то функции/метода. Далее тебе нужно отреверсить всю эту функцию целиком, чтобы понять, какие параметры в нее передаются, и найти ее стартовый адрес. Ну и дальше тебе уже написали, все это есть на нашем форуме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ясно, буду разбираться.

Благодарю за ответы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В данном топике никто не постил уже 4 месяца. Пости здесь только если твой вопрос точно совпадает с темой данного топика.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Предпросмотр

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.