На нашем форуме вы можете получить приватный чит для игры Euro Truck Simulator 2. Подробности по ссылке ниже:
Тема с читом на Euro Truck Simulator 2
Авторизация  
karlgalagger

Редактирование памяти | Замена байтов большего кол-ва | C++

Рекомендуемые сообщения

Мне надо изменить строку в памяти стороннего приложения на строку с большим количеством символов к примеру: test -> testone
Я уже написал сам код по замене но дело в том что в "testone" кол-во байтов больше чем в "test" и когда я выполняю замену это производит краш (Так как задевается что-то другое).  Я не знаю, но у меня есть теория что мне надо создать свой блок памяти размером "testone" записать всё туда и в оригинальный адрес 

записать указатель на новый блок памяти(Это всего теория, я не знаю как это работает). Я уверен что это можно сделать, но не знаю как, жду вашей помощи.

(C++)

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


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

но дело в том что в "testone" кол-во байтов больше чем в "test"

Когда кол-во байт. которое тебе нужно больше оригинального - то обязательно делается прыжок (при прыжке производится выравнивание, если оно нужно) на выделенную тобой память  и там уже делаешь, что тебе нужно с возвратом в ориг. код.

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


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

когда я выполняю замену это производит краш

Листингом делись, где замену хочешь произвести и на что.  Да, и желательно, что бы рядом стоящий код был. 

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


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

 

2 часа назад, Garik66 сказал:

Когда кол-во байт. которое тебе нужно больше оригинального - то обязательно делается прыжок (при прыжке производится выравнивание, если оно нужно) на выделенную тобой память  и там уже делаешь, что тебе нужно с возвратом в ориг. код.

Можно больше информации об таком прыжке? Как мне выделить память? malloc? 

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


Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, LIRW сказал:

Листингом делись, где замену хочешь произвести и на что.  Да, и желательно, что бы рядом стоящий код был. 

Я делаю программу которая изменяет текст в сторонней программе на произвольный,  всё работает если новый текст <= оригинального. Когда же он больше в памяти задевается то что трогать не надо. Я думаю в коде смысла нет..

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

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


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

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

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


Ссылка на сообщение
Поделиться на другие сайты
В данном топике никто не постил уже 4 месяца. Пости здесь только если твой вопрос точно совпадает с темой данного топика.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Предпросмотр
Авторизация