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

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

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

104C1FC1 - F2 0F10 4D E0 - movsd xmm1,[ebp-20]

104C1FC6 - F2 0F5C C8 - subsd xmm1,xmm0

104C1FCA - B8 00000000 - mov eax,00000000

104C1FCF - 85 C0 - test eax,eax

104C1FD1 - F2 0F11 4D E0 - movsd [ebp-20],xmm1

104C1FD6 - 0F84 05000000 - je 104C1FE1

104C1FDC - E9 10000000 - jmp 104C1FF1

104C1FE1 - 8B 45 F8 - mov eax,[ebp-08]

104C1FE4 - F2 0F10 45 E0 - movsd xmm0,[ebp-20]

104C1FE9 - F2 0F11 80 38020000 - movsd [eax+00000238],xmm0 //инструкция что пишет жизни но пишет и мне и противнику

104C1FF1 - 8B 5D FC - mov ebx,[ebp-04]

104C1FF4 - 89 5D F8 - mov [ebp-08],ebx

104C1FF7 - 8B 45 F8 - mov eax,[ebp-08]

104C1FFA - 8B 80 60010000 - mov eax,[eax+00000160]

104C2000 - 8B 5D 08 - mov ebx,[ebp+08]

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

:-D вообщем есть инструкция 104C1FE9 - F2 0F11 80 38020000 - movsd [eax+00000238],xmm0 которая пишет данные в адрес eax+00000238, данные наших жизнях и о жизнях противника. Делаю инъекцию типа mov [eax+00000238],нужное мне число, и бессмертными становятся все, куда копать дальше? По логике нужно найти адрес в который складывается значения для определения свой чужой но как его найти?
Ссылка на комментарий
Поделиться на другие сайты

Все это есть на форуме

http://forum.gamehac...рока-id-players

http://forum.gamehac...ификатор-игрока

Можно еще найти указатель на адрес со здоровьем своего игрока, при помощи автоматического поисковика указателей. Найдется указатель, типа "game.exe+1234+1+2+238"

Затем в скрипте написать что-то типа

....

label(hp)

registersymbol(hp)

cmp [[[game.exe+1234]+1]+2],eax

jne short originalcode

mov [hp],(float)1

movss xmm0,[hp]

originalcode:

movsd [eax+00000238],xmm0

jmp returnhere

hp:

dd 0

.....

Но лучше почитать статьи и самому прийти к пониманию сути.

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

спасибо будем смотреть

Вот набросал код но скрипт врубаться не хочет


[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
label(life)
registersymbol(life)
aobscan(aoblife,F2 0F 11 80 38 02 00 00 8B 5D FC 89 5D F8 8B 45 F8 8B 80 60 01 00 00 8B 5D 08 8B 0B 8B 49 14 8B 49 10)
newmem:
cmp [eax+00000228],1
jne originalcode
push ecx
mov ecx,[eax+00000250]
movsd xmm0,[ecx]
pop ecx
originalcode:
movsd [eax+00000238],xmm0
exit:
jmp returnhere
aoblife:
life:
jmp newmem
nop
nop
nop
returnhere:
[DISABLE]
dealloc(newmem)
life:
movsd [eax+00000238],xmm0
unregistersymbol(life)

может кто подскажет в чем косяк

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

рабочий код


[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
label(life)
registersymbol(life)
aobscan(aoblife,F2 0F 11 80 38 02 00 00 8B 5D FC 89 5D F8 8B 45 F8 8B 80 60 01 00 00 8B 5D 08 8B 0B 8B 49 14 8B 49 10)
newmem:
cmp [eax+00000228],1
jne originalcode
mov [eax+00000238],4082C00000000000
jmp exit
originalcode:
movsd [eax+00000238],xmm0
exit:
jmp returnhere
aoblife:
life:
jmp newmem
nop
nop
nop
returnhere:
[DISABLE]
dealloc(newmem)
life:
movsd [eax+00000238],xmm0
unregistersymbol(life)

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

Вот в чем полезность статей. Минут 10 назад не знали, а теперь уже других начали подучивать ;P

Да, можно обойтись без xmm0, а сразу в [eax+00000238] писать. Просто привычка у меня)

А "создавать сохранять числа в отдельный регистр" нужно для...

Хорошо когда значение здоровья постоянное, например 1.0 float. А если это рпг, где статы прокачиваются ? У вас на 1 уровне 100/100хп. Вы "сломали" здоровье и указали, чтобы у вас было всегда 100хп. Но вот вы вкачали 99 уровень персонажу и у вас уже 100/10.000 хп, а враги то стали сильнее. Получайте смерть от 1 удара. Хорошо, если вы заметили, а если вы не далеко прошли игру и уже зарилизили трейнер ? Можно продумать это наперед и указать, чтобы всегда было 999999хп. Будет работать, да.., но будет ли красиво выглядеть на 1 лвл 999999/100хп ? А если на 1ой инструкции "висит" не только ваше здоровье, но и ваших союзников, и значение у всех разное ? Вот поэтому и делают часто в трейнерах так, чтобы текущее значение равнялось максимальному, а не тупо вбить постоянное число. Ни только практично, но и красиво.

А что не правильного в 1ом скрипте.., а фиг его знает, нету игры

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

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

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

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