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

Можно ли с помощью кода без остановки процесса снять значение конкретного регистра в СЕ?


Derk

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

Можно ли с помощью кода без остановки процесса снять значение конкретного регистра в СЕ?Типо ищешь сигнатуру и снимаешь значение регистра.

Заранее спасибо.

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

30 минут назад, Derk сказал:

Можно ли с помощью кода

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

Есть инструкция

mov ecx,[ebx+4]

Тебе надо знать значение регистра на момент выполнения этого кода, например тебе нужен регистр ebx.
Делаешь внедрение и метку, в которую будешь записывать регистр в этот момент:
 

Спойлер

label(EbxChecker)
registersymbol(EbxChecker) //Регистрируешь метку

yourcode:
mov [EbxChecker],ebx //Записываешь в твою метку ebx

originalcode:
mov ecx,[ebx+4]

jmp exit

EbxChecker: //Размер метки, 4 байта
dd 0

 


Теперь просто добавляешь в таблицу "EbxChecker"
и активируешь скрипт, наблюдаешь за значением в таблице - это значение регистра.

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, imaginary сказал:

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

Есть инструкция


mov ecx,[ebx+4]

Тебе надо знать значение регистра на момент выполнения этого кода, например тебе нужен регистр ebx.
Делаешь внедрение и метку, в которую будешь записывать регистр в этот момент:
 

  Показать контент


label(EbxChecker)
registersymbol(EbxChecker) //Регистрируешь метку

yourcode:
mov [EbxChecker],ebx //Записываешь в твою метку ebx

originalcode:
mov ecx,[ebx+4]

jmp exit

EbxChecker: //Размер метки, 4 байта
dd 0

 


Теперь просто добавляешь в таблицу "EbxChecker"
и активируешь скрипт, наблюдаешь за значением в таблице - это значение регистра.

Я написал,но пишет "не все инструкции пригодны к инъекции" 

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat



aobscan(INJECT,8B 7A 08 8B 77 50 8B) // should be unique
alloc(newmem,$1000)
label(EbxChecker)
registersymbol(EbxChecker) //Регистрируешь метку

 yourcode:

 mov [EbxChecker],ebx

 originalcode:
  mov edi,[edx+08]
  mov esi,[edi+50]
  jmp exit

  EbxChecker: //Размер метки, 4 байта
  dd 0

  INJECT:
  db 8B 7A 08 8B 77 50

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
INJECT:
  db 8B 7A 08 8B 77 50

unregistersymbol(INJECT)
unregistersymbol(EbxChecker)
dealloc(newmem)

 

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

7 минут назад, Derk сказал:

Я написал,но пишет "не все инструкции пригодны к инъекции"

Странно, что за процесс, для которого ты делаешь? и ещё, должно писать в какой строке ошибка.
и в AOB скриптах обычно

jmp return

А такой метки у тебя как раз и нету, как и exit.

Изменено пользователем imaginary
Ссылка на комментарий
Поделиться на другие сайты

5 минут назад, imaginary сказал:

Странно, что за процесс, для которого ты делаешь? и ещё, должно писать в какой строке ошибка.
и в AOB скриптах обычно


jmp return

А такой метки у тебя как раз и нету, как и exit.

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

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

Только что, Derk сказал:

Давай в скайпе или дискорде

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

Спойлер

[ENABLE]
aobscanmodule(INJECT,cheatengine-x86_64.exe,C3 00 00 00 00 48 8D 64 24 D8 C6)
alloc(newmem,$1000,"cheatengine-x86_64.exe"+1ABB0)

label(code)
label(return)
//Тут регистрируешь метку

newmem:
//Сюда вставляешь твой код

code:
  lea rsp,[rsp-28]
  jmp return

//Тут задаёшь размер

INJECT+05:
  jmp newmem
return:
registersymbol(INJECT)

[DISABLE]
INJECT+05:
  db 48 8D 64 24 D8

unregistersymbol(INJECT)
dealloc(newmem)

 

Тебе нужно вставлять свой код в этих местах (это пример). Если уж не получится, то можно дискорд

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

28 минут назад, imaginary сказал:

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

  Показать контент


[ENABLE]
aobscanmodule(INJECT,cheatengine-x86_64.exe,C3 00 00 00 00 48 8D 64 24 D8 C6)
alloc(newmem,$1000,"cheatengine-x86_64.exe"+1ABB0)

label(code)
label(return)
//Тут регистрируешь метку

newmem:
//Сюда вставляешь твой код

code:
  lea rsp,[rsp-28]
  jmp return

//Тут задаёшь размер

INJECT+05:
  jmp newmem
return:
registersymbol(INJECT)

[DISABLE]
INJECT+05:
  db 48 8D 64 24 D8

unregistersymbol(INJECT)
dealloc(newmem)

 

Тебе нужно вставлять свой код в этих местах (это пример). Если уж не получится, то можно дискорд

Дискорд Ginezis#9628

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

В 02.05.2019 в 15:34, Derk сказал:

Я написал,но пишет "не все инструкции пригодны к инъекции" 

 

Скрипт написан с ошибками.  Сгенерируй скрипт из CE и сравни со своим. Тебе добавить только три строчки. label, registesymbol и mov[метка], регистр.

Ну еще и  unregistersymbol

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

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

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

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