grafdracula1
-
Постов
12 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные grafdracula1
-
-
37 минут назад, Dison сказал:
Это что, поиск предметов что-ли?
Да. Название в шапке темы.
Другие игры попроще были. Там или сразу нужное значение или указатель находился. А здесь такого нет.
-
Здравствуйте.
Игра из Microsoft Store.
Значение денег после смены восстанавливается в исходное. Указатели не находит.
Инструкции обращающиеся к найденному адресу с деньгами - https://wampi.ru/image/69lRvIn
Причем первая обращается раз в секунду, остальные 2 только при изменении. Т.е. насколько я понимаю надо писать скрипт с фильтром для того чтобы поправить то, что нужно.
Это область которая активируется при изменении значения - https://wampi.ru/image/69lR8hJ
-
Здорово. Только игра у меня так заново каждый раз и начинается. Переустановка не помогла.
А не мог бы ты (если не трудно) вкратце пояснить как нашел адрес магии, функцию сравнения значений, ну то есть логику своих действий.
-
ReWanet. С утра проверил, все работает. Только не уследил и получил крах игры (два раза подряд взял награду с аттракциона (насчет алмазов ты был прав, тоже прибавились)). Теперь при заходе в игру каждый раз заново начинает. Вечером опробую переставить. Сейчас не возможности.
Спасибо большое всем за участие. За видос отдельное спасибо.
-
Спокойной ночи. Спасибо за потраченное время.
-
Разобрался с ESI. Сравнение со значением регистра.
-
А у меня ничего не происходит. Esi сравнивается с адресом инструкции, правильно?
Спойлер{ Game : _DK_Entrypoint_.exe Version: Date : 2018-03-15 Author : Graf This script does blah blah blah } [ENABLE] aobscanmodule(INJECT,_DK_Entrypoint_.exe,89 46 08 5E 33 CC E8 39) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: cmp esi,113c120 jne code mov [esi+04],0 mov eax,40B38800 code: mov [esi+08],eax pop esi xor ecx,esp jmp return INJECT: jmp newmem nop return: registersymbol(INJECT) [DISABLE] INJECT: db 89 46 08 5E 33 CC unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "_DK_Entrypoint_.exe"+23C120 "_DK_Entrypoint_.exe"+23C0F5: F2 0F 11 4C 24 08 - movsd [esp+08],xmm1 "_DK_Entrypoint_.exe"+23C0FB: 8B F1 - mov esi,ecx "_DK_Entrypoint_.exe"+23C0FD: E8 2E FA FF FF - call _DK_Entrypoint_.exe+23BB30 "_DK_Entrypoint_.exe"+23C102: F2 0F 10 44 24 08 - movsd xmm0,[esp+08] "_DK_Entrypoint_.exe"+23C108: 8B 4C 24 14 - mov ecx,[esp+14] "_DK_Entrypoint_.exe"+23C10C: F2 0F 11 44 24 08 - movsd [esp+08],xmm0 "_DK_Entrypoint_.exe"+23C112: 8B 44 24 08 - mov eax,[esp+08] "_DK_Entrypoint_.exe"+23C116: 89 46 04 - mov [esi+04],eax "_DK_Entrypoint_.exe"+23C119: 8B 44 24 0C - mov eax,[esp+0C] "_DK_Entrypoint_.exe"+23C11D: C6 06 02 - mov byte ptr [esi],02 // ---------- INJECTING HERE ---------- "_DK_Entrypoint_.exe"+23C120: 89 46 08 - mov [esi+08],eax "_DK_Entrypoint_.exe"+23C123: 5E - pop esi "_DK_Entrypoint_.exe"+23C124: 33 CC - xor ecx,esp // ---------- DONE INJECTING ---------- "_DK_Entrypoint_.exe"+23C126: E8 39 B1 DB 00 - call _DK_Entrypoint_.exe+FF7264 "_DK_Entrypoint_.exe"+23C12B: 8B E5 - mov esp,ebp "_DK_Entrypoint_.exe"+23C12D: 5D - pop ebp "_DK_Entrypoint_.exe"+23C12E: C3 - ret "_DK_Entrypoint_.exe"+23C12F: CC - int 3 "_DK_Entrypoint_.exe"+23C130: 56 - push esi "_DK_Entrypoint_.exe"+23C131: 8B F1 - mov esi,ecx "_DK_Entrypoint_.exe"+23C133: E8 F8 F9 FF FF - call _DK_Entrypoint_.exe+23BB30 "_DK_Entrypoint_.exe"+23C138: 8A 44 24 08 - mov al,[esp+08] "_DK_Entrypoint_.exe"+23C13C: C6 06 01 - mov byte ptr [esi],01 }
-
Вылетает. Как и после моих манипуляций. Про дабл я решил потому-что CE так обозначил.
А нет у тебя возможности сделать это на своей машине? Игрушка стандартная предустановленная в вин10. Видео и ФАК сейчас посмотрю.
-
Долго не писал, времени не было.
В общем поломав голову несколько вечеров, я так и не сделал.
Спойлер[ENABLE] aobscanmodule(INJECT,_DK_Entrypoint_.exe,FF FF F2 0F 10 44 24 08) // should be unique alloc(newmem,$1000) label(code) label(return) label(magic) magic: dq (double)100000 newmem: movsd xmm0,[magic] code: movsd xmm0,[esp+08] jmp return INJECT+02: jmp newmem nop return: registersymbol(INJECT) [DISABLE] INJECT+02: db F2 0F 10 44 24 08 unregistersymbol(INJECT) dealloc(newmem) dealloc(magic)
Вот такая фигня приводит к вылету. Позже напишу что еще делал (это был самый первый вариант).
Сильно не пинайте, asm пока еще мой "враг" (а может и на совсем).
-
Проблема в том, что в асме я нуб. И как я понял по результатам поиска с double значениями не все так просто. Если не трудно, можешь описать действия как меняются значения double? Если что, извините за глупые вопросы.
-
[Twin Moons] PC, взлом денег
in Вопросы по созданию читов в одиночных играх
Опубликовано
Записывает как я понял третья инструкция (из первого скриншота). Но она обращается к куче адресов. А как фильтр сделать, я не понимаю. И в другой теме мне помогли, там через трассировку с условием нашли нужную инструкцию. То же не до конца понимаю как это делается. Сейчас видосы изучаю (пытаюсь сам сообразить).