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

Need For Speed: Hot Pursuit Limited Edition


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

Начал ломать новую игруху и сразуже наткнулся на такую проблему

Ломаю позицию в гонке (смысле 1 там второй) нашёл значение вышел на инструкцию,

Нужен фильт, пытаюсь написать СЕ его не компилит ругается на LABEL(_Player).

Собственно вопрос где я накасячил

Сам скрипт


aobscan(_faddress,89xxxx8bxxxx8bxxxxxx8dxxxxxxxx8bxxffxx8bxx89xx8bxxxxxx8d)
alloc(_newmem,2048)
label(_returnhere)
label(_originalcode)
LABEL(_Player)
REGISTERSYMBOL(_Player)
_newmem:
mov [esi+48],eax
push ecx
mov ecx,(NFS11.exe+014DF9A0)
mov ecx,(ecx+6A4)
mov ecx,(0871c520+50)
mov ecx,(0871c578)
mov ecx,(0871c520+9c)
mov ecx,(0871c5c4+48)
mov (_Player),ecx
pop ecx
cmp esi,(_Player)
ine short _originalcode
mov [esi+48],#1

_originalcode:
mov [esi+48],eax
mov eax,[ebp+00]
jmp _returnhere

_faddress: // 00583CEF = NFS11.exe+183CEF
jmp _newmem
nop
_returnhere:

_player:
db 90 90


[DISABLE]
aobscan(_faddress,908bxxxxxx8dxxxxxxxx8bxxffxx8bxx89xx8bxxxxxx8d)

_faddress-5:
mov [esi+48],eax
mov eax,[ebp+00]

dealloc(_newmem)
//Alt: db 89 46 48 8B 45 00
[ENABLE]

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

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

mov (_Player),ecx

нужно заменить на 

mov [_Player],ecx

А также необходимо заменить остальные скобки под "_newmem:"

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

Что-то я потыркался, потыркался и ни хрена не вышло всё равно не компилит

f9daef607d1e.jpg

Мастер

если не трудно, отредактируй мой скрипт чтоб компилися

и укажи на места ошибок!!!!!!!!!!!!!!!!!!!!!!!!!

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

нитро

[ENABLE]

aobscan(_faddress,d9xxxxxxc2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8bxxxxxx69)

alloc(_newmem,2048)

label(_returnhere)

label(_originalcode)

_newmem:

mov [eax+ecx+64],(float)100

_originalcode:

fld dword ptr [eax+ecx+64]

ret 0004

jmp _returnhere

_faddress: // 005D7F7A = NFS11.exe+1D7F7A

jmp _newmem

nop

nop

_returnhere:

[DISABLE]

aobscan(_faddress,9090xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8bxxxxxx69)

_faddress-5:

fld dword ptr [eax+ecx+64]

ret 0004

dealloc(_newmem)

зми и прочие

[ENABLE]

aobscan(_faddress,ffxxxxxxxxxxxxf3xxxxxxxxxxxxxxxxc2xxxxxxxxxxxxxxxxxxxxxxxxxxxx83)

alloc(_newmem,2048)

label(_returnhere)

label(_originalcode)

_newmem:

_originalcode:

inc [ecx+eax*4+00000598]

jmp _returnhere

_faddress: // 00572141 = NFS11.exe+172141

jmp _newmem

nop

nop

_returnhere:

[DISABLE]

aobscan(_faddress,9090f3xxxxxxxxxxxxxxxxc2xxxxxxxxxxxxxxxxxxxxxxxxxxxx83)

_faddress-5:

dec [ecx+eax*4+00000598]

dealloc(_newmem)

Награда

[ENABLE]

aobscan(_faddress,8bxxxxxxxxxxxx01xxxxxxxxxxxx3bxxxxxxxxxx72xx3bxxxxxxxxxx74xx8b)

alloc(_newmem,2048)

label(_returnhere)

label(_originalcode)

_newmem:

mov dword ptr [eax+ecx*4+000455a0],#10000000

_originalcode:

mov edi,[eax+ecx*4+000455a0]

jmp _returnhere

_faddress: // 005E59F0 = NFS11.exe+1E59F0

jmp _newmem

nop

nop

_returnhere:

[DISABLE]

aobscan(_faddress,909001xxxxxxxxxxxx3bxxxxxxxxxx72xx3bxxxxxxxxxx74xx8b)

_faddress-5:

mov edi,[eax+ecx*4+000455a0]

dealloc(_newmem)

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

Что-то я потыркался, потыркался и ни хрена не вышло всё равно не компилит

f9daef607d1e.jpg

Мастер

если не трудно, отредактируй мой скрипт чтоб компилися

и укажи на места ошибок!!!!!!!!!!!!!!!!!!!!!!!!!

Ты ещё забыл попросить сделать трейнер ) Не.  У нас на форуме есть множество примеров как писать скрипты по ним можно научиться. 

Если что-то  не компилируется,то упрощай скрипт так чтобы компилировался, а затем добавляй по строчке своего кода и увидишь ошибку. 

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

Ты метку _Player объявить - объявил, но не определил. Она не указывает ни на какой адрес. Поэтому Авто-Ассемблер и ругается.

Определи ее в коде примерно так:

_newmem:
mov [esi+48],eax
push ecx
mov ecx,(NFS11.exe+014DF9A0)
mov ecx,(ecx+6A4)
mov ecx,(0871c520+50)
mov ecx,(0871c578)
mov ecx,(0871c520+9c)
mov ecx,(0871c5c4+48)
mov (_Player),ecx
pop ecx
cmp esi,(_Player)
jne short _originalcode
mov [esi+48],#1

_originalcode:
mov [esi+48],eax
mov eax,[ebp+00]
jmp _returnhere
_Player:
dd 0

То есть, в области выделенной памяти за кусками нужного кода ты выделяешь один адрес для того, чтобы записывать в него статичный адрес, и все будет путем )

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

Точно нет. ибо компилятор авто-ассемблера не знает, какой адрес записываь в квадратные скобки, если не зарезервировать место под метку. У меня такое было раз, когда я торопясь писал скрипт. Ошибка именно отсюда ползет.

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

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

Привет всем... подскажите как в игре таймер гонки сломать... а точнее как его найти то... и штрафные секунды у ментов...

спс...

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

Привет всем... подскажите как в игре таймер гонки сломать... а точнее как его найти то... и штрафные секунды у ментов...

спс...

вот скрипт

[ENABLE]
aobscan(_faddress,01xxxx8dxxxx8bxxxxxx11xxxx66xxxx75xxxxxxxxxx83xxxxc2)
aobscan(_faddress2,01xx11xxxxe8xxxxxxxxxxxxxxxxxxxxe8xxxxxxxx33xx38xxxxxx0f)


_faddress: // 00562FE8 = AK::GameLogic::Profile::ReadFromFile+4E58
db 90 90 90

_faddress2: // 00545375 = AK::GameLogic::CompetitorsManager::RegisterWithBindingManager+F5F5
db 90 90

[DISABLE]
aobscan(_faddress,9090908dxxxx8bxxxxxx11xxxx66xxxx75xxxxxxxxxx83xxxxc2)
aobscan(_faddress2,909011xxxxe8xxxxxxxxxxxxxxxxxxxxe8xxxxxxxx33xx38xxxxxx0f)

_faddress:
add [edx+ecx*8],ebp

_faddress2:
add [eax],edi

только как искал, не помню)

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

Объясните мне, зачем вы в части скрипта, которая ВЫКЛЮЧАЕТ чит, повторяете поиск сигнатуры? Она ведь уже найдена во ВКЛЮЧАЮЩЕЙ части скрипта. Соответственно, в повторном поиске необходимости нет. Достаточно сразу использовать адреса, найденные в первой части скрипта.

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

Это самая простая проверка на, то что код после инъекции не изменился и его можно спокойно отменить. На самом деле это понадобилось только в одной игре - сделать инъекцию на кол-во золота для покупки войск перед загрузкой карты и последующим боем. У игры выгружались и подгружались dll-ки перед началом боя. Соответственно после боя невозможно отменить инъекцию, т.к. сигнатуры не существует.

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

Игра Need for Speed Hot Pursuit v1.0

Помогите сломать таймер гонки и штрафные секунды у ментов...Значени находится как float и double но как double мне кажется подходит лучше всего... заморозка не рабобает и инструкции тоже...

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

Если хочешь больше шансов чтобы ответили(может быть и я помогу), то желательно потрудиться для этого:

1) В CE скопировать участок кода прервавшейся инструкции для тамера гонки и сгенерировать и привести сигнатуру из CE 5.6 RUS.

2) В CE скопировать участок кода прервавшейся инструкции для штрафных секунд и сгенерировать и привести сигнатуру из CE 5.6 RUS

3) Приаттачить два сейв-файла перед началом миссий в которых будут срабатывать инструкции из пункта 2 и пункта 3.

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

Как изменить время в игре, таймер или вообще его отсчет заморозить?

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

Нужно в игре зайти в меню или поставить игру на паузу. Если в игре нет кнопки паузы, тогда поставь паузу через, в твоем случае, CE. Обычно время хранится в секундах, или в миллисекундах (в тысячных долях секунды). Очень редко минуты и секунды хранятся отдельно. Например, игра Starcraft время хранит в секундах. Если у тебя 24 минуты и 33 секунды, то искать надо 1473 секунд (24мин*60+33сек=1473сек).

Обычно видимое на экране время на единицу отличается от реального, эффект задержки. Искать лучше через поиск "Неизвестное значение" (условия Увеличилось/Уменьшилось). Или искать диапазоном, то есть у тебя 3:14 это 194 секунд. Ищи диапазон с 192 до 196 целые. Просто секунды тоже ищи в диапазоне, то есть с 12 до 16 целые.

Источник

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

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

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

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