keng Опубликовано 18 сентября, 2016 Поделиться Опубликовано 18 сентября, 2016 Статья-напоминалка для тех, кто не умеет искать указатели вручную, плюс небольшая хитрость, которая позволяет иногда сильно упростить и ускорить процесс. Пароль на архив - адрес нашего сайта без "http://". Формат - PDF. gamehacklab.keng.pointers.finding.pdf.zip 3 Ссылка на комментарий Поделиться на другие сайты Поделиться
saiberpro Опубликовано 18 сентября, 2016 Поделиться Опубликовано 18 сентября, 2016 За дополнительный урок, я думаю тебе бы репы прилетело. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 18 сентября, 2016 Поделиться Опубликовано 18 сентября, 2016 1 час назад, keng сказал: Пароль на архив - адрес нашего сайта без "http://". keng, "Перестаньте говорить загадками - Вы меня изводите..." Напиши какой пароль. Перебрал несколько вариантов, но у меня не один не открыл архив. Варианты, которые я перебрал: Скрытый текст forum.gamehacklab.ru/ forum.gamehacklab.ru forum.gamehacklab gamehacklab.ru gamehacklab gamehacklab.ru/ Правда я копировал ссылку. Может это и мешает? Т.е. нужно вручную набирать. Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 18 сентября, 2016 Автор Поделиться Опубликовано 18 сентября, 2016 Garik, "www" в начале забыл. Spoiler www.gamehacklab.ru Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 18 сентября, 2016 Поделиться Опубликовано 18 сентября, 2016 Только что, keng сказал: Garik, "www" в начале забыл. Вот блин. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 18 сентября, 2016 Поделиться Опубликовано 18 сентября, 2016 Со второго раза всё-таки открыл . keng, как всегда всё СУПЕР!!! - родовой талант учителя не пропьёшь. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 18 сентября, 2016 Автор Поделиться Опубликовано 18 сентября, 2016 Just now, Garik66 said: Со второго раза всё-таки открыл . keng, как всегда всё СУПЕР!!! - родовой талант учителя не пропьёшь. Спасибо за отзыв, но мне самому пока не нравится. Возможно, еще подредактирую. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 20 сентября, 2016 Поделиться Опубликовано 20 сентября, 2016 Очень полезный урок! Спасибо! Уважаемый Keng ответьте пожалуйста на вопрос - у меня инструкция mov[ebp-10],edx ну и игра 32Bit - ваш код подойдет к такой инструкции??? если просто заменить инструкцию оригинальную? поясню откуда взялся такой вопрос - попытался написать код сам - когда дошел до инструкции Push RBX - не особо понял что писать в ней в моем случае. Вообщем написал такой код - при запуске получил краш процесса. Spoiler [ENABLE] alloc(newmem,2048,"FClient.exe"+F04BF) label(returnhere) newmem: mov [ebp-10],edx push ebx mov ebx,00402407 mov [ebx],ebp sub [ebx],10 pop ebx jmp returnhere "FClient.exe"+F04BF: JMP newmem returnhere: [DISABLE] "FClient.exe"+F04BF: mov [ebp-10],edx dealloc(newmem) 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 20 сентября, 2016 Автор Поделиться Опубликовано 20 сентября, 2016 @NickSpirit, привет! Я в статье описал общий принцип, если ты не полностью понял пример - то задавай вопросы, постараюсь ответить. У меня игра была 64-битная, а регистр RBX я использовал, потому что мне так захотелось. RBX - один из так называемых регистров общего назначения, и без разницы, какой из них использовать. Команды push и pop нужны, чтобы мы могли сохранить и затем восстановить изначальное значение регистра. На твой код я смотрю и пока что мне кажется, что все написано правильно. Предлагаю сделать следующее: 0. Открой CE, затем - окно отладчика ("Memory Viewer") 1. В нижней его части (которая еще называется дампом памяти) ПКМ -> "Goto address" ("Перейти на адрес") 2. Вбивай адрес code cave, куда должен сохраниться указатель. В случае твоего скрипта - 0x00402407 3. А дальше смотри в верхний левый угол дампа памяти. Там будет надпись Protect: *что-нибудь*. Тебе нужно, чтобы в этом поле стояло "Protect: Read\Write" 4. Если там стоит какая-то другая защита - то попробуй другой адрес для code cave Вот картинка, для наглядности: Поясню, что за ахинею написал. Память процесса поделена на страницы, каждой странице при ее выделении выдается та или иная защита - какие-то данные можно только читать, какие-то - читать и писать, а в каких-то может вообще лежать исполняемый код, который можно еще и выполнять. Сделано это для удобства, конечно же. Так вот, если в страницу памяти, выделенную с правами только на чтение, попытаться что-то записать - получится исключение и операционная система программу закроет, то есть игра вылетит. Такая вот штука. PS: Исходный код и все, что длинное, принятно оборачивать в тег "спойлер", так что я твой пост чуток отредактировал. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 20 сентября, 2016 Поделиться Опубликовано 20 сентября, 2016 (изменено) Спасибо, за пояснения! Очень толково ответили на мои вопросы. Обязательно попробую. Изменено 20 сентября, 2016 пользователем NickSpirit 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 20 сентября, 2016 Поделиться Опубликовано 20 сентября, 2016 (изменено) А может быть такое что все свободные адреса в памяти имеют статус либо Read Only либо Executable\Read only??? Сорри уже нашел доступные для записи. Изменено 20 сентября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 20 сентября, 2016 Поделиться Опубликовано 20 сентября, 2016 Вообщем все равно крашится процесс. Скорее всего присутствует какая нибудь защита от изменения кода. ну или типа того. Ссылка на комментарий Поделиться на другие сайты Поделиться
DieVis Опубликовано 25 августа, 2017 Поделиться Опубликовано 25 августа, 2017 В 18.09.2016 в 17:35, keng сказал: Формат - PDF. finding.pdf.zip @keng, можно перезалить если не сложно? Ссылка на комментарий Поделиться на другие сайты Поделиться
Redear Опубликовано 11 февраля, 2019 Поделиться Опубликовано 11 февраля, 2019 (изменено) есть ли возможность в автоматическом режиме найти пустые адреса памяти, в которые можно записывать? Изменено 11 февраля, 2019 пользователем Redear Ссылка на комментарий Поделиться на другие сайты Поделиться
imaginary Опубликовано 11 февраля, 2019 Поделиться Опубликовано 11 февраля, 2019 24 минуты назад, Redear сказал: пустые адреса памяти, в которые можно записывать Создай скрипт типа такого: Спойлер [ENABLE] alloc(newmem,200) //выделяем память под наш код (newmem) registersymbol(newmem) //Регистрируем наш код [DISABLE] dealloc(newmem) //отменяем вылеоение памяти unregistersymbol(newmem) //Снимаем регистрацию Всё, теперь ты можешь писать в newmem всё что хочешь, в пределах выделенного места. То есть например: Спойлер //Пишем в наше место что нибудь mov [newmem],1 mov [newmem+4],5 mov byte ptr [newmem+8],1 mov byte ptr [newmem+9],1 А на счёт твоего кода, как бы там ни было, мне кажется ты записываешь в адрес переход по которому ничего не даст, то есть ведёт в никуда, попробуй сделать отладку. Мне не совсем понятно что ты пытаешься сделать, но если хочешь записать в тот адрес что то своё, то просто сделай: mov [ebp-10],edx //В место edx что то своё 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Redear Опубликовано 11 февраля, 2019 Поделиться Опубликовано 11 февраля, 2019 спасибо, пост с кодом делал не я. но у меня аналогичная проблема. я конечно нубас в геймхакинге. и у меня задача найти указатели. мне просто нужны указатели для вывода их в тренер. (типо показатели силы,магии, брони итп.) никаких скриптов которые бы изменяли игру не планирую. чисто информационное окно. столкнулся с проблемой поиска указателей. перекопал форум, пересмотрел видео. пробовал трассировку итп не могу найти указатели. Единственный вариант который как я думал может сработать это описанный в этой ветке. Типа ищем код - копируем значение в выделенную ячейку памяти. но увы, ячейки пустые находятся только на чтение/исполнение. Брейкпоинты тоже не работают. Хотя может я нубас. Ссылка на комментарий Поделиться на другие сайты Поделиться
Redear Опубликовано 11 февраля, 2019 Поделиться Опубликовано 11 февраля, 2019 есть еще маленькая проблема, версии игры выходят практически еженедельно и искать указатели практически бессмысленно ибо они становятся недействительны. Поэтому считаю копирование информации с кода игры хорошее решение. или я ошибаюсь? Ссылка на комментарий Поделиться на другие сайты Поделиться
imaginary Опубликовано 11 февраля, 2019 Поделиться Опубликовано 11 февраля, 2019 47 минут назад, Redear сказал: они становятся недействительны Для этого и существуют скрипты, берёшь какую нибудь инструкцию которая работает с твоим игроком, например с его здоровьем, типа такой Пример: mov [eax+123],ecx На неё делаешь скрипт, в скрипте создаёшь метку, вроде такого: Спойлер [ENABLE] //В этом разделе метку label(MyPlayer) //Метку делаем registersymbol(MyPlayer) //Регистрируем её //Всякий код --- //Твой код mov [MyPlayer],eax //Предположим что ты сделал на mov [eax+123]. //Записываем в метку наш адрес игрока. //Тут после кода и возвратного прыжка пишем: MyPlayer: dd 0 //Выделяем памяти под метку, что бы хватило на адрес игрока, обычно 4 байта, если 64 бит то может быть 8. [DISABLE] //Прямо сразу после unregistersymbol(MyPlayer) //Снимаем регистрацию с метки. Теперь, добавляешь в таблицу MyPlayer (в строку адреса вписываешь). В итоге получаешь при активации адрес своего игрока, и наплевать на обновления. (инъекцию AOB делать надо). Но учти, что инструкция должна работать только с твоим игроком. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Redear Опубликовано 11 февраля, 2019 Поделиться Опубликовано 11 февраля, 2019 буду пробовать, большое спасибо. будут вопросы, а они будут... отпишусь. здоровья тебе. Ссылка на комментарий Поделиться на другие сайты Поделиться
Redear Опубликовано 11 февраля, 2019 Поделиться Опубликовано 11 февраля, 2019 1 час назад, inaginary сказал: . (инъекцию AOB делать надо). Это что? подскажите Ссылка на комментарий Поделиться на другие сайты Поделиться
Redear Опубликовано 11 февраля, 2019 Поделиться Опубликовано 11 февраля, 2019 (изменено) Спойлер [ENABLE] alloc(newmem,2048,"TH2.exe"+124FD8) label(returnhere) label(resM) registersymbol(resM) newmem: mov [edx],cx push ebx mov ebx,[resM] mov [ebx],edx pop ebx jmp returnhere "TH2.exe"+124FD8: JMP newmem returnhere: resM: dd 0 [DISABLE] "TH2.exe"+124FD8: mov [edx],cx dealloc(newmem) unregistersymbol(resM) Что то не работает, игра вылетает). Извините, подскажите) Изменено 11 февраля, 2019 пользователем Redear Ссылка на комментарий Поделиться на другие сайты Поделиться
imaginary Опубликовано 11 февраля, 2019 Поделиться Опубликовано 11 февраля, 2019 29 минут назад, Redear сказал: Что то не работает, Всё не работает, например ты пустой адрес записываешь в ebx, после в [00000000](ebx) записываешь edx, и соответственно вылет. AOB - когда выбираешь как сделать инъекцию кода, есть выбор AOB. Это инъекция с поиском байт - CE ищет байты и после туда внедряет код. Лучше всего тебе пойти посмотреть самые начальные уроки. Какое название у игры? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 февраля, 2019 Поделиться Опубликовано 11 февраля, 2019 41 минуту назад, Redear сказал: Что то не работает, игра вылетает). И откуда ты такое взял? Попробуй так: Спойлер [ENABLE] alloc(newmem,2048,"TH2.exe"+124FD8) label(returnhere) label(resM) registersymbol(resM) newmem: mov [resM],edx mov [edx],cx jmp returnhere "TH2.exe"+124FD8: JMP newmem returnhere: resM: dd 0 [DISABLE] "TH2.exe"+124FD8: mov [edx],cx dealloc(newmem) unregistersymbol(resM) Ссылка на комментарий Поделиться на другие сайты Поделиться
Redear Опубликовано 11 февраля, 2019 Поделиться Опубликовано 11 февраля, 2019 (изменено) 14 минут назад, Garik66 сказал: И откуда ты такое взял? Эту наркоманию я сделал на основе гайда в этом посте) 25 минут назад, inaginary сказал: Какое название у игры? Спойлер диябло: мод the hell 2 14 минут назад, Garik66 сказал: Попробуй так: Гарик, большое спасибо. все равно не работает, вылетает. Вы уже кстати копали эту игру, токо первую часть мода "the hell 1". сейчас в ТХ2 новый движок, сигнатуры полностью поменялись( Изменено 11 февраля, 2019 пользователем Redear Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 февраля, 2019 Поделиться Опубликовано 11 февраля, 2019 9 минут назад, Redear сказал: мод the hell 2 Какая сейчас версия и какую опцию делаешь? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения