Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Вопрос по Делфи.

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 22.03.2012, 23:36   #1
 Разведчик
Аватар для Lermontov
 
Lermontov никому не известный тип
Регистрация: 25.04.2011
Сообщений: 19
Популярность: 14
Сказал(а) спасибо: 10
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Вопрос по Делфи.

ReadProcessMemory(hProcess: THandle; const lpBaseAddress: Pointer; lpBuffer: Pointer; nSize: DWORD; var lpNumberOfBytesRead: DWORD): BOOL; stdcall;


Прошу объяснить эту функцию, подробно. Знаю для чего, но подробно понять не могу. Либо дайте ссылку на описание, либо посоветуйте учебник по WinApi. Все переискал нигде найти не могу.

Последний раз редактировалось Lermontov; 22.03.2012 в 23:41.
  Ответить с цитированием
Старый 22.03.2012, 23:50   #2
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: Вопрос по Делфи.

Цитата:
Сообщение от LermontovПосмотреть сообщение
ReadProcessMemory(hProcess: THandle; const lpBaseAddress: Pointer; lpBuffer: Pointer; nSize: DWORD; var lpNumberOfBytesRead: DWORD): BOOL; stdcall;

hProcess: THandle - это хендл процесса, предварительно открытый с помощью функции OpenProcess.
lpBaseAddress: Pointer - это адрес памяти, из которого нужно читать данные, а точнее указатель, который равен этому адресу. Но чтобы не морочить голову, держите в уме, что это просто адрес, который надо привести к типу указателя (делается это вот так: ptr(Address) - именно так выглядит типичный второй параметр данной функции).
lpBuffer: Pointer - это указатель на место, в которое нужно положить результат (это адрес переменной, массива и т.д.). Пишут так: @result - так выглядит третий параметр.
nSize: DWORD - это размер, кол-во байтов, нужных для считывания из указателя lpBaseAddress и помещения в lpBuffer. Передают 1, 2 или 4 байта, если типы byte, word и dword соответственно.
lpNumberOfBytesRead: DWORD - переменная, в которую запишется количество считанных байтов. Эта переменная может служить для проверки (если кол-во байтов в ней не равно nSize, то функция завершилась неудачно).

Вот примерчик:
Код:
var
 Result, br: DWORD;
 hProc: THandle;
..
begin
..
ReadProcessMemory(hProc, ptr($B27A04), @Result, 4, br);
..
end;
в Result будет содержаться значение, хранящееся в процессе hProc по адресу $B27A04, при этом br будет содержать кол-во считанных байтов (и должно быть равно 4 в случае удачного считывания).
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3

Последний раз редактировалось BritishColonist; 23.03.2012 в 09:31.
  Ответить с цитированием
Пользователь сказал cпасибо:
Lermontov (22.03.2012)
Старый 23.03.2012, 22:31   #3
 Разведчик
Аватар для Lermontov
 
Lermontov никому не известный тип
Регистрация: 25.04.2011
Сообщений: 19
Популярность: 14
Сказал(а) спасибо: 10
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: Вопрос по Делфи.

Требуется помощь!

http://zhyk.ru/forum/showthread.php?t=331413
Хочу сделать, что бы, допустим, значение ХП показывалось в Edit, но Delphi жалуется, что несовместимые типы переменных. Я так понял, что Edit не может показать переменные типа integer (или любые числовые переменные).
  Ответить с цитированием
Старый 23.03.2012, 23:54   #4
 Пехотинец
Аватар для Shadrincev
 
Shadrincev на правильном пути
Регистрация: 12.07.2010
Сообщений: 88
Популярность: 56
Сказал(а) спасибо: 19
Поблагодарили 24 раз(а) в 17 сообщениях
Отправить сообщение для Shadrincev с помощью ICQ
 
По умолчанию Re: Вопрос по Делфи.

Цитата:
IntToStr

Попробуй.
________________
Лучшая благодарность нажать СПАСИБО.
Спасибо недоступно - нажмите на плюсик возле аватара
  Ответить с цитированием
Старый 24.03.2012, 00:08   #5
 Разведчик
Аватар для Lermontov
 
Lermontov никому не известный тип
Регистрация: 25.04.2011
Сообщений: 19
Популярность: 14
Сказал(а) спасибо: 10
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: Вопрос по Делфи.

Цитата:
Сообщение от ShadrincevПосмотреть сообщение
Попробуй.

Пробовал.
  Ответить с цитированием
Старый 24.03.2012, 00:51   #6
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: Вопрос по Делфи.

Lermontov, Edit1.Text := 'Health = '+IntToStr(dwHealth);
Либо так: Edit1.Text := Format('Health = %d',[dwHealth]);
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
  Ответить с цитированием
Пользователь сказал cпасибо:
Lermontov (24.03.2012)
Старый 24.03.2012, 14:41   #7
Читер-спонсор
 Старший сержант
Аватар для reca
 
reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(
Регистрация: 05.12.2009
Сообщений: 232
Популярность: 14358
Сказал(а) спасибо: 135
Поблагодарили 92 раз(а) в 54 сообщениях
 
По умолчанию Re: Вопрос по Делфи.

Цитата:
Сообщение от LermontovПосмотреть сообщение
Требуется помощь!

http://zhyk.ru/forum/showthread.php?t=331413
Хочу сделать, что бы, допустим, значение ХП показывалось в Edit, но Delphi жалуется, что несовместимые типы переменных. Я так понял, что Edit не может показать переменные типа integer (или любые числовые переменные).

не рано память читать?
________________
Клац Клац^^
  Ответить с цитированием
Пользователь сказал cпасибо:
=PaLeTiZaToR= (26.03.2012)
Старый 24.03.2012, 15:48   #8
 Разведчик
Аватар для Lermontov
 
Lermontov никому не известный тип
Регистрация: 25.04.2011
Сообщений: 19
Популярность: 14
Сказал(а) спасибо: 10
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: Вопрос по Делфи.

Цитата:
Сообщение от recaПосмотреть сообщение
не рано память читать?

Мммм, в каком смысле?
  Ответить с цитированием
Старый 24.03.2012, 16:04   #9
Читер-спонсор
 Старший сержант
Аватар для reca
 
reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(reca сломал счётчик популярности :(
Регистрация: 05.12.2009
Сообщений: 232
Популярность: 14358
Сказал(а) спасибо: 135
Поблагодарили 92 раз(а) в 54 сообщениях
 
По умолчанию Re: Вопрос по Делфи.

Перевести в другой формат если не получается
________________
Клац Клац^^
  Ответить с цитированием
Старый 26.03.2012, 10:43   #10
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: Вопрос по Делфи.

reca, вопрос задан в ветке, предназначенной для этого. В чём проблема?
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
  Ответить с цитированием
Старый 26.03.2012, 14:32   #11
Заблокирован
 Пехотинец
Аватар для =PaLeTiZaToR=
 
=PaLeTiZaToR= троюродный дядя Чака Норриса=PaLeTiZaToR= троюродный дядя Чака Норриса=PaLeTiZaToR= троюродный дядя Чака Норриса=PaLeTiZaToR= троюродный дядя Чака Норриса=PaLeTiZaToR= троюродный дядя Чака Норриса=PaLeTiZaToR= троюродный дядя Чака Норриса=PaLeTiZaToR= троюродный дядя Чака Норриса=PaLeTiZaToR= троюродный дядя Чака Норриса=PaLeTiZaToR= троюродный дядя Чака Норриса=PaLeTiZaToR= троюродный дядя Чака Норриса=PaLeTiZaToR= троюродный дядя Чака Норриса
Регистрация: 02.04.2011
Сообщений: 66
Популярность: 9953
Сказал(а) спасибо: 898
Поблагодарили 412 раз(а) в 209 сообщениях
Отправить сообщение для =PaLeTiZaToR= с помощью Skype™
 
По умолчанию Re: Вопрос по Делфи.

Цитата:
Сообщение от BritishColonistПосмотреть сообщение
reca, вопрос задан в ветке, предназначенной для этого. В чём проблема?

Да , согласен , что эта ветка для ВОПРОСОВ , но память действительно помоему рановато читать , есле не получается перевести формат темболее из числа в строку
  Ответить с цитированием
Старый 27.03.2012, 23:14   #12
 Разведчик
Аватар для Lermontov
 
Lermontov никому не известный тип
Регистрация: 25.04.2011
Сообщений: 19
Популярность: 14
Сказал(а) спасибо: 10
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: Вопрос по Делфи.

Цитата:
Сообщение от =^PaLeTiZaToR^=Посмотреть сообщение
Да , согласен , что эта ветка для ВОПРОСОВ , но память действительно помоему рановато читать , есле не получается перевести формат темболее из числа в строку

Всегда были проблемы с переводом переменной с одного типа в другой и массивы, это 2 темы которые я очень плохо знаю

Вот проблема, со чтением ника. При типе переменной - char , показывает первую букву ника, если же ставлю string( или любой другой: pchar и т.д.) Выбивает пустое поле либо ошибка.
  Ответить с цитированием
Старый 28.03.2012, 18:05   #13
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: Вопрос по Делфи.

Lermontov, вот рабочая функция чтения Unicode строки из памяти:
Код:
function ReadPlayerName(hProcess,data:DWord): string;
var
i,rw:DWord;
ch:WideChar;
wch:array[0..255] of WideChar;
str:string;
begin
i:=0;
 repeat
 ReadProcessMemory(hProcess,ptr(data),@ch,2,rw);
 data:=data+2;
 wch[i]:=ch;
 inc(i);
 until
 (ord(ch)=0) or (i>=255);
i:=0;
str:='';
 repeat
 str:=str+wch[i];
 inc(i);
 until
 wch[i]='';
result:=str;
end;
Юзать так:
Код:
var
Wnd:THandle;
hProcess,PID:DWord;
const
BA=$00B27A04;
begin
Wnd:=FindWindow('ElementClient Window',nil);
GetWindowThreadProcessId(Wnd,@PID);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,PID);
 if hProcess<>0 then
  begin
   try
   ReadProcessMemory(hProcess,ptr(BA),@ibuf,sizeof(ibuf),BC);
   ReadProcessMemory(hProcess,ptr(ibuf+$1C),@ibuf,sizeof(ibuf),BC);
   ReadProcessMemory(hProcess,ptr(ibuf+$34),@ibuf,sizeof(ibuf),BC);
   ReadProcessMemory(hProcess,ptr(ibuf+$638),@buf,sizeof(buf),BC);
   ShowMessage(ReadPlayerName(hProcess,buf));
   finally
   CloseHandle(hProcess);
   end;
  end;
end;
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Пользователь сказал cпасибо:
Lermontov (03.04.2012)
Старый 03.04.2012, 00:31   #14
 Разведчик
Аватар для Lermontov
 
Lermontov никому не известный тип
Регистрация: 25.04.2011
Сообщений: 19
Популярность: 14
Сказал(а) спасибо: 10
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: Вопрос по Делфи.

Спасибо всем кто помог
Хочу научится вводить инжекты в игру, пытался по этой теме- http://zhyk.ru/forum/showthread.php?t=207760 , но для новичка там все написано непонятным языком, 1 этап понял, а вот второй и третий нет Прошу помощи!
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Делфи Inok0 Общение и обсуждение 23 26.05.2011 00:31
[Обсуждение] делфи вопрос "Unix Общение разработчиков 5 15.03.2011 09:27
[Помогите!] Бот на делфи Fizerator Вопросы и ответы, обсуждения 3 31.12.2010 18:45

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 12:47.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net