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

CoD2 двойное сравнение!?


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

Всем привет. Вопрос такой как сделать двойное сравнение вот кусок скрипта:

...

cmp [eax+00000010],2 //обычная солдатня

cmp [eax+00000010],0 //важные персонажи

je god

jne 1hit

jmp returnhere

(такой скрипт выполняет только сравнение с 0)

...

так вот как сделать чтобы проверялся и 0 и 2 в пределах одного скрипта.? Помогите правильно составить сравнение.

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


cmp dword ptr [eax+10],0
jne адрес_след_cmp (возможно просто jne +3 (или сколько там след. инструкция байт жрёт) написать)
jmp short god
cmp dword ptr [eax+10],2
jne returnhere
jmp short 1hit
jmp returnhere

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


cmp dword ptr [eax+10],0
jne адрес_след_cmp (возможно просто jne +3 (или сколько там след. инструкция байт жрёт) написать)
jmp short god
cmp dword ptr [eax+10],2
jne returnhere
jmp short 1hit
jmp returnhere

Чет я не соображу... Мне нужно чтобы cmp [eax+00000010],2 и cmp [eax+00000010],0 при сравнении шли на god, а все остальные значения на 1hit.

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


[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(god)
label(1hit)

newmem:
cmp [eax+00000010],0
je god
jne 1hit

god:
mov [eax+0000013C],1000
jmp returnhere

1hit:
mov [eax+0000013C],1
jmp returnhere

"CoD2SP_s.exe"+FF367:
jmp newmem
nop
returnhere:



[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"CoD2SP_s.exe"+FF367:
mov edi,[eax+0000013C]
//Alt: db 8B B8 3C 01 00 00

Сам скрипт и вот как бы сюда засунуть вот это

cmp [eax+00000010],2

je god

jne 1hit

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


cmp [eax+00000010],0
je short god
cmp [eax+00000010],2
je short god
jmp short 1hit

спасибо большое! заработало! 2 вопроса... Обязательно после каждой метки ставить jmp returnhere и что такое short?

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

спасибо большое! заработало! 2 вопроса... Обязательно после каждой метки ставить jmp returnhere и что такое short?

на 1й вопрос ответ Да, на второй вопрос ответ писать лень, скопипастил простенький ответ с какого-то сайта

Прямой короткий (short) переход. Прямым называется переход, в команде которого в явной форме указывается метка, на которую нужно перейти.

Разумеется, эта метка должна присутствовать в том же программном сегменте, при этом помеченная ею команда может находиться как до, так и после команды jmp. Достоинство команды короткого перехода заключается в том, что она занимает лишь 2 байт памяти: в первом байте записывается код операции (EBh), во втором - смещение к точке перехода.

Расстояние до точки перехода отсчитывается от очередной команды, т.е. команды, следующей за командой jmp.

Поскольку требуется обеспечить переход как вперед, так и назад, смещение рассматривается, как число со знаком и, следовательно, переход может быть осуществлен максимум на 127 байт вперед или 128 байт назад.

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

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

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

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