Process memory в длл

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
AyaAya
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 08.01.2005 (Сб) 18:54

Process memory в длл

Сообщение AyaAya » 08.01.2005 (Сб) 19:04

Проблемка
есть программа в которой ничего нет
(она грузит дополнительные дллки)
Вопрос:
Как прочитать и перезаписать данные
конкретнее мне надо определить адрес етой дллки и адрес куда писать(адрес куда писать в самой дллки, которая ещё не загружена в память я знаю)

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

Сообщение ANDLL » 08.01.2005 (Сб) 19:10

Ничего не понятно. Какие данные надо записывать? Какой тип Dll? Попробуй написать функцию типа
Код: Выделить всё
char* data;

long WINAPI GetDataAddress()
{
   return & data;
}
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

AyaAya
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 08.01.2005 (Сб) 18:54

Сообщение AyaAya » 08.01.2005 (Сб) 20:02

Как написать? Пишу на VisualBasic 6.0

dll какой - неважно, программа просто подгружает дллки винды
записывать надо байты(не строки!!!)

WriteProcessMemory pHandle.hProcess, &H239737, "", 1, 0& - возвращает 0, как можно посмотреть где ошибка?
"" - 1 байт(видимый символ, но которого нет на клавиатуре)

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

Сообщение ANDLL » 08.01.2005 (Сб) 20:15

Попробуй CopyMemory... И продемонстрируй более-менее полный код, где это нужно использовать.
Я в недоумении.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

AyaAya
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 08.01.2005 (Сб) 18:54

Сообщение AyaAya » 08.01.2005 (Сб) 20:18

вот нашел
http://www.cppfrance.com/code.aspx?ID=11054
эт на c++ мож кто нибудь на Visual Basic перевести

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.01.2005 (Сб) 20:22

Всё давно переведено :-)
http://www.freevbcode.com/ShowCode.Asp?ID=4115

Но имхо тебе действительно надо совсем не то, что ты думаешь.

А ещё, когда WriteProcessMemory обламывается, Err.LastDLLError содержит код ошибки, его полезно посмотреть :-)
Изображение

AyaAya
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 08.01.2005 (Сб) 18:54

Сообщение AyaAya » 08.01.2005 (Сб) 20:38

Thanks
я понял
Attempt to access invalid address.
значит адрес не тот
а в этом коде - не то:
1. мне надо бинарные данные
2. мне надо конкретный адрес, а не поиск
подскажи я правильно его написал(формат &H или 0x ?)
Тогда ещё вопрс
у дллок hWnd как опеределить если такой есть?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.01.2005 (Сб) 20:48

Слушай, опиши как можно более подробно свою задачу, а то я теряюсь в догадках, что же именно тебе надо.
hWnd у длл-ок нету.
Изображение

AyaAya
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 08.01.2005 (Сб) 18:54

Сообщение AyaAya » 08.01.2005 (Сб) 20:57

Просто Изображение
видишь выделенный процесс - эт пример
видишь дллки которые он подгружает
вот в выделенной дллки мне надо изменить байт по адресу 0х239738
Все примеры что есть на форуме и других сайтах - ищут и исправляют ток в самом ехе, а мне над длл исправить(по примеру поиска он не находит етот адресс, т.к. он ищет ток в самой проге а не в её модулях[/img]


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

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

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

    TopList