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

Помогите взломать EXP


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

В общем ситуация такая:

 

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

 

Spoiler

h_1461781640_5615823_5ba617b0c5.jpg

 

Сразу по окончанию матча выполняется (с выделенной строки):

Spoiler

h_1461781640_1967254_4863a23a5c.jpg

 

Spoiler

h_1461781641_1264477_774eefd861.jpg

 

Сигнатура (значение по смещению D4 - на скрине заморожено с окна программы)

Spoiler

h_1461781643_8398332_3742325efd.jpg

 

 

Пытался добавить в скрипт записать: mov [rax+D4],186A0 - не срабатывает

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

А что в процессе игры нет ни каких бряков?

А так обычно пробовал...2-й скрин, 3-инструкция: mov [rax+rcx*4],186A0

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

14 часа назад, deathguru сказал:

Пытался добавить в скрипт записать: mov [rax+D4],186A0 - не срабатывает

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

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

8 hours ago, Garik66 said:

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

 

да самый обычный, с одной новой командой:

Spoiler

[ENABLE] 
aobscanmodule(EXP,mgsvmgo.exe,42 8B 0C 80 01 0A)
alloc(newmem,$1000,"mgsvmgo.exe"+2A0EC16)
label(code)
label(return)
newmem:
  mov [rax+D4],186A0
code:
  mov ecx,[rax+r8*4]
  add [rdx],ecx
  jmp return
EXP:
  jmp newmem
  nop
return:
registersymbol(EXP)

[DISABLE]
EXP:
  db 42 8B 0C 80 01 0A
unregistersymbol(EXP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "mgsvmgo.exe"+2A0EC16
"mgsvmgo.exe"+2A0EBFC: 3B 04 01                 -  cmp eax,[rcx+rax]
"mgsvmgo.exe"+2A0EBFF: C3                       -  ret 
"mgsvmgo.exe"+2A0EC00: FA                       -  cli 
"mgsvmgo.exe"+2A0EC01: 89 F8                    -  mov eax,edi
"mgsvmgo.exe"+2A0EC03: 0F B7 C8                 -  movzx ecx,ax
"mgsvmgo.exe"+2A0EC06: 39 F9                    -  cmp ecx,edi
"mgsvmgo.exe"+2A0EC08: 74 21                    -  je mgsvmgo.exe+2A0EC2B
"mgsvmgo.exe"+2A0EC0A: 48 8B 46 38              -  mov rax,[rsi+38]
"mgsvmgo.exe"+2A0EC0E: 48 8D 14 88              -  lea rdx,[rax+rcx*4]
"mgsvmgo.exe"+2A0EC12: 48 8B 46 28              -  mov rax,[rsi+28]
// ---------- INJECTING HERE ----------
"mgsvmgo.exe"+2A0EC16: 42 8B 0C 80              -  mov ecx,[rax+r8*4]
"mgsvmgo.exe"+2A0EC1A: 01 0A                    -  add [rdx],ecx
// ---------- DONE INJECTING  ----------
"mgsvmgo.exe"+2A0EC1C: 44 0F B7 1D 24 7B 44 FF  -  movzx r11d,word ptr [mgsvmgo.exe+1E56748]
"mgsvmgo.exe"+2A0EC24: 4C 8B 15 05 7B 44 FF     -  mov r10,[mgsvmgo.exe+1E56730]
"mgsvmgo.exe"+2A0EC2B: 41 FF C0                 -  inc r8d
"mgsvmgo.exe"+2A0EC2E: 41 0F B7 C3              -  movzx eax,r11w
"mgsvmgo.exe"+2A0EC32: 41 39 C0                 -  cmp r8d,eax
"mgsvmgo.exe"+2A0EC35: 0F 82 73 FF FF FF        -  jb mgsvmgo.exe+2A0EBAE
"mgsvmgo.exe"+2A0EC3B: 48 8B 5C 24 30           -  mov rbx,[rsp+30]
"mgsvmgo.exe"+2A0EC40: 48 8B 74 24 40           -  mov rsi,[rsp+40]
"mgsvmgo.exe"+2A0EC45: 48 83 C4 20              -  add rsp,20
"mgsvmgo.exe"+2A0EC49: 5F                       -  pop rdi
}

 

 

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

15 час назад, deathguru сказал:

да самый обычный, с одной новой командой:

действительно, самый простой, визуально ошибок нет, ну только я бы всё-таки dword ptr поставил (хотя не должно это мешать работе скрипта).

Инструкция, судя по скрину не часто работает, так что можно было сделать add:

Скрытый текст

[ENABLE] 
aobscanmodule(EXP,mgsvmgo.exe,42 8B 0C 80 01 0A)
alloc(newmem,$1000,"mgsvmgo.exe"+2A0EC16)
label(code)
label(return)
registersymbol(EXP)

newmem:
  add dword ptr [rax+D4],#10000
  
code:
  mov ecx,[rax+r8*4]
  add [rdx],ecx
  jmp return
  
EXP:
  jmp newmem
  nop
return:

[DISABLE]
EXP:
  db 42 8B 0C 80 01 0A
  
unregistersymbol(EXP)
dealloc(newmem)

 

 Попробуй так.

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

3 часа назад, deathguru сказал:

заработало О_О

 

спасибо огромное!

Отлично! Когда писал для тебя скрипт, я так и предполагал:

У тебя ошибка не в скрипте, а в использовании операнда.

 

Операнд MOV, мы используем когда хотим сделать, что-нибудь постоянным, например в скриптах Infinite HP, Infinite Ammo.

А у тебя EXP и если EXPа - это не валюта, как в некоторых играх, то ты должен её каким-то образом добавить, например используя операнд ADD.

 

А так, скрипт то у тебя был рабочий, просто ты не видишь изменений, так как значение EXPы остаётся постоянным. 

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

я пока не разбираюсь во всех этих нюансах. знаком с cheat engine неделю максимум, а ассемблер учил в 2006 году еще - помню только общие принципы.

буду просветляться :lol:

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

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

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

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