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

Вопрос про AoBScan


Гость Damian

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

Есть сигнатура допустим 

aobscanmodule(INJECT, Game.exe, E8 xx 47 15 00)

При [ENABLE] все в порядке..

Но когда я прописываю в  [DISABLE] 

INJECT:
db E8 xx 47 15 00

Оно возвращает не значение, которое было в [xx] а [AA]  в итоге получается

db E8 AA 47 15 00

Вопрос.. Как вернуть оригинальное значение?

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

Ага спасибо понятно. А теперь другой вопрос.. Как мне теперь занопить? если надо вписывать readmem и оно повторяет байты и ноп идет вверху инструкции?

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

2 минуты назад, Damian сказал:

Как мне теперь занопить?

Спойлер

newmem:
  db 90 90 90 90 90 90  // тоже количество байт, что и readmem
  jmp return            // и бежим оттуда
                        // в результате оригинальная инструкция не выполняется.    
code:
  readmem(Test,6)
  jmp return

 

 

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

  • 3 месяца спустя...

Всем привет! У меня тоже вопрос по aobscanmodule, нашёл в инете готовый рабочий скрипт:

Спойлер

<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="28">
  <CheatEntries>
    <CheatEntry>
      <ID>1094</ID>
      <Description>"zoomhack"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : PathOfExile_x64.exe
  Version: 
  Date   :
  Author :
}

[ENABLE]

aobscanmodule(zoomhack,PathOfExile_x64.exe,77 03 0F 28 D1)
registersymbol(zoomhack)
aobscanmodule(defog,PathOfExile_x64.exe,22 44 0F B6 45 08)
registersymbol(defog)


alloc(defogmem,$1000,"PathOfExile_x64.exe"+CA0C13)

defogmem:
  movzx r8d,byte ptr [rbp+08]
  cmp r15,950
  ja long return
  xor r8,r8
  and [rbp+08],0
  jmp long return

zoomhack:
 nop
 nop

defog+01:
  jmp defogmem
return:

[DISABLE]

zoomhack:
  db 77 03 0F 28 D1
unregistersymbol(zoomhack)

defog+01:
  db 44 0F B6 45 08
unregistersymbol(defog)

dealloc(defogmem)

{
// ORIGINAL CODE - INJECTION POINT: "PathOfExile_x64.exe"+5C7719

"PathOfExile_x64.exe"+5C76EB: 66 0F 6E 47 18           -  movd xmm0,[rdi+18]
"PathOfExile_x64.exe"+5C76F0: 0F 57 C9                 -  xorps xmm1,xmm1
"PathOfExile_x64.exe"+5C76F3: 0F 5B C0                 -  cvtdq2ps xmm0,xmm0
"PathOfExile_x64.exe"+5C76F6: F3 0F 59 05 22 00 0D 01  -  mulss xmm0,[PathOfExile_x64.exe+1697720]
"PathOfExile_x64.exe"+5C76FE: F3 0F 58 83 1C 13 00 00  -  addss xmm0,dword ptr [rbx+0000131C]
"PathOfExile_x64.exe"+5C7706: 0F 2F C1                 -  comiss xmm0,xmm1
"PathOfExile_x64.exe"+5C7709: 72 10                    -  jb PathOfExile_x64.exe+5C771B
"PathOfExile_x64.exe"+5C770B: F3 0F 10 15 F1 01 0D 01  -  movss xmm2,[PathOfExile_x64.exe+1697904]
"PathOfExile_x64.exe"+5C7713: 0F 28 C8                 -  movaps xmm1,xmm0
"PathOfExile_x64.exe"+5C7716: 0F 2F C2                 -  comiss xmm0,xmm2
// ---------- INJECTING HERE ----------
"PathOfExile_x64.exe"+5C7719: 77 03                    -  ja PathOfExile_x64.exe+5C771E
"PathOfExile_x64.exe"+5C771B: 0F 28 D1                 -  movaps xmm2,xmm1
// ---------- DONE INJECTING  ----------
"PathOfExile_x64.exe"+5C771E: F3 0F 11 93 1C 13 00 00  -  movss [rbx+0000131C],xmm2
"PathOfExile_x64.exe"+5C7726: C6 07 01                 -  mov byte ptr [rdi],01
"PathOfExile_x64.exe"+5C7729: 48 8B 74 24 40           -  mov rsi,[rsp+40]
"PathOfExile_x64.exe"+5C772E: 48 8B 5C 24 48           -  mov rbx,[rsp+48]
"PathOfExile_x64.exe"+5C7733: 48 83 C4 30              -  add rsp,30
"PathOfExile_x64.exe"+5C7737: 5F                       -  pop rdi
"PathOfExile_x64.exe"+5C7738: C3                       -  ret 
"PathOfExile_x64.exe"+5C7739: CC                       -  int 3 
"PathOfExile_x64.exe"+5C773A: CC                       -  int 3 
"PathOfExile_x64.exe"+5C773B: CC                       -  int 3 
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>

 

Пытаюсь через CE поиском в HEX искать массив байт 77 03 0F 28 D1, не получается, ничего не находит.

Подскажите, пожалуйста, как в CE выйти на место с инструкциями через сигнатуры указанными в aobscanmodule?

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

2 часа назад, Merlin сказал:

Пытаюсь через CE поиском в HEX искать массив байт 77 03 0F 28 D1, не получается, ничего не находит.

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

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

2 часа назад, Merlin сказал:

ничего не находит.

Галочка Hex стоит?
Флаги внизу Writable и CopyAndWrite установлены в состояние квадратика? (не галочка не пустое место).
Если нет - то и не будет искать, потому что так он ищет только в перезаписываемой памяти а не в исполняемой.

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

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

Флаги внизу Writable и CopyAndWrite установлены в состояние квадратика? (не галочка не пустое место).

О, да! Большое спасибо, с квадратиками нашлись адреса!

Спойлер

image.jpg

Админы, дайте мне возможность плюсик в репутацию imaginary поставить или поставьте за меня.

Мой затуп был долгим, совет пригодился! ?

 

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

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

Админы, дайте мне возможность плюсик в репутацию imaginary поставить или поставьте за меня.

Мой затуп был долгим, совет пригодился! ?

Поставил.... С удовольствием. 

 

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

  • 2 года спустя...

Всем привет!   В продолжении поста "Merlin", ситуация следующая ->  прилетело очередное обновление (PathofExile)  и  часть скрипта перестала работать...  А именно очень  необходимая фишка "Increase Player Light" (игра очень тёмная + монитор не яркий и ужас...)

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

Собственно вопрос ->  aobscanmodule(IncreasePlayerLightAob, PathofExile.exe, 48 8d 55 f0 f3 41 0f 58 49 04)  -> естественно, после обновы массив 48 8d 55 f0 f3 41 0f 58 49 04  не находит....  Как теперь починить скрипт?

Спойлер
<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="34">
  <CheatEntries>
    <CheatEntry>
      <ID>5</ID>
      <Description>"Increase Player Light"</Description>
      <Options moActivateChildrenAsWell="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
aobscanmodule(IncreasePlayerLightAob, PathofExile.exe, 48 8d 55 f0 f3 41 0f 58 49 04)
define(IncreasePlayerLight, IncreasePlayerLightAob)
define(IncreasePlayerLightReturn, IncreasePlayerLightAob+98)
alloc(IncreasePlayerLightOriginal, $5)
alloc(Handler, $1500, IncreasePlayerLight)
registersymbol(IncreasePlayerLight)
registersymbol(IncreasePlayerLightOriginal)
registersymbol(IncreasePlayerLightReturn)
registersymbol(Intensity)

IncreasePlayerLightOriginal:
   readmem(IncreasePlayerLight, 5)

Handler:
lea rdx,[rbp-10]
addss xmm1,[r9+04]
mulss xmm4,[Intensity]
mov rcx,rbx
mov qword ptr [rbp-20],00000000
subss xmm0,[other1]
mov [rbp-18],3F800000
subss xmm1,[FrontDistance]
movaps xmm3,xmm4
mov [rsp+20],rax
addss xmm0,[other2]
addss xmm1,[other3]
movss [rbp-10],xmm0
movss xmm0,[rbp+30]
subss xmm0,[Height]
movss [rbp-0C],xmm1
movss xmm1,[rbx+44]
movss [rbp-2C],xmm1
addss xmm0,[r8+38]
lea r8,[rbp-20]
addss xmm0,[other4]
movss [rbp-08],xmm0
movss xmm0,[rbx+40]
movss [rbp-30],xmm0
movss xmm0,[rbx+48]
movss [rbp-28],xmm0

jmp IncreasePlayerLightReturn

Height:
   dd (float)1000.0
Intensity:
   dd (float)20000.0
FrontDistance:
   dd (float)83.50
other1:
   dd (float)22.50
other2:    //375F218
   dd (float)1.00
other3:
   dd (float)0.00
other4:
   dd (float)0.00

IncreasePlayerLight:
   jmp Handler

[DISABLE]
IncreasePlayerLight:
   readmem(IncreasePlayerLightOriginal, 5)
unregistersymbol(IncreasePlayerLight)
unregistersymbol(IncreasePlayerLightOriginal)
unregistersymbol(IncreasePlayerLightReturn)

unregistersymbol(Intensity)

dealloc(IncreasePlayerLightOriginal)
dealloc(Handler)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>49</ID>
          <Description>"Intensity [ 09999999]"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>Intensity</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>2</ID>
      <Description>"Always Show Enemy Health Bars"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
aobscanmodule(AlwaysShowHealthBars, PathofExile.exe, 7C 6D 41 8B 88 EC 01 00 00)
registersymbol(AlwaysShowHealthBars)
AlwaysShowHealthBars:
   db EB
 
[DISABLE]
AlwaysShowHealthBars:
   db 7C
unregistersymbol(AlwaysShowHealthBars)


{
// ORIGINAL CODE - INJECTION POINT: PathOfExile.exe+4E39C5

PathOfExile.exe+4E399B: 83 F0 01                    - xor eax,01
PathOfExile.exe+4E399E: 03 D0                       - add edx,eax
PathOfExile.exe+4E39A0: 66 0F 6E CA                 - movd xmm1,edx
PathOfExile.exe+4E39A4: 0F 5B C9                    - cvtdq2ps xmm1,xmm1
PathOfExile.exe+4E39A7: 41 2B 88 54 02 00 00        - sub ecx,[r8+00000254]
PathOfExile.exe+4E39AE: 41 BA 00 00 00 00           - mov r10d,00000000
PathOfExile.exe+4E39B4: F3 0F 2C C1                 - cvttss2si eax,xmm1
PathOfExile.exe+4E39B8: 2B C8                       - sub ecx,eax
PathOfExile.exe+4E39BA: 41 0F 48 CA                 - cmovs ecx,r10d
PathOfExile.exe+4E39BE: 41 39 88 50 02 00 00        - cmp [r8+00000250],ecx
// ---------- INJECTING HERE ----------
PathOfExile.exe+4E39C5: 7C 6D                       - jl PathOfExile.exe+4E3A34
// ---------- DONE INJECTING  ----------
PathOfExile.exe+4E39C7: 41 8B 88 EC 01 00 00        - mov ecx,[r8+000001EC]
PathOfExile.exe+4E39CE: 66 41 0F 6E 88 F8 01 00 00  - movd xmm1,[r8+000001F8]
PathOfExile.exe+4E39D7: 0F 5B C9                    - cvtdq2ps xmm1,xmm1
PathOfExile.exe+4E39DA: 66 0F 6E C1                 - movd xmm0,ecx
PathOfExile.exe+4E39DE: 0F 5B C0                    - cvtdq2ps xmm0,xmm0
PathOfExile.exe+4E39E1: F3 0F 59 C8                 - mulss xmm1,xmm0
PathOfExile.exe+4E39E5: F3 0F 59 CC                 - mulss xmm1,xmm4
PathOfExile.exe+4E39E9: F3 0F 2C D1                 - cvttss2si edx,xmm1
PathOfExile.exe+4E39ED: 81 FA 00 00 00 80           - cmp edx,80000000
PathOfExile.exe+4E39F3: 74 21                       - je PathOfExile.exe+4E3A16
}
</AssemblerScript>
    </CheatEntry>

 

 

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

В 26.04.2022 в 12:41 PM, Exile сказал:

Как теперь починить скрипт?


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

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

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

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

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