-
Постов
9 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные mahonya
-
-
1 минуту назад, Garik66 сказал:
скрипт попробовал? не прокатило?
Краш(
Полагаю, нужно в игровой код переходить. Только бы еще разобраться как грамотно это сделать) Полез ковыряться
9 минут назад, Garik66 сказал:нужно выходить на игровую инструкцию
Вообще странно, все, что пытаюсь брейкпоинтом поймать, все выводит к VCRUNTIME140.dll . Это нужно через трасировку искать игровую инструкцию ?
-
15 минут назад, Garik66 сказал:
видео все-таки ты не посмотрел
Блин, у меня уже глаза плывут от белого фона сайта, после резкого перехода с IDE с темной темы, я неправильно прочитал тебя) Я читаю как "видео посмотрел" ?
По поводу выполнения кода после я понял, это второе, я просто первым делом хочу решить основную проблему.
3 минуты назад, Garik66 сказал:нужно выходить на игровую инструкцию
Как это сделать ?
З.Ы. Видео посмотрел) И вообще, приметил кучу видео, которые буду позже смотреть)
-
14 минут назад, mahonya сказал:
{ Game : DrugDealerSimulator-Win64-Shipping.exe Version: Date : 2022-02-10 Author : ?????? This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(stam,VCRUNTIME140.dll,89 08 C3 0F 1F 00) // should be unique alloc(newmem,$1000,stam) label(code) label(return) newmem: mov [rax],ecx push dword ptr [rax+0A68] pop dword ptr [rax+0] code: ret nop dword ptr [rax] jmp return stam: jmp newmem return: registersymbol(stam) [DISABLE] //code from here till the end of the code will be used to disable the cheat stam: db 89 08 C3 0F 1F 00 unregistersymbol(stam) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: VCRUNTIME140.memcpy+CA VCRUNTIME140.memcpy+AD: C3 - ret VCRUNTIME140.memcpy+AE: 66 90 - nop 2 VCRUNTIME140.memcpy+B0: 4C 8B 02 - mov r8,[rdx] VCRUNTIME140.memcpy+B3: 0F B7 4A 08 - movzx ecx,word ptr [rdx+08] VCRUNTIME140.memcpy+B7: 44 0F B6 4A 0A - movzx r9d,byte ptr [rdx+0A] VCRUNTIME140.memcpy+BC: 4C 89 00 - mov [rax],r8 VCRUNTIME140.memcpy+BF: 66 89 48 08 - mov [rax+08],cx VCRUNTIME140.memcpy+C3: 44 88 48 0A - mov [rax+0A],r9l VCRUNTIME140.memcpy+C7: C3 - ret VCRUNTIME140.memcpy+C8: 8B 0A - mov ecx,[rdx] // ---------- INJECTING HERE ---------- VCRUNTIME140.memcpy+CA: 89 08 - mov [rax],ecx // ---------- DONE INJECTING ---------- VCRUNTIME140.memcpy+CC: C3 - ret VCRUNTIME140.memcpy+CD: 0F 1F 00 - nop dword ptr [rax] VCRUNTIME140.memcpy+D0: 8B 0A - mov ecx,[rdx] VCRUNTIME140.memcpy+D2: 44 0F B6 42 04 - movzx r8d,byte ptr [rdx+04] VCRUNTIME140.memcpy+D7: 89 08 - mov [rax],ecx VCRUNTIME140.memcpy+D9: 44 88 40 04 - mov [rax+04],r8l VCRUNTIME140.memcpy+DD: C3 - ret VCRUNTIME140.memcpy+DE: 66 90 - nop 2 VCRUNTIME140.memcpy+E0: 8B 0A - mov ecx,[rdx] VCRUNTIME140.memcpy+E2: 44 0F B7 42 04 - movzx r8d,word ptr [rdx+04] }
Я вот смотрю на скрипт и вижу одну вещь. Я заметил, что действия происходят в библиотеке VCRUNTIME140.memcpy . Насколько это нормально?
-
1 минуту назад, Garik66 сказал:
Как я понял, из последнего выложенного скрипта видео все-таки ты не посмотрел.
Верно заметил
-
13 минут назад, Garik66 сказал:
ты их удалил в своем скрипте.
автоматически СЕ делает их внизу скриптаСпойлер{ Game : DrugDealerSimulator-Win64-Shipping.exe Version: Date : 2022-02-10 Author : ?????? This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(stam,VCRUNTIME140.dll,89 08 C3 0F 1F 00) // should be unique alloc(newmem,$1000,stam) label(code) label(return) newmem: mov [rax],ecx push dword ptr [rax+0A68] pop dword ptr [rax+0] code: ret nop dword ptr [rax] jmp return stam: jmp newmem return: registersymbol(stam) [DISABLE] //code from here till the end of the code will be used to disable the cheat stam: db 89 08 C3 0F 1F 00 unregistersymbol(stam) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: VCRUNTIME140.memcpy+CA VCRUNTIME140.memcpy+AD: C3 - ret VCRUNTIME140.memcpy+AE: 66 90 - nop 2 VCRUNTIME140.memcpy+B0: 4C 8B 02 - mov r8,[rdx] VCRUNTIME140.memcpy+B3: 0F B7 4A 08 - movzx ecx,word ptr [rdx+08] VCRUNTIME140.memcpy+B7: 44 0F B6 4A 0A - movzx r9d,byte ptr [rdx+0A] VCRUNTIME140.memcpy+BC: 4C 89 00 - mov [rax],r8 VCRUNTIME140.memcpy+BF: 66 89 48 08 - mov [rax+08],cx VCRUNTIME140.memcpy+C3: 44 88 48 0A - mov [rax+0A],r9l VCRUNTIME140.memcpy+C7: C3 - ret VCRUNTIME140.memcpy+C8: 8B 0A - mov ecx,[rdx] // ---------- INJECTING HERE ---------- VCRUNTIME140.memcpy+CA: 89 08 - mov [rax],ecx // ---------- DONE INJECTING ---------- VCRUNTIME140.memcpy+CC: C3 - ret VCRUNTIME140.memcpy+CD: 0F 1F 00 - nop dword ptr [rax] VCRUNTIME140.memcpy+D0: 8B 0A - mov ecx,[rdx] VCRUNTIME140.memcpy+D2: 44 0F B6 42 04 - movzx r8d,byte ptr [rdx+04] VCRUNTIME140.memcpy+D7: 89 08 - mov [rax],ecx VCRUNTIME140.memcpy+D9: 44 88 40 04 - mov [rax+04],r8l VCRUNTIME140.memcpy+DD: C3 - ret VCRUNTIME140.memcpy+DE: 66 90 - nop 2 VCRUNTIME140.memcpy+E0: 8B 0A - mov ecx,[rdx] VCRUNTIME140.memcpy+E2: 44 0F B7 42 04 - movzx r8d,word ptr [rdx+04] }
-
22 минуты назад, Garik66 сказал:
1. Выкладывайте скрипты, не удаляя логи, которые делает СЕ. (так более понятен игровой код.
2. и снова стандартная ошибка всех новичков - посмотри мое одноименно видео, imaginary тебе об этом написала.
Выложи скрипт с логами (используя теги спойлера и кода). посмотримГде я могу найти логи CE ?
-
1 минуту назад, imaginary сказал:
Даже если бы не было краша, дальше идёт
code: mov [rax],ecx
поэтому твои действия учитываться не будут
Хорошо, а что может провоцировать краш? И еще, как можно это "обыграть" ? Я могу удалить эту строку просто, может ?
-
Всем привет! Решил познакомиться с ассемблером путем взлома сингл игр.
Выбор пал на игру Drug Dealer Simulator (v1.1.0.25, в этой версии ввели какие-то сложности для геймхацкеров, но не знаю какие). Взлом игры, в целом, не представляет из себя что-то сложное для людей знающих, но и не что-то банально легкое.
В этой теме планирую выкладывать вопросы по мере их поступления.
- [Вопрос открыт]Первый вопрос, с которым я столкнулся: Пользовался методами push/pop следующим образом:
push dword ptr [adress] pop dwprd ptr [adress]
Делал с значениями 4byte, но когда попробовал этот метод со значениями типа float, то последовал краш, гуглил что-то, пытался что-то, следовал краш.
Вопрос следующий: Это просто совпадение, что с этими стеками крашило, или для типа float нужен другой метод? Если нужен другой, то какой и как правильно применять?
Ситуация:
СпойлерХочу сделать некончающуюся выносливость. Именно НОПнуть, а не просто заморозить. Нашел адрес и поинтеры.
значений порядка 9 штук, которые отвечают за выносливость. Есть только одно значение, после заморозки которого выносливость перестает тратиться, ставля на него бряк, обращается только в момент восстановления и траты выносливости. Вероятно, именно то, что нам нужно.
опкод выглядит следующим образом:
89 08 - mov [rax],ecx
в структуре RAX текущее значение выносливости - оффсет +0
в той же структуре максимальное значение выносливости - оффсет +0А68
пишу следующий скрипт:
[ENABLE] aobscanmodule(stamina,VCRUNTIME140.dll,89 08 C3 0F 1F 00) // should be unique alloc(newmem,$1000,stamina) label(code) label(return) newmem: push dword ptr [rax+0A68] pop dword ptr [rax+0] code: mov [rax],ecx ret nop dword ptr [rax] jmp return stamina: jmp newmem return: registersymbol(stamina) [DISABLE] stamina: db 89 08 C3 0F 1F 00 unregistersymbol(stamina) dealloc(newmem)
Краш. Тыкните пальцем ламеру, что не так)))
[Drug Dealer Simulator] Постигаю азы, прошу помощи
in Вопросы по созданию читов в одиночных играх
Опубликовано
Так, я немного в тупике. Есть подсказки что можно попробовать ?