Смещение данных в вертуальной памяти ?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Смещение данных в вертуальной памяти ?

Сообщение Max! » 10.03.2005 (Чт) 14:02

От адрс. 19E09DC до 19E09E0 прописанно слово Hello тоесть

19E09DC - "H"
19E09DD - "e"
19E09DE - "l"
19E09DF - "l"
19E09E0 - "0"

И задача в том чтобы поставить на ето место слово дапустим Bye!! . Ведь если мы вставим слово бие!! вместо аслова хелло , а хелло сместим дальше по адресам то и всё дальше будет смещатся ! Вопрос как сделать это смещение ?

:wink:
Max!

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 10.03.2005 (Чт) 14:34

Однако :? Могу посоветовать CopyMemory.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 10.03.2005 (Чт) 14:51

И что он даст ? Не понял если чесно !

:wink:
Max!

Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Сообщение Arcanoid » 10.03.2005 (Чт) 16:17

В каком смысле "всё" будет дальше смещаться? :?:
Можешь объяснить подробнее что нужно.. :!:

CopyMemory() просто заменит байты памяти по указанному адресу на другие, но ничего смещать не будет... вроде так..

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 10.03.2005 (Чт) 16:41

В моём понятий если по адресу прописано слово и это слово передвинуть в перёд на пару (в писать на пустое место своё слово ) адресов то оно сдвинет следущие а следущие здвинет еще другое и тд...
Например

До смещения выгледит так
19E09DC - H
19E09DD - e
19E09DE - l
19E09DF - l
19E09E0 - o
19E09E1 - W
19E09E2 - o
19E09E3 - r
19E09E4 - l
19E09E5 - d
19E09E7 - !
19E09E8 - !
19E09E9 - !
19E09EA - :
19E09EB - )
19E09EC -
После вот так

19E09DC - B
19E09DD - y
19E09DE - e
19E09DF - !
19E09E0 - !
19E09E1 - H
19E09E2 - e
19E09E3 - l
19E09E4 - l
19E09E5 - o
19E09E7 - W
19E09E8 - o
19E09E9 - r
19E09EA - l
19E09EB - d
19E09EC - : >>> и тд...

то образуется цепочка одно двигает другое . Может я ошибаюсь так нельзя сделать !

Вобще у меня такая задача > есть прога в ней есть КОнсоль и мне туда надо дабавить пару сваих функций Пусть они нечего не делают просто чтоб она их вопринемала как свои ! Ямагу заминить сразу уже существующую команду на свою через WriteProcessMemory но если пользователь её введёт произойдёт тоже самое что и если бы я ничего не менял ! Если сместить и оставить орегинальные команды просто добавив свои то тогда если пользователь введёт мою команду нечего не будет , если введёт оригенальную комманду то произойдёт то что должно было произойти ! Прикол в том что нужно дабавить в определённом месте аддрессного простпанства чтобы прога их добавила в список комманд вот потому МенЯ И ИНтрересует Этот Вопрос !!!



:wink:
Max!

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 10.03.2005 (Чт) 17:35

ANDLL писал(а):Однако :? Могу посоветовать CopyMemory.


Процедура Mid$ - сработает аналогично ;)
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 10.03.2005 (Чт) 19:55

Может есть другие варианты ?

:wink:
Max!

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 10.03.2005 (Чт) 23:52

Моё мнение:
1. Байты можно только переписать.
2. Сдвигать категорически не рекомендуется, так как моментально нарушится структура файла в памяти.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 11.03.2005 (Пт) 0:19

Сколько разумных решений , хоть просвет в конце тёмного тунеля ! Может кто сорсик какои кинет или сылачку даст по этой теме ?

Ну всёже я непонимаю ! Была команда я её подправил на своё слово , ввожу его уже в проге и срабатывает действие как приорегенале ! Ну так вроде и должно быть , ну мне не надо чтоб выполнялись те деиствия лучше чтоб нечего не выполнялось в таком случае ! Вот я и решил смещать !

Может есть более нормальноерешения как можно добавить команду в чужую консоль и чтоб после того как пользователь ввёл её и нажал ентер она вывела бы в консоль дапустим "MyCommand is "3"" ?

Может ктото сталкивался с этим ?

:wink:
Max!

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 11.03.2005 (Пт) 11:13

Я полностью согласен с FAKK2
Если будешь сдвигать байты консоли в памяти, которую консоль занимает, то консоль скорее всего у тебя загнется.
Вот посмотри может это пригодится:
http://www.vbnet.ru/samples/download.aspx?id=544

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 11.03.2005 (Пт) 12:54

Да интересный вариант ! Но в конечном итоге происходит точто и происходило ! Но интересно !

Может есть более нормальноерешения как можно добавить команду в чужую консоль и чтоб после того как пользователь ввёл её и нажал ентер она вывела бы в консоль дапустим "MyCommand is "3"" ?


А если добавить команду сваю в консоль , я как панимаю это путём Injection делается ? Вроде гдето видел что-то с добавлением своих комманд в чужую консоль но не магу найти !



:wink:
Max!

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 11.03.2005 (Пт) 18:22

Есть варианты ?

:wink:
Max!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 154

    TopList