-
Постов
48 -
Зарегистрирован
-
Посещение
-
Победитель дней
1
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные ZoraVl
-
-
Я ближе к вечеру проверю уже, сейчас времени нету
-
Подскажи пожалуйста, фильтр мне делать так-же как и ты делал в 7 days to die? У врагов ХП тоже не отнимается
p.s почему-то скрипты не работают твои... может видео записать, и там подробно объяснить что и как я хочу сделать?
-
Ну здоровье не отнимается, но и у врагов тоже... Фильтр нужен да?
-
подскажите как реализовать так, чтобы при отнимании здоровья срабатывала функция: записать в текущее значение, максимальное.
вот инструкция отнимания здоровья: movss [ecx+1C],xmm0
Смещение ecx+1C Это текущее здоровье
Смещение ecx+78 максимально значение
Вот Aob код:
Скрытый текст{ Game : Grim Dawn.exe Version: Date : 2016-07-31 Author : ????????? This script does blah blah blah } [ENABLE] aobscanmodule(INJECT,Game.dll,CC 0F 11 41 1C) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: movss [ecx+1C],xmm0 jmp return INJECT: jmp code return: registersymbol(INJECT) [DISABLE] INJECT: db CC 0F 11 41 1C unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Game.dll"+3C3A5 "Game.dll"+3C376: 0F 85 D5 00 00 00 - jne Game.dll+3C451 "Game.dll"+3C37C: 80 BF 01 12 00 00 00 - cmp byte ptr [edi+00001201],00 "Game.dll"+3C383: 0F 85 C8 00 00 00 - jne Game.dll+3C451 "Game.dll"+3C389: F3 0F 10 4D 08 - movss xmm1,[ebp+08] "Game.dll"+3C38E: 8D 8F 54 08 00 00 - lea ecx,[edi+00000854] "Game.dll"+3C394: 0F 57 D2 - xorps xmm2,xmm2 "Game.dll"+3C397: 0F 2F CA - comiss xmm1,xmm2 "Game.dll"+3C39A: 72 1C - jb Game.dll+3C3B8 "Game.dll"+3C39C: F3 0F 10 41 1C - movss xmm0,[ecx+1C] "Game.dll"+3C3A1: F3 0F 5C C1 - subss xmm0,xmm1 // ---------- INJECTING HERE ---------- "Game.dll"+3C3A5: F3 0F 11 41 1C - movss [ecx+1C],xmm0 // ---------- DONE INJECTING ---------- "Game.dll"+3C3AA: F3 0F 10 41 24 - movss xmm0,[ecx+24] "Game.dll"+3C3AF: F3 0F 58 C1 - addss xmm0,xmm1 "Game.dll"+3C3B3: F3 0F 11 41 24 - movss [ecx+24],xmm0 "Game.dll"+3C3B8: 80 7D 14 00 - cmp byte ptr [ebp+14],00 "Game.dll"+3C3BC: 53 - push ebx "Game.dll"+3C3BD: 8B 5D 0C - mov ebx,[ebp+0C] "Game.dll"+3C3C0: 56 - push esi "Game.dll"+3C3C1: C6 81 A0 04 00 00 01 - mov byte ptr [ecx+000004A0],01 "Game.dll"+3C3C8: 74 36 - je Game.dll+3C400 "Game.dll"+3C3CA: 83 3B 01 - cmp dword ptr [ebx],01 }
пробовал:
Mov eax,[ecx+78] mov [ecx+1C],eax
но игра вылетала при ударе
-
9 часов назад, Garik66 сказал:
Попробуй: СЕ/Изменить/Настройки/Параметры отладчика -> Использовать VEH отладчик. Если стоит он, то наоборот переключи на Использовать Windows отладчик.
Все заработало, спасибо!
-
Подскажите пожалуйста.
Нашел адрес здоровья, хочу подключить отладчик на доступ или на запись, при подключении игра сразу же закрывается без всяких ошибок, как это обойти в CE?
-
14 часа назад, MasterGH сказал:
Выкладываю исходники для желающих. Там все есть чтобы сделать читы на C#. Скорее всего, придется поправить немного код, чтобы собрать .dll. Также нужно указать пути дло текстур minus.png и plus.png.
Также нужны SharpDevelop 4.3 и ILSpy
Вместо SahrpDevelop подойдет обычный Microsoft Visual Studio?
-
Garik66
Я понял, сейчас проверю
MasterGHНу для тебя это все просто) А мне до такого уровня еще далеко
Garik66
Короче скрипт проверил, активировал, еда стала 100% вода осталась так-же, но в консоли много ошибок и она не закрывается, даже если скрипт отключить, все-равно много ошибок
А если поставить rdi+18 то скрипт работает!) Спасибо за помощь!!!
А как ты нашел значение то? Как ты понял что оно максимально 72?
-
1 час назад, Garik66 сказал:
Да разрабы хитрые ребята.
А в 4 байтах поискать не пробовал? (Ну не во float т .е.)
Скрипт "Hunger and thirst (Голод и жажда)":
{ Game : 7DaysToDie.exe Version: Date : 2016-07-15 Author : Garik66 This script does blah blah blah } [ENABLE] aobscan(WATER,89 47 10 48 63 4F 14) // should be unique alloc(newmem,$1000,2E86DC17) label(code) label(return) registersymbol(WATER) newmem: mov eax,[rdi+14] // проверь может лучше поставить [rdi+18] code: mov [rdi+10],eax movsxd rcx,dword ptr [rdi+14] jmp return WATER: jmp newmem DB 90 90 return: [DISABLE] WATER: db 89 47 10 48 63 4F 14 unregistersymbol(WATER) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: 2E86DC17 2E86DBFC: 00 00 - add [rax],al 2E86DBFE: 00 00 - add [rax],al 2E86DC00: 55 - push rbp 2E86DC01: 48 8B EC - mov rbp,rsp 2E86DC04: 57 - push rdi 2E86DC05: 48 83 EC 18 - sub rsp,18 2E86DC09: 48 8B F9 - mov rdi,rcx 2E86DC0C: 48 89 55 E8 - mov [rbp-18],rdx 2E86DC10: 48 63 47 10 - movsxd rax,dword ptr [rdi+10] 2E86DC14: 03 45 E8 - add eax,[rbp-18] // ---------- INJECTING HERE ---------- 2E86DC17: 89 47 10 - mov [rdi+10],eax 2E86DC1A: 48 63 4F 14 - movsxd rcx,dword ptr [rdi+14] // ---------- DONE INJECTING ---------- 2E86DC1E: 3B C1 - cmp eax,ecx 2E86DC20: 0F 8E 75 00 00 00 - jng 2E86DC9B 2E86DC26: B8 01 00 00 00 - mov eax,00000001 2E86DC2B: 83 F8 01 - cmp eax,01 2E86DC2E: B8 01 00 00 00 - mov eax,00000001 2E86DC33: 85 C0 - test eax,eax 2E86DC35: F3 0F 10 47 1C - movss xmm0,[rdi+1C] 2E86DC3A: F3 0F 5A C0 - cvtss2sd xmm0,xmm0 2E86DC3E: 48 63 47 10 - movsxd rax,dword ptr [rdi+10] 2E86DC42: 48 63 4F 14 - movsxd rcx,dword ptr [rdi+14] }
MAX значение не равно 100, а равно 72.
В структуре этой инструкции:
[rdi+10] - текущее значение голода (жажды).
[rdi+14] - я выбрал это значение за MAX, но нужно тестить скрипт в игре, может лучше следующее смещение взять.
[rdi+18] - вот это.
Потесть. Видео записывать не буду, вроде ничего сложного.
Хорошо спасибо, я полазию посмотрю может что найду
-
1 час назад, Garik66 сказал:
ЗЫ:
ZoraVl, игрушку я сношу (надоел мне этот английский, ни хрена не понимаю ни что делать, никак делать, а без понимания весь интерес к игре теряется), но, если сделают поддержку на русском разрабы, либо фанаты опять начнут переводить, то может и поиграю (вроде интересно должно быть повыживать, но конечно же без читов).
На лицензии которая в стиме продается, там есть русификатор от фанатов, в руководствах... Можешь глянуть вот тут
-
2 часа назад, Garik66 сказал:
ЗЫ1: ZoraVl, а с голодом и жаждой разобрался?
Нет, я значение найти не как не могу.... Пробовал и отнимать и прибавлять, и в структуре капался... Без толку...
Вот скрипты котоорые я сделал:
•качество оружия бесконечное
•бесконечные патроны
•очки улучшения скиллов
•всегда день
•быстрый крафт
Ну и остальные твои, год мод и дамаг...
2 часа назад, Garik66 сказал:je - если в предыдущем сравнение значения в регистре и адресе равны то прыгаем на .....
@f - короткий прыжок (условный переход) вперёд (от английского forward - вперёд) на ближайшую безымянную метку @@, может быть ещё @b - короткий прыжок назад (от английского back - назад).
В чём преимущество использования безымянных меток @@: их ненужно объявлять, и их может быть сколько угодно в скрипте.
fld - загружает в верхний регистр FPU значение из адреса (в нашем случае [rsi+20]) сдвигая значения в регистрах.
fst - выгружает из регистра в память без сдвига.
fstp - выгружает из регистра в память со сдвигом назад (т.е. в нашем случае мы восстановили значения регистров на игровые на всякий случай).
Т.е. код:
fld [rsi+20] fstp [rsi+24]
нам позволил передать значение из памяти в память, т.к. напрямую этого делать нельзя.
Подробнее по работе с вещественными числами - погугли и почитай, больше поймёшь.
90 - это тот же опкод nop, в нашем случае служит для выравнивания, т.е. 5 байт (jmp newmem) + 4 байта (4 nop или 90 90 90 90) = 9 байт (48 8B 46 18 F3 0F 10 45 CC - смотри ниже это байты оригинальной инструкции игры, с которой мы делаем прыжок (переход) на нашу инъекцию.)
db - от английского define byte (определить байт)
dw - word (слово - два байта)
dd - double word (двойное слово - 4 байта) - если значение вещественное то пишем float в скобках.
dq - quadr worrd (учетверённое слово - 8 байт) ставим double, т.е. получаем удвоенное двойное слово.
Об этом всём тоже лучше погуглить и почитать поподробнее.
Спасибо большое за объяснения! Теперь намного понятнее что да как!:)
-
3 часа назад, Garik66 сказал:
А я подумал, что Зорро 6.
Молодца!!! Удачного дальнейшего взлома!!!
Можешь рассказать что означают функции в твоем скриптке GodMod? Я в коде отмечу какие.
Скрытый текст{ Game : 7DaysToDie.exe Version: лицензия Steam Alpha 14.7 (64bit) Date : 2016-07-10 Author : Garik66 This script does blah blah blah } [ENABLE] aobscan(Pointer,48 8B 46 18 F3 0F 10 45 CC) // should be unique aobscan(GodMod,F3 0F 11 6E 24 48 8B CE) alloc(newmem,$1000,2A0C488C) label(code) label(return) label(Health) label(Wilness) label(Stamina) label(code1) label(return1) label(newmem1) registersymbol(Health) registersymbol(Stamina) registersymbol(Pointer) registersymbol(Wilness) registersymbol(GodMod) newmem: mov ecx,[rsi+10] mov [Health],ecx mov ecx,[rsi+18] mov [Stamina],ecx mov ecx,[rsi+38] mov [Wilness],ecx code: mov rax,[rsi+18] movss xmm0,[rbp-34] jmp return Health: dq (double)0 Stamina: dq (double)0 Wilness: dq (double)0 newmem1: mov rcx,[Health] cmp rcx,rsi je @f // Что делает эта фукция? mov rcx,[Stamina] cmp rcx,rsi je @f // Что делает эта фукция? mov rcx,[Wilness] cmp rcx,rsi je @f // Что делает эта фукция? jmp return1 @@: fld [rsi+20] // Что делает эта фукция? fstp [rsi+24] // Что делает эта фукция? jmp return1 code1: movss [rsi+24],xmm5 jmp return1 Pointer: jmp newmem db 90 90 90 90 return: GodMod: jmp newmem1 return1: [DISABLE] Pointer: db 48 8B 46 18 F3 0F 10 45 CC GodMod: db F3 0F 11 6E 24 unregistersymbol(Health) unregistersymbol(Stamina) unregistersymbol(Pointer) unregistersymbol(GodMod) unregistersymbol(Wilness) dealloc(newmem)
Код я переделал немного, добавил Wilness, это отвечает за максимальное здоровье и стамину...
Еще мне интересно почему ты записал db 90 90 90 90 где Pointer, ну тоесть зачем это? и чем отличается db от dq и почему ты написал dq (bouble) а не dq (float)
- 1
-
2 часа назад, LIRW сказал:
Я думал просто ЖОРА прям похоже.
-
8 часов назад, Garik66 сказал:
ZoraVI, извиняй - сегодня точно уже не получиться покопаться в игре.
Короче спасибо большое!!! Я разобрался как сделать фильтр!!! Урааа!=))))
P.S мой ник читается как ЗораВЛ - ударение на О, а вл это Влад =)
Спасибо за твои уроки!
- 1
-
7 часов назад, Garik66 сказал:
ZoraVI, извиняй - сегодня точно уже не получиться покопаться в игре.
Да ладно мне не к спеху)
-
5 минут назад, Garik66 сказал:
Да не зачем.
Я в неё играть всё-равно не буду.
А видео по крафту и прохождение - думаю полный ТЮБ, т.е. куча.
Ну короче что-бы сделать первый инструмент тоесть топор, нужно подойти к дереву постучать по нему, подойти к камню постучать по нему и постучать по траве... лучше включить скрипт для ломания с одного удара... дальше нажимаешь ТАВ и там белым цветом будет Stone Axe это каменный топор, нажимаешь на него и нажимаешь Craft (собрать)... Вуаля
-
3 минуты назад, Garik66 сказал:
Ты уверен, что это НР зомби? эт во-первых.
во-вторых: очень не внимательно смотрим скрипты, эта инструкция, которую я использовал при написании GodMod.
Через часок появиться время, попробую написать тебе OneHitKill.
Но ещё раз говорю я не знаю английского, поэтому тяжело разобраться в управлении игры, ну например как и где взять какое-нибудь оружие, как скушать что-нить, полечиться, а без знания таких нюансов, затрудняется взлом. Ну и во-вторых в такие игры я не играю.
С прочностью предметов, будем разбираться как-нибудь потом.
Могу записать видео как сделать топор в начале игры, если хочешь)
-
1 час назад, Garik66 сказал:
Ну например урок из этой же темы можно взять.
2 раза уже попробовал, все-равно не получается, выбрал адрес, поставил бряк на доступ, куча инструкций и у всех 1 адрес на возможный указатель... Что-то я не догоняю как это сделать
-
7 минут назад, Garik66 сказал:
ФИЛЬТР!!!
Если пока не понимаешь, как это делать, смотри мои видео-уроки, я почти в каждом уроке про фильтры, что-нибудь да рассказываю.
Написание фильтра - есть много способов и вариантов реализации.
Например какой видео урок?
-
Короче, есть у каждого оружия состояние, каждый удар отнимает одну единицу состояния, я нашел значение, которое при каждом ударе увеличивается на 1 единицу и вот после нескольких ударов у меня значение уже 6, состояние оружия уменьшилось... Если поставить значение 0 то предмет снова целый...
Вообщем ставим бряк на запись, при ударе вылазит одна инструкция, но она работает со многими адресами
061D7C8C - 89 77 28 - mov [rdi+28],esi
И когда в скрипте пишем допустимmov [rdi+28],#0 то игра вылетает при активации скрипта, 0 - это кол-во ударов нанесенное этим оружием...
Вот собственно вопрос, как правильно написать скрипт, что-бы кол-во ударов не прибавлялось и игра не вылетала?
-
Только что, Garik66 сказал:
Конечно можно, как и в любой другой игре.
zoraVI, посмотри мои видео-уроки по добавлению новых предметов, есть и для игры Дарк Соулс и для Fallout, ну и раньше делал для других игр тоже.
Смотри там же в разделе для новичков.
Сейчас гляну
-
53 минуты назад, LIRW сказал:
Да я не до конца досмотрел. А там кстати Игорь можно предметы генерировать. Ну в сумку пистолеты всякие и в обще всё вооружение и тому подобные предметы.
А кстати да, можно как-то найти адрес допустим первого слота, и вставить в структуру ID предмета и его качество или колличество, сейчас попробую качество предмета взломать, что-бы он не ломался, поможете если что?)
-
4 минуты назад, LIRW сказал:
Тогда Игоря жди - у меня не идет игра. Бонусов под коплю - куплю её по скидки Хотя для неё постоянно в сети трейнеры выкладывают. А то что работает инструкция и с другими адресами, у меня такое было и не раз. По за вчера вон в координатах - вроде бы я один был, а в следующем уровне уже пол игры.
Ну будем ждать Игоря:)
-
Сейчас проверил, эта инструкция работает со всеми моими параметрами... Я не то что-то нашел опять... Хотя когда бил по зомби инструкция работала только с одним адресом
Grim dawn
in Вопросы по созданию читов в одиночных играх
Опубликовано
Все работает, надо разобраться как ты это все сделал)