• Объявления

    • Garik66

      Пользователям форума   05.11.2017

      Прошу обратить внимание на эту тему (чтобы увидеть ссылку, войдите в объявление - нажмите на заголовок):   
keng

Ручной поиск указателей и немного халявы

13 сообщений в этой теме

Статья-напоминалка для тех, кто не умеет искать указатели вручную, плюс небольшая хитрость, которая позволяет иногда сильно упростить и ускорить процесс. Пароль на архив - адрес нашего сайта без "http://". Формат - PDF.

gamehacklab.keng.pointers.finding.pdf.zip

2

Поделиться сообщением


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

За дополнительный урок, я думаю тебе бы репы прилетело.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, keng сказал:

Пароль на архив - адрес нашего сайта без "http://".

keng, "Перестаньте говорить загадками - Вы меня изводите...":D Напиши какой пароль.

 Перебрал несколько вариантов, но у меня не один не открыл архив.

Варианты, которые я перебрал:

Правда я копировал ссылку.

Может это и мешает?

Т.е. нужно вручную набирать.

 

0

Поделиться сообщением


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

Garik, "www" в начале забыл. :)

Spoiler

www.gamehacklab.ru

 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, keng сказал:

Garik, "www" в начале забыл. :)

Вот блин.:wacko::wacko::wacko:

0

Поделиться сообщением


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

Со второго раза всё-таки открыл ;).

keng, как всегда всё СУПЕР!!! - родовой талант учителя не пропьёшь.

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Just now, Garik66 said:

Со второго раза всё-таки открыл ;).

keng, как всегда всё СУПЕР!!! - родовой талант учителя не пропьёшь.

Спасибо за отзыв, но мне самому пока не нравится. Возможно, еще подредактирую.

0

Поделиться сообщением


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

Очень полезный урок! Спасибо! Уважаемый 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

Поделиться сообщением


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

@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

 

Вот картинка, для наглядности:

ce_mem_protect.png.99fde8aa75f4ec366a35e

 

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

 

PS: Исходный код и все, что длинное, принятно оборачивать в тег "спойлер", так что я твой пост чуток отредактировал.

0

Поделиться сообщением


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

Спасибо, за пояснения! Очень толково ответили на мои вопросы. Обязательно попробую.

Изменено пользователем NickSpirit
1

Поделиться сообщением


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

А может быть такое что все свободные адреса в памяти имеют статус либо Read Only либо Executable\Read only???

 

Сорри уже нашел доступные для записи. 

Изменено пользователем NickSpirit
0

Поделиться сообщением


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

Вообщем все равно крашится процесс. Скорее всего присутствует какая нибудь защита от изменения кода. ну или типа того. 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В ‎18‎.‎09‎.‎2016 в 17:35, keng сказал:

Формат - PDF.

finding.pdf.zip

@keng, можно перезалить если не сложно?

0

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас