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

Странное смещение


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

Привет Всем подскажите а почему когда делаешь поиск указателя находить много адресов перезагружаешь игру входишь снова 

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

ДА И ЧТО ТАКОЕ распределенный поиск указателей как работает это я пробовал искать но выдает какиета цифры с ошибкой

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

/*---------------------------------------------------------------------------*/

 

Причин может быть довольно много, но мне в голову приходит только одна - code

shifting. Это ситуация, когда часть игрового кода подгружается игрой

динамически, а хранится при этом в DLL. В этом случае надо получить адрес DLL,

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

Попробуй сначала сделать инъекцию кода, чтобы не использовать указатели, если

не сработает - можно начинать думать о чём-то более сложном.

 

/*---------------------------------------------------------------------------*/

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

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

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

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

/*---------------------------------------------------------------------------*/

 

[GetModuleHandle], но её нужно вызывать из адресного пространства процесса.

Вернёт адрес, по которому загружен тот или ной исполняемый модуль. А дальше

считаешь:

 

hDll + 0x12345678 = адрес нужного участка кода.

 

Я ещё раз советую сначала попробовать обойтись без использования указателей

там, где это возможно. Указатели на память - не самая надёжная штука.

 

/*---------------------------------------------------------------------------*/

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

ОФФТОП: Надоело ломать голову в попытках прочитать то, что пишут пользователи. Теперь за каждый пост, написанный без применения знаков препинания, буду ставить минус в репу. Пять таких минусов - один пред. 6 предов - вечный бан.

 

 

Baracuda, главным образом, в данный момент, это относится к тебе.

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

Xipho, без обид злой ты однако человек, у вас тут не курсы русского я зыка, 

из за запитых человека наказывать.

НУ ВЫ ДАЕТЕ РЕБЯТА.

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

Xipho, без обид злой ты однако человек, у вас тут не курсы русского я зыка, 

из за запитых человека наказывать.

НУ ВЫ ДАЕТЕ РЕБЯТА.

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

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

/*---------------------------------------------------------------------------*/

 

Дело не в навыках программирования или владения английским языком. Штука в том,

что сообщения, написанные неграмотно и впопыхах, тяжело читать и воспринимать

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

если оно большого объёма, то и ориентироваться в нём тоже можно достаточно

быстро. Если же вместо связного текста написана каша без знаков препинания и 

вообще намёков на оформление - то дольше времени потратится на прочтение,

перечитывание и попытки осознать, чего же хотел автор, чем на, собственно, 

решение его вопроса. Главное понимать, что форум - это не чат, некуда тут 

торопиться. Сообщения, как и темы, никуда не денутся, так что можно сидеть и

составлять хоть полчаса, хоть час - всё равно ведь прочитают.

 

/*---------------------------------------------------------------------------*/

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

Xipho, без обид злой ты однако человек, у вас тут не курсы русского я зыка, 

из за запитых человека наказывать.

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

Если ты не слушал учителей в школе, то есть даже для таких как ты в Google Chrome (и других браузерах) встроили базовый spell checker (проверка написанного текста на наличие ошибок) и ты можешь исправить все ошибки в тексте.

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

 

P.S. И давай пиши без капса (Caps Lock).

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

 

Пожалуйста покажи на примере на каком ни буть скрипте

Так вот в 8 посте пример

О_о Risen докачался, ща ломанём)

Указатель на героя

[[[Risen3.exe+DD6CC0]+1C]+1С]+XX:+14 - ближний бой+18 - дальний бой+1C - проворность+20 - влияние+24 - выносливость+28 - Ловкость+2C - магия+30 - дух+34 - число+20 = макс. здоровье+38 - здоровье+3C - слава+40 - репутация
Скрипт на бессмертие(вариант с записью 100 здоровья):

 

Пример максимум жизни.

[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)newmem:cmp ebp,0Ajne originalcodemov edi,64originalcode:mov [esi+ebp*4+10],edimov edx,[esi]jmp returnhere"Risen3.exe"+2BF4E8:jmp newmemnopreturnhere:[DISABLE]dealloc(newmem)"Risen3.exe"+2BF4E8:mov [esi+ebp*4+10],edimov edx,[esi]
[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem:mov [esi+38],#7834mov [esi+34],#7834originalcode:mov ebx,[esi+ebp*4+10]push ediexit:jmp returnhere"Risen3.exe"+2BF430:jmp newmemreturnhere:[DISABLE]"Risen3.exe"+2BF430:mov ebx,[esi+ebp*4+10]push edidealloc(newmem)
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

[[[Risen3.exe+DD6CC0]+1C]+1С]+X Что это, и откуда взято понять не могу.
X
:
+14 - ближний бой  +14 +18 от куда это взяты эти цифры, может объясните это, с помощью  ReClass были найдены.
+18 - дальний бой
+1C - проворность
+20 - влияние
+24 - выносливость
+28 - Ловкость
+2C - магия
+30 - дух
+34 - число+20 = макс. здоровье
+38 - здоровье
+3C - слава
+40 - репутация

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

Вот еще скрипт  убийство с одного удара. Risen 3. v1.0.90.0

[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem:mov ecx,0originalcode:mov [esi+eax*4+10],ecxmov edx,[esi]exit:jmp returnhere"Risen3.exe"+2C4DB4:jmp newmemnopreturnhere:[DISABLE]"Risen3.exe"+2C4DB4:mov [esi+eax*4+10],ecxmov edx,[esi]dealloc(newmem)
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

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

Привет всем, как сделать скрипт на добавления например денег, что бы при нажатии на кнопку, например numpad 1 добавлялось, столько сколько установишь а не когда в игре изменится автоматически, типа функция в Cheat Engine

назначить\изменить Хоткей там есть функция Увеличить Значения на, вот как поставит это на скрипт. я надеюсь понятно объяснил. 

Можно примером показать если возможно.

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

/*----------------------------------------------------------------------------*/

 

Привет! Читаешь текущее значение адреса, прибавляешь нужное значение,

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

флаг - если он равен единице, то нужно прочитать-добавить-записать и сбросить

флаг на ноль, если ноль - то ничего не добавлять и просто записать. Пример

сейчас не могу привести - пишу из транспорта с телефона.

 

/*----------------------------------------------------------------------------*/

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

Привет Keng, я так не пойму можно на примере этого скрипта покажешь.

 

вот на примере этого скрипта

 

[ENABLE]
alloc(newmem,2048)
label(returnhere)
 
newmem:
mov dword ptr [esi+000020A8],(float)100
jmp returnhere
 
"Game.dll"+13E439:
jmp newmem
nop
returnhere:
 
[DISABLE]
dealloc(newmem)
"Game.dll"+13E439:
fstp dword ptr [esi+000020A8]
Ссылка на комментарий
Поделиться на другие сайты

/*----------------------------------------------------------------------------*/

 

Можешь посмотреть скрипт вот в [этом] видео - способ тот же.

 

/*----------------------------------------------------------------------------*/

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

Я смотрел этот урок, на писать я с смогу суть понятно, но здесь есть не большая проблемка,по крайне мере для меня, 

ты в этот видео говоришь что скрипт надо включать и выключать, а мне надо как функция назначить хоткей, Увеличить Значения НА 

например нашел адрес денег статический, назначить функцию хоткей Увеличить Значения НА, поставил например 100 золота нажал на кнопку добавилось 100 золота, и автоматически отключилось, до следующего нажатия, вот это мене нужно в скрипте, здесь есть у вас на сайте 

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

 

Проще в сего, будет показать на этом скрипте,

который я указал выше если можно.

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

Псевдокод (НЕ скрипт):

label(flag)registersymbol(flag)cmp byte ptr [flag], 1jne exitadd [someaddr],100mov byte ptr [flag],0exitjmp returnhereflag:db 0

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

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

Привет, не могу правильно в ставить эту инструкцию, помогите голова совсем не варит сложновато для меня.

 

cmp byte ptr [flag],1 вот эту
jne exit
add [someaddr],100
mov byte ptr [flag],0
exit
jmp returnhere
flag:
db 0
 
[ENABLE]
alloc(newmem,2048)
label(returnhere)
 
newmem:
mov dword ptr [esi+000020A8],(float)100
jmp returnhere
 
"Game.dll"+13E439:
jmp newmem
nop
returnhere:
 
[DISABLE]
dealloc(newmem)
"Game.dll"+13E439:
fstp dword ptr [esi+000020A8]
Ссылка на комментарий
Поделиться на другие сайты

Вот тебе скрипт. Что тут сложного - не приложу ума. Видимо, ты просто не старался даже сделать его.

[ENABLE]alloc(newmem,2048)label(flag)registersymbol(flag)label(returnhere)newmem:fstp dword ptr [esi+000020A8]cmp byte ptr [flag],1jne returnhereadd [esi+000020A8],(float)100mov byte ptr [flag],0jmp returnhereflag:db 0"Game.dll"+13E439:jmp newmemnopreturnhere:[DISABLE]"Game.dll"+13E439:fstp dword ptr [esi+000020A8]dealloc(newmem)unregistersymbol(flag)

Не забудь добавить в таблицу адрес flag, и сделать хоткей, который по нажатию будет заносить в этот 1.

Такой адрес добавится в таблицу только при активном скрипте, который я тебе сделал.

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

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

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

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