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

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

exe+xxxxxx,  где xxxxxx это адрес который меняется с каждым апдейтом игры, собственно как его заменить на символ.

скрипт:

Спойлер

[ENABLE]
aobscan(INJECT0,xxxxxxxxxxxxxxxx)
alloc(newmem,$64)
label(code)
label(return)
registersymbol(INJECT0)

newmem:

code:
  movzx ecx,byte ptr [exe+xxxxxx]
  jmp return

INJECT0:
  jmp newmem
  nop
  nop
return:

[DISABLE]
INJECT0:
  movzx ecx,byte ptr [exe+xxxxxx]

unregistersymbol(INJECT0)
dealloc(newmem)

 

 

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


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

собственно как его заменить на символ

Тотуриал 4 шаг х64 ...  как пример ниже.. Или способ @Garik66 где то тут выкладывал.. искать надо, мне лень. 

Спойлер

[ENABLE]
aobscanmodule(INJECT,Tutorial-x86_64.exe,F3 0F ? ? ? ? ? ? 0F 2F ? ? ? ? ? 7A ? 72)
alloc(newmem,$1000,INJECT)
label(code)
label(return)
newmem:
push rax  // кидаешь в стек рег, либо там свободны смотри ниже
mov eax,[code+04]   // копируешь с функции офсет - почему +4 а не + 3 ? регистр не нужен, да и рег на 4 байта для офсета норм
mov dword [rax+rbx],(float)5000   // далее берешь испольуемый игрой рег (как баз адрес) а это rbx и дописываешь офсет к нему хранящийся в rax
pop rax
code:
readmem(INJECT,8)
jmp return
INJECT:
jmp newmem
db 90 90 90
return:
registersymbol(INJECT)
registersymbol(code)
[DISABLE]
INJECT:
readmem(code,8)
unregistersymbol(code)
unregistersymbol(INJECT)
dealloc(newmem)

 

Ps: Нашел вариант Игоря..  хотя и выше указанным образом можно подобное провернуть.

Спойлер

[ENABLE]
aobscan(Test,8bxxxxxxxxxx33xxxxxx33xxxxxx3b)
alloc(newmem,$1000,unepic.exe+2D455)
label(code)
registersymbol(code)
label(return)
registersymbol(Test)

newmem:
  mov edx,[code+2]
  mov [edx],deaddead

code:
  readmem(Test,6)
  jmp return

Test:
  jmp newmem
  nop
return:

[DISABLE]
Test:
  readmem(code,6)

unregistersymbol(code)
unregistersymbol(Test)
dealloc(newmem)

 

 

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


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

это адрес который меняется с каждым апдейтом игры

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

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


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

[ENABLE]
aobscan(up,75xx3bxxxx7cxx33xx89)
alloc(newmem,$64)
label(code)
label(return)
registersymbol(up)

newmem:

code:
  db 90 90
  cmp eax,[ebx+58]
  jmp return

up:
  jmp newmem
return:

[DISABLE]
up:
  jne exe+19EF49
  cmp eax,[ebx+58]

unregistersymbol(up)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: exe+19EF23

exe+19EF02: E8 CB7BFFFF                      - call 01596AD2
exe+19EF07: E9 FFFEFFFF                      - jmp 0159EE0B
exe+19EF0C: 8B 43 04                         - mov eax,[ebx+04]
exe+19EF0F: 3B C7                            - cmp eax,edi
exe+19EF11: 74 36                            - je 0159EF49
exe+19EF13: 8B 43 5C                         - mov eax,[ebx+5C]
exe+19EF16: 8B 8B 9C000000                   - mov ecx,[ebx+0000009C]
exe+19EF1C: 40                               - inc eax
exe+19EF1D: 89 43 5C                         - mov [ebx+5C],eax
exe+19EF20: F6 C1 04                         - test cl,04
// ---------- INJECTING HERE -----------
exe+19EF23: 75 24                            - jne 0159EF49
// ---------- DONE INJECTING  ----------
exe+19EF25: 3B 43 58                         - cmp eax,[ebx+58]
exe+19EF28: 7C 1F                            - jl 0159EF49
exe+19EF2A: 33 C0                            - xor eax,eax
exe+19EF2C: 89 43 5C                         - mov [ebx+5C],eax
exe+19EF2F: 8B 43 64                         - mov eax,[ebx+64]
exe+19EF32: F6 C1 02                         - test cl,02
exe+19EF35: 0F84 4B010000                    - je 0159F086
exe+19EF3B: 83 E8 01                         - sub eax,01
exe+19EF3E: 89 43 64                         - mov [ebx+64],eax
exe+19EF41: 75 06                            - jne 0159EF49
}

 

Спойлер

[ENABLE]
aobscan(INJECT0,0fb6xxxxxxxxxxxx8dxxxxe8xxxxxxxx0fb7xx66xxxx74xx8bxxxxxxxxxx8b)
alloc(newmem,$64)
label(code)
label(return)
registersymbol(INJECT0)

newmem:

code:
  mov byte ptr [exe+704F63],0
  jmp return

INJECT0:
  jmp newmem
  nop
  nop
return:

[DISABLE]
INJECT0:
  movzx eax,byte ptr [exe+704F63]

unregistersymbol(INJECT0)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: exe+134C7F

exe+134C64: FF 45 FC                         - inc [ebp-04]
exe+134C67: 8B C2                            - mov eax,edx
exe+134C69: 83 65 F8 00                      - and dword ptr [ebp-08],00
exe+134C6D: 2B C1                            - sub eax,ecx
exe+134C6F: 89 45 F0                         - mov [ebp-10],eax
exe+134C72: 85 DB                            - test ebx,ebx
exe+134C74: 78 5B                            - js 01534CD1
exe+134C76: 8B 55 FC                         - mov edx,[ebp-04]
exe+134C79: 89 55 EC                         - mov [ebp-14],edx
exe+134C7C: 8B 4D F8                         - mov ecx,[ebp-08]
// ---------- INJECTING HERE -----------
exe+134C7F: 0FB6 05 634FB001                 - movzx eax,byte ptr [01B04F63]
// ---------- DONE INJECTING  ----------
exe+134C86: 50                               - push eax
exe+134C87: 8D 0C 31                         - lea ecx,[ecx+esi]
exe+134C8A: E8 CC010000                      - call 01534E5B
exe+134C8F: 0FB7 C0                          - movzx eax,ax
exe+134C92: 66 85 C0                         - test ax,ax
exe+134C95: 74 13                            - je 01534CAA
exe+134C97: 8B 15 DC19A701                   - mov edx,[01A719DC]
exe+134C9D: 8B 4D F0                         - mov ecx,[ebp-10]
exe+134CA0: 98                               - cwde
exe+134CA1: 50                               - push eax
}

 

 

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


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

ты не сигнатурой аоб скинь а обычными байтами в своём скрипте потом сделаешь сигнатура, дело в том что в аоб перевёрнутый адрес а я его в иксах не вижу и ещё я адрес просил чтоб правильно скрипт написать вот так адрес скинь [27A6A58]  имено числом как в примере.

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

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


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

и в [DISABLE] мне тож надо так чтоб правильно количество байт посчитать, на один больше один меньше вылет из игры будет

 AllAutoMach:
 db 8B 90 28 8C 00 00

а в своём потом изменишь

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

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


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

мне тож надо так чтоб правильно количество байт посчитать,

А что там считать.. хук на сколько ? не 5 байт разве.... и nop nop у него в 2 байта..  Выходит 7 , что там считать то.

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


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

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
movzx eax,byte ptr [01B04F63]

exit:
jmp returnhere

"exe"+134C7F:
jmp newmem
nop
nop
returnhere:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"exe"+134C7F:
movzx eax,byte ptr [01B04F63]
//Alt: db 0F B6 05 63 4F B0 01

 

 

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


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

не 5 байт разве..

Женя прав скинь только аддрес

 

сейчас сделаю

 

Попробуй скрипт

Спойлер

[ENABLE]
aobscan(_Chtohoxesh_,xxxxxxxxxxxxxxxxxxxxxxx) // твоя сигнатура на поиск
alloc(newmem,$1000)
label(return)
label(code)
registersymbol(_Chtohochesh_)
registersymboll(code)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
push eax
mov eax,[code+3]
// и код тебе для примера
mov [eax],#512

code:
// movzx eax,byte ptr [01B04F63]
readmem(_Chtohochesh_,7)  //здесь де семёрка пишешь  чсло сколько байт в [DISABLE]
pop eax
jmp return

_Chtohoxesh_:
jmp newmem
db 90 90
return:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
_Chtohoxesh_:
//  db 0F B6 05 63 4F B0 01
readmem(code,7)
unregistersymbol(code)
unregistersymbol(_Chtohochesh_)
dealloc(newmem)

 

 

 

Отпишись, работает не?

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


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

спасибо,  как протестирую отпишусь.

upd: спасибо, работает, вылетов нет, но неизвестно что будет когда игра обновиться и еще вопрос про mov eax,[code+3] почему именно +3?

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

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


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

push eax

не нужен он там, и без него сразу в "eax"  можно. 

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


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

и еще вопрос про mov eax,[code+3]

обрати внимание на адрес [01B04F63] раэбиваем на байты 01 B0 4F 63 теперь пишем байты наоборот  63 4F B0 01 и теперь глянь в [DISABLE]

_Chtohoxesh_:

                                       // db 0F B6 05 63 4F B0 01

наш перевернуты адрес в байтах  63 4F B0 01

и прочитай с третьего байта, вот потому и +3

 

5 часов назад, SpiritWithim сказал:

но неизвестно что будет

в eax запишется другой обновлённый адрес

 

вот как раз по нашей теме Чпок

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


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

обрати внимание на адрес [01B04F63] раэбиваем на байты 01 B0 4F 63 теперь пишем байты наоборот  63 4F B0 01 и теперь глянь в [DISABLE]

_Chtohoxesh_:

                                       // db 0F B6 05 63 4F B0 01

наш перевернуты адрес в байтах  63 4F B0 01

и прочитай с третьего байта, вот потому и +3

вот тут я не особо понял)), если адрес из 4 байт то откуда +3 и почему с 3 байта?, хочу понять логику

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

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


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

вот тут я не особо понял))

что опять не понял?  смотри под спойлером

Спойлер

 

[DISABLE]

_Chtohoxesh_:

  // db 0F B6 05 63 4F B0 01

ещё раз объясняю тока наоборот

наш перевёрнутый адрес

63 4F B0 01

если байты написать наоборот

01 B0 4F 63

а теперь соединим

01B04F01 видишь именно наш адрес получился

в db 0F B6 05 63 4F B0 01

63 идет с третьего байта за ним остальные байты нашего адреса

с третьего байта наш перевёрнутый адрес 63 4F B0 01

 

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

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


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

что опять не понял? с третьего байта наш перевёрнутый адрес 63 4F B0 01

[DISABLE]

_Chtohoxesh_:

  // db 0F B6 05 63 4F B0 01

ещё раз объясняю тока наоборот

наш перевёрнутый адрес

63 4F B0 01

если байты написать наоборот

01 B0 4F 63

атеперь соеденим // это я так понял 01B04F63

01B04F01 видешь именно наш адрес получился //наш адрес 01 B0 4F 63

в db 0F B6 05 63 4F B0 01// получаеться наш адресс из 4 байт 63 4F B0 01

63 идет с третьего байта за ним остальные байты нашего адреса//db 0F B6 05 63 4F B0 01  а не с 4? что слева что справа 

 

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


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

что опять не понял?

запутал я тебя +3 это пропуск трёх байт теперь понятно?

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

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


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

объясни пожалуйста почему 3?

это как то связанно вот с этим?

jmp newmem
  nop
  nop

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

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


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

объясни пожалуйста почему 3?

Оригинальные байты:
0F B6 05 63 4F B0 01
0F B6 05 < op код - адрес > 63 4F B0 01 // тебе нужен адрес. Значит опкод в 3 байта надо пропустить. +3 и копировать сам адрес 63 4F B0 01

 

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


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

спасибо вам ребят, ни разу такую технику не использовал интересно стало))

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


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

вот теперь понял)

Ну на конец то, Успехов тебе во взломе

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


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

Оригинальные байты:

Спасибо Женя, я бы не догадался так объяснить.

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


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

А за что нам минусы? Что уже спасибо нельзя сказать?

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


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

я хз как поставить репутацию и минусов не ставил)

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


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

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 эмодзи.

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

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

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

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

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

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

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