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

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

2boss, не может быть, чтобы на нашем форуме не было инфы по созданию скриптом и их примеров. Если сложно найти на этом форуме, а это не огромная база знаний, то может начать с самого простого - почитать мануалы Артмани и СЕ? Просто мне лично приходит в голову, что в конечном итоге все вопросы сводят к просьбе - напишите мне скрипт телепорта или box esp и я пошел отсюда.

Так как на форуме, не представил вообще никаких результатов работы своей, да и другие пользователи что то не видят результатов ни каких. Поэтому убедительно прошу прочитать форум, тут на большинство ваших вопросов давно даны ответы. На тему телепорта тут и статьи есть, и видео, целых два, насколько я помню. И это, выберите всего одну задачу, которую хотите решить, и не беритесь за все "самое интересное", ибо как показывает практика, распыление внимания, уменьшает производительность и результативность.

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

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

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

boss, ты не знаешь, что делать после нахождения координат? А как насчет того, чтобы провести аналогию со взломом любого другого значения? Например, патронов? Что ты делаешь после нахождения адреса патронов? Любой новичок знает, что после этого надо найти инструкцию, которая и изменяет количество патронов (или же считывает их количество). А уже далее, когда нужная инструкция найдена, делается инъекция кода и пишется скрипт. Если все, что я сейчас написал, тебе не понятно - тебе нужно начинать с самых-самых азов... Ну, или, хотя бы, пересмотреть ВСЕ уроки кенга от начала и до конца, не просто повторяя действия, а вникая, почему делаются именно эти действия.

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

Я конечно ни разу не делал телепорт на СЕ и вообще :) не знаю лень наверное понять все это.

Если ты нашел координаты игрока Х.Y.Z. насколько мне известно Z-Это вверх, Y-Влево в Вправо, а X-Перёд Назад.

Ставишь брейкпоинт на точку X

или на Y а может на Z и далее.......................... по форуму что как это делать.

В общем геймхакеры подскажут что как, ты покажи скрипт полностью :) .

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

  • 4 недели спустя...

[esi+00000254](для игры crimsonland сделал сегодня все норм работает телепорт )

эх блин опять пишу ) вот 3 иструкций (игра css)

fstp dword ptr [esi+0000024C] Y

fstp dword ptr [esi+00000250] X

fstp dword ptr [esi+00000254] Z

скрипт взял выше

[ENABLE]

alloc(_newmemX,1024)

alloc(_newmemY,1024)

alloc(_newmemZ,1024)

label(_returnhereX)

label(_returnhereY)

label(_returnhereZ)

label(_originalcodeX)

label(_originalcodeY)

label(_originalcodeZ)

label(_restX)

label(_restY)

label(_restZ)

label(_X)

label(_Y)

label(_Z)

label(_save)

label(_teleport)

registersymbol(_save)

registersymbol(_teleport)

//X

_newmemX:

mov ecx,[esi+0000024C]

cmp [_save],1

jne short _restX

mov [_save],0

mov ecx,3

lea edi,[_X]

lea esi, [esi+0000024C]

rep movsd

_restX:

cmp [_teleport],1

jne short _originalcodeX

mov [_teleport],0

mov ecx,3

lea esi, [esi+0000024C]

lea esi,[_X]

rep movsd

_originalcodeX:

popad

mov ecx, [esi+0000024C]

jmp _returnhereX

//Y

_newmemY:

mov edx,[esi+00000250]

pushad

cmp [_save],1

jne short _restY

mov [_save],0

mov ecx,3

lea edi,[_Y]

lea esi,[esi+00000250]

rep movsd

_restY:

cmp [_teleport],1

jne short _originalcodeY

mov [_teleport],0

mov ecx,3

lea esi,[esi+00000250]

lea esi,[_Y]

rep movsd

_originalcodeY:

popad

mov edx,[esi+00000250]

jmp _returnhereY

//Z

_newmemZ:

mov eax,[esi+00000254]

pushad

cmp [_save],1

jne short _restZ

mov [_save],0

mov ecx,3

lea edi,[_Z]

lea esi,

rep movsd

_restZ:

cmp [_teleport],1

jne short _originalcodeZ

mov [_teleport],0

mov ecx,3

lea edi, [esi+00000254]

lea esi,[_Z]

rep movsd

_originalcodeZ:

mov eax, [esi+00000254]

popad

jmp _returnhereZ

_save:

dd 0

_teleport:

dd 0

_X:

dd 0

_Y:

dd 0

_Z:

dd 0

//X

jmp _newmemX

nop

nop

nop

nop

_returnhereX:

//Y

jmp _newmemY

nop

nop

nop

nop

_returnhereY:

//Z

jmp _newmemZ

nop

nop

nop

nop

_returnhereZ:

[DISABLE]

dealloc(newmem)

"engine.dll"+1005EC:

добавил по байту _save и _teleport оно сделало адрес ну все норм )) ну тут проблема когда пишу в _save 1 оно не сахроняет и так весит 1 что не так ? бряк ставил на те инструкции норм все работает

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

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

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

срипт проверил брепоинтером ошибок нету такой срипт

инструкция правильная

[ENABLE]

alloc(newmem,2048)

alloc(coords,14)

label(back)

label(end)

label(skip)

label(flag1)

label(flag2)

registersymbol(flag1)

registersymbol(flag2)

newmem:

pushfd

cmp [esi+00000250],0

jz end

cmp [flag1],1

jne skip

mov [flag1],0

pushad

mov ecx,3

lea esi,[esi+00000250]

lea edi,[coords]

repe movsd

popad

jmp end

skip:

cmp [coords],0

jz end

cmp [flag2],1

jne end

mov [flag2],0

pushad

mov ecx,3

lea esi,[coords]

lea edi,[esi+00000250]

repe movsd

popad

end:

popfd

fstp dword ptr [esi+00000250]

jmp back

nop

flag1:

db 0

flag2:

db 0

15EF350:

jmp newmem

nop

back:

[DISABLE]

15EF350:

fstp dword ptr [esi+00000250]

dealloc(newmem)

dealloc(coords)

unregistersymbol(flag1)

unregistersymbol(flag2)

ну все равно когда пишу 1 так и висит один не сахроняет

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

X - влево/вправо

Y - ближе/дальше от экрана

Z - вверх/вниз

это я знаю ) ну не могу понять почему не работает может в css нельзя сделать телепорт ? хотя я с ботами играю думаю же они не против)

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

boss, мне надоело читать чушь, которую ты пишешь.

1) Ну нафига под скрипт выделяешь 2кб, не много ли?

2) Нафига под координаты выделено 14 байт, когда float это 4 байта (4 * 3 = 12)

3) Ты хоть можешь объяснить зачем ты делаешь pusfd

4) Ленивее тебя на этом форуме я не видел никого

5) Читай книжки

6) Ну нафига ты так делаешь?


pushad
mov ecx,3
lea esi,[esi+00000250]
lea edi,[coords]
repe movsd
popad

Это же просто LOL кладёшь нужные тебе регистры в стэк и читаешь какую-то фигню.

P.S. перед как писать подобные вещи на форуме, спроси себя, а не глупо ли спрашивать-то, на что уже есть куча ответов.

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

  • 2 недели спустя...

Ну нафига под скрипт выделяешь 2кб, не много ли

Не много. Не имеет никакого значения сколько памяти ты выделяешь, если она меньше 4Кб(ну или какой у кого размер страницы).

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

2 кб и вправду очень расточительно..

А насчет телепорта, мне способ keng'a очень понравился, все и просто и логично, применимо практически к любой игре, достаточно поймать ту функцию, которая работает с координатами..ну и все тут.. да и сама идея с флагами гениальна просто)) пробовал на игре aquaria, телепорт получился даже лучше, чем ожидал, помимо сохранения и восстановления координат, я сделал перемещение к координатам курсора, а вместе с зумхаком - это телепорт в любую часть карты! (моя таблица есть на форуме СЕ если кому то интересно)

Так что советую просто разобраться в теме - это довольно увлекательный процесс..

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

№68, по поводу 2кб - он прав, ибо VirtualAlloc \ VirtualAllocEx резервирует память постранично, а у страницы памяти есть минимальный размер. Я при этом в любом случае люблю выделать память побайтно (но это во мне минимализм играет).

А что до телепорта - алгоритм изначально не мой, но я к нему пришёл самостоятельно, плюс - он не идеальный, в плане кода его наверняка можно оптимизировать. Но штука универсальная, это да. :)

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

>>Я при этом в любом случае люблю выделать память побайтно (но это во мне минимализм играет).

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

Страничный размер если я не ошибаюсь 4 кб на 32 разрядной Windows. На 64 разрядной вроде в два раза больше - 8 кб. Проверить можно экспериментально в той же CE посмотрев память после выделения. Так что сколько не пиши alloc(_label, меньше 4кб) будет 4 кб и погоды это не сделает. Только можно спровоцировать пользователя на ненужные вопросы. У кого вопросы - в Интернете полно информации по Архитектуре виртуальной памяти процесса.

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

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

В общем телепорт работает криво, сохраняет и загружает в определенное расстояние.

Если сохранить позицию и загружать за стеной или за домом персонаж телепортируется хрень знает куда.

А так все работает.

Кусок кода.

Инструкции точные работает тока с героем и постоянно выполняется инструкция.


newmem:
cmp [s_enable],1
je save_coord

cmp [l_enable],1
je load_coord

jmp originalcode

save_coord:
mov [s_enable],0
push eax
mov eax,[edx+24] // X--- Position
mov [x_coord],eax
mov eax,[edx+28] // Z--- Position
mov [z_coord],eax
mov eax,[edx+2c] // Y--- Position
mov [y_coord],eax
pop eax
jmp originalcode

load_coord:
mov [l_enable],0
cmp [z_coord],0
je originalcode
push eax
mov eax,[x_coord]
mov [edx+24],eax
mov eax,[z_coord]
mov [edx+28],eax
mov eax,[y_coord]
mov [edx+2c],eax
pop eax

originalcode:
fadd dword ptr [edx+28]
fxch st(2)

exit:
jmp returnhere

x_coord:
dd 0
z_coord:
dd 0
y_coord:
dd 0
s_enable:
dd 0
l_enable:
dd 0

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

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

ЗЫ. Это относится к FarCry 3, если что.

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

Телепорт делаю для игры Max Payne 1/

Вот польностю скрипт.



[ENABLE]
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

label(z_coord)
label(x_coord)
label(y_coord)

label(save_coord)
label(load_coord)

label(s_enable)
label(l_enable)

registersymbol(s_enable)
registersymbol(l_enable)

"MaxPayne.exe"+4E0C4:
jmp newmem
returnhere:

newmem:
cmp [s_enable],1
je save_coord

cmp [l_enable],1
je load_coord

jmp originalcode

save_coord:
mov [s_enable],0
push eax
mov eax,[edx+24] // X--- Position
mov [x_coord],eax
mov eax,[edx+28] // Z--- Position
mov [z_coord],eax
mov eax,[edx+2c] // Y--- Position
mov [y_coord],eax
pop eax
jmp originalcode

load_coord:
mov [l_enable],0
cmp [z_coord],0
je originalcode
push eax
mov eax,[x_coord]
mov [edx+24],eax
mov eax,[z_coord]
mov [edx+28],eax
mov eax,[y_coord]
mov [edx+2c],eax
pop eax

originalcode:
fadd dword ptr [edx+28]
fxch st(2)

exit:
jmp returnhere

x_coord:
dd 0
z_coord:
dd 0
y_coord:
dd 0
s_enable:
dd 0
l_enable:
dd 0



[DISABLE]
"MaxPayne.exe"+4E0C4:
fadd dword ptr [edx+28]
fxch st(2)
dealloc(newmem)
unregistersymbol(s_enable)
unregistersymbol(l_enable)
//Alt: db D8 42 28 D9 CA

Идентичен с моим скриптом телепорта, даже лейблы одинаковые))

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

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

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

А точнее, положение игрока вычисляется исходя из отработавшего триггера. Собственно, поэтому телепорт криво и работает.

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

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

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

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