|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Запись шестнадцатиричного значения в адрес оперативной памяти. Одна странность.
Делаю трейнер для nfs most wanted, ну так для экспиремента. Беру заранее извесный адрес в оперативной памяти куда нужно внести значение, например я хочу установить значение равное 1000, с помощью инженерного калькулятора привожу в шестнадцатиричное представление и получаю: 3E8, записываю это значение по адресу, который 'отвечает' за количество денег, а в игре получаю 232 вместо 1000. Покопался и назрел вопрос! Почему, при записи значения 3E8(1000), оно урезается до E8(232)? Раньше с этим не работал.
|
#2
|
||||
|
||||
видимо, записывается только один байт (первый, то есть, Е8), а надо записать их 2 или 4 штуки. еще надо учесть, что в памяти порядок байт инвертируется, то есть число 03E8 в памяти валяется как E803
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت |
#3
|
|||
|
|||
KOOL, благодарю за доп. инфу! Ну вобщем-то да, записывается 1 байт, но для функции 'writeProcessMemory' я указываю записывать 4 байта, вот в этом-то и вопрос.
|
#4
|
||||
|
||||
в принципе, можно последовательно записать по байту. еще неплохо было бы выложить кусок кода, где производится запись в память. там может прятаться незаметная ошибка или очепятка.
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت |
#5
|
|||
|
|||
Вот здесь я основной код взял: http://www.chemax.ru/articles/trainer_delphi.php Можно пример как по байтам записать например 7000?
|