Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2009, 20:41   #1
Niklan
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 55
По умолчанию Внедрение в процесс

Нужно внедриться в известный процесс.
Известен адрес и количество байт.
Как его вывести на Label1 ?
Значение всегда цифровое

Последний раз редактировалось mihali4; 17.11.2009 в 20:44.
Niklan вне форума Ответить с цитированием
Старый 17.11.2009, 21:17   #2
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 306
По умолчанию

Я понял только слово "внедрится"
но при чем здесь Label1 ???
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!
DarkEvil вне форума Ответить с цитированием
Старый 17.11.2009, 21:29   #3
Niklan
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 55
По умолчанию

Цитата:
Сообщение от DarkEvil Посмотреть сообщение
Я понял только слово "внедрится"
но при чем здесь Label1 ???
Ну надо внедрится в определенное окно.
И указанное значение $FFFFFF (напр) еревести в цифры и вывести на Label1

Код:
var
  Form1: TForm1;
  WindowName: integer;
ProcessId: integer;
ThreadId: integer;
HandleWindow: Integer;
write: cardinal;
buf: dword;
const
WindowTitle = 'name';
Address = $70284308;
NumberOfBytes = 4;


implementation

{$R *.dfm}

procedure TForm1.value;
begin
WindowName := FindWindow(nil,WindowTitle);
ThreadId := GetWindowThreadProcessId(WindowName,@ProcessId);
HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
Тут надо чтобы он обращался в клиент, заходил по указанному адресу, брал значение и выводил на label1
end;

Последний раз редактировалось Niklan; 17.11.2009 в 22:20.
Niklan вне форума Ответить с цитированием
Старый 17.11.2009, 22:21   #4
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 306
По умолчанию

а как вы определили что то что Вы ищете находится по заданом адресу???
---------------------------------------------------------------------------
ReadProcessMemory Вам в помощь
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!

Последний раз редактировалось DarkEvil; 17.11.2009 в 22:31.
DarkEvil вне форума Ответить с цитированием
Старый 18.11.2009, 10:52   #5
Niklan
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 55
По умолчанию

Цитата:
Сообщение от DarkEvil Посмотреть сообщение
а как вы определили что то что Вы ищете находится по заданом адресу???
---------------------------------------------------------------------------
ReadProcessMemory Вам в помощь
Чот не понимаю как там применить ReadProcessMemory
дописал
Код:
pTemp:=GetProcAddress(address, WindowTitle)
ReadProcessMemory(GetCurrentProcess,pTemp, @value, 4, BytesWritten);
ругается на BytesWritten и GetCurrentProcess
Взял такой пример из сети. Думаю если бы он не ругался, дальше пошло бы лучше.

p.s. отсеивали в ArtMoney

Вот полный код
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShellAPI, StdCtrls;

type
  TForm1 = class(TForm)
    procedure value;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  WindowName: integer;
ProcessId: integer;
ThreadId: integer;
HandleWindow: Integer;
write: cardinal;
buf: dword;
pTemp: Pointer;
value: Word;
const
WindowTitle = 'name';
Address = $70284308;
NumberOfBytes = 4;


implementation

{$R *.dfm}

procedure TForm1.value;
begin
WindowName := FindWindow(nil,WindowTitle);
ThreadId := GetWindowThreadProcessId(WindowName,@ProcessId);
HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
pTemp:=GetProcAddress(address, WindowTitle)
ReadProcessMemory(GetCurrentProcess,pTemp, @value, 4, Byte);
end;

end.

Последний раз редактировалось Niklan; 18.11.2009 в 11:11.
Niklan вне форума Ответить с цитированием
Старый 18.11.2009, 12:58   #6
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 306
По умолчанию

Код:
ReadProcessMemory(GetCurrentProcess,pTemp, @value, 4, Byte);
Невижу переменной byte
Причем здесь текущий процесс? GetCurrentProcess
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!
DarkEvil вне форума Ответить с цитированием
Старый 18.11.2009, 13:36   #7
Niklan
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 55
По умолчанию

Цитата:
Сообщение от DarkEvil Посмотреть сообщение
Код:
ReadProcessMemory(GetCurrentProcess,pTemp, @value, 4, Byte);
Невижу переменной byte
Причем здесь текущий процесс? GetCurrentProcess
Какой тип должен быть у Byte?
а про GCP хз, там так было я и взял. А что надо вписать то. Если оставить пустым ведь не выйдет, nil он также ругает, а вот если ввести 'name' хз, может и выйдет ща попробую

//upd. ругается

Последний раз редактировалось Niklan; 18.11.2009 в 13:42.
Niklan вне форума Ответить с цитированием
Старый 18.11.2009, 13:43   #8
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 306
По умолчанию

Вот вам описания функции ReadProcessMemory
http://msdn.microsoft.com/en-us/libr...53(VS.85).aspx
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!
DarkEvil вне форума Ответить с цитированием
Старый 18.11.2009, 15:25   #9
Niklan
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 55
По умолчанию

Цитата:
Сообщение от DarkEvil Посмотреть сообщение
Вот вам описания функции ReadProcessMemory
http://msdn.microsoft.com/en-us/libr...53(VS.85).aspx
Код:
ReadProcessMemory(GetCurrentProcess,pTemp, @value, 4, Byte);
заменил на
Код:
ReadProcessMemory(PROCESS_VM_READ, pTemp, @buf, 4, NumberOfBytes);
но я что-то вообще не понимаю что делает @buf и NumberOfBytes. Я даже не врубаю что туда ставить. Из статьи не понял
Зато при запуске ругает только ReadProcessMemory - Missin operator
и то что buf не присвоено ничего

Последний раз редактировалось Niklan; 18.11.2009 в 15:28.
Niklan вне форума Ответить с цитированием
Старый 18.11.2009, 15:30   #10
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 306
По умолчанию

@buf эта переменная куда считуется информация
NumberOfBytes сколько реально считалось байт
а Вы хоть немного читали описания функции????
что это такое?????
PROCESS_VM_READ
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!
DarkEvil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
внедрение MatLab в Web-приложения Honey JavaScript, Ajax 2 27.05.2009 20:52
Внедрение кода в EXE prizrak1390 Общие вопросы Delphi 16 07.05.2008 08:10
Внедрение звука WAW/MP3 в файл GAGARIN-NEW Мультимедиа в Delphi 26 02.04.2008 13:52
Внедрение ActiveX компонент в проект D@rk M@k Общие вопросы Delphi 5 29.01.2008 19:40
внедрение Delphi приложения в КПК shkiper Общие вопросы Delphi 2 05.04.2007 20:59