Форум: "Потрепаться";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
ВнизИзменить память по адресу Найти похожие ветки
← →
Витёк (2005-06-29 04:48) [0]Помогите пожалуйста! Как изменить значение памяти по адресу! Например по адресу 0390242C значение равное 500, а я хочу изменить его на 1000! Как это сделать? Помогите пожалуйста! Заранее благодарен!
← →
Kerk © (2005-06-29 06:50) [1]
var
p: PDWORD;
begin
p := Pointer($0390242C);
p^ := 1000;
end;
← →
-=XP=- © (2005-06-29 07:12) [2]1. pword($0390242C)^ := 1000;
2. word(pointer($0390242C)^) := 1000;
Только следует помнить, что память эта - виртуальная. Поэтому влезть в системные области памяти хоть и можно, но это навредит только Вашей программе.
← →
имя (2005-06-29 08:36) [3]Удалено модератором
← →
Kerk © (2005-06-29 08:39) [4]"Так то в сети. В сети проще у вас спросить. А вот на компе..." (с)
У тебя такая же жизненная философия?
← →
имя (2005-06-29 08:53) [5]Удалено модератором
← →
Kerk © (2005-06-29 08:59) [6]Бухало_в_одиночку))) (29.06.05 8:53) [5]
а) поддерживаю тему разговора
Малаца! :)
> б) пытаюсь заранее найти ответы на вопросы, которые
> могут возникнуть у других
Идем в конфу WinAPI, делаем поиск по "получить список процессов".
> в) добавляю несколько своих слов на форум, что
> добавляет вероятность попадания на этот форум с
> поисковых машин :)
Это хорошо. И текст хороший. Давай я помогу: porno, xxx, teen, nude, celebs, Kournikova, Pamela Anderson
← →
vidiv © (2005-06-29 09:03) [7]Хы.. а в видео память можно напрямую записать чегонить??
← →
имя (2005-06-29 09:05) [8]Удалено модератором
← →
имя (2005-06-29 09:15) [9]Удалено модератором
← →
-=XP=- © (2005-06-29 09:29) [10]Давай я помогу: porno, xxx, teen, nude, celebs, Kournikova, Pamela Anderson
Первые семь строк из IE History?
← →
Kerk © (2005-06-29 09:30) [11]-=XP=- © (29.06.05 9:29) [10]
Первые семь строк из IE History?
У меня FireFox! :))
← →
Kerk © (2005-06-29 09:32) [12]-=XP=- © (29.06.05 9:29) [10]
Давай я помогу: porno, xxx, teen, nude, celebs, Kournikova, Pamela Anderson
Первые семь строк из IE History?
А ты молодец. Хорошая идея. :)
Чем больше раз процитируем, тем выше страница в результатах поиска. :))
← →
имя (2005-06-29 09:51) [13]Удалено модератором
← →
имя (2005-06-29 09:54) [14]Удалено модератором
← →
Kerk © (2005-06-29 09:55) [15]Удалено модератором
Примечание: Offtopic
← →
имя (2005-06-29 09:56) [16]Удалено модератором
← →
Kerk © (2005-06-29 09:57) [17]> Так лучше?
Сейчас узнаем.
А что в [13] было?
← →
имя (2005-06-29 09:59) [18]Удалено модератором
← →
TUser © (2005-06-29 10:01) [19]Я отношусь к отсталой интеллепупции, - что такое "celebs" даже не знаю.
← →
имя (2005-06-29 10:01) [20]Удалено модератором
← →
имя (2005-06-29 10:03) [21]Удалено модератором
← →
Kerk © (2005-06-29 10:04) [22]имя, ###, кончай флуд. достал. видишь, что режут, зачем продолжаешь?
> > что такое "celebs" даже не знаю
Знаменитости всякие
← →
uny © (2005-06-29 10:11) [23]Kerk баловался красненьким...)
← →
Чай толпой (2005-06-29 10:26) [24](C)тырено
Delphi version:
1) copy&paste:
function GetWindowProcessIDHandle(AppName: PAnsiChar): DWORD;
begin
if LongBool(GetWindowThreadProcessId(FindWindow(nil,AppName),Result)) then
// С помощью FindWindow мы получаем хендл нужного окна и с помощью
// GetWindowThreadProcessId пытаемси получить в Result PID (Process ID) окошка,
// результатом работы функции будет TID (Thread ID), поскольку результат 4х байтный,
// то с помощью LongBool проверяем на 0. 0 = False, >0 = True..
Result := OpenProcess(PROCESS_ALL_ACCESS,False,Result);
// А с помощью OpenProcess получаем хендл процесса, всё гениально и просто...
end;
2) юзаем фукнц. под названием WriteProcessMemory/ReadProcessMemory...думаю сами разберётесь что к чему...
*function WriteProcessMemory( hProcess: THandle;
// тот самый хэндл, который мы получили
const lpBaseAddress: Pointer;
// указатель на переменную с адресом
lpBuffer: Pointer;
// указатель на переменную с записываемым значением
nSize: DWORD;
// ВАЖНО ТОЧНО!!! знать размер заменяемого значения
// если вы попытаетесь записать 4х байта в 2х..
// то сами знаете, ничего хорошего не выйдет..
var lpNumberOfBytesWritten: DWORD): BOOL; stdcall;
// а здесь мы получаем кол-во реально записанных байт
*function ReadProcessMemory( hProcess: THandle;
// думаю и сами догадались :)
const lpBaseAddress: Pointer;
// я не ошибся ?
lpBuffer: Pointer;
// а енто, указатель на переменную, куда буим записывать
// прочитанное значение..
nSize: DWORD;
// Хехе, думаю догадались да?
var lpNumberOfBytesRead: DWORD): BOOL; stdcall;
// а здесь мы получаем кол-во реально прочитанных байт
* если функция выполнилась успешно, результат True, иначе False...
3) после работы с хендлом PID"a, надо его закрыть CloseHandle(hObject: DWORD); P.S: Да и с любым хендлом надо так же поступать, закрывать.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.052 c