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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2012, 17:50   #1
Mr_ViK
Форумчанин
 
Регистрация: 12.08.2011
Сообщений: 124
По умолчанию работа с памятью

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    txt: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  WindowName: integer;
ProcessId: integer;
ThreadId: integer;
HandleWindow: Integer;
write, outbytes: cardinal;
buf,too, addr: dword;
pTemp: Pointer;
value: Word;
h: hwnd;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
addr := $04AD94CB;
  HandleWindow :=FindWindow(nil, 'Counter-Strike');
  if(HandleWindow  <> 0) then
  begin
    GetWindowThreadProcessId(HandleWindow  ,@ProcessId);
    h := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
    if(h <> 0) then
    begin
        if(ReadProcessMemory(h, Pointer(addr), @buf, sizeof(DWORD), outbytes) and (outbytes = sizeof(DWORD))) then
        begin
        if buf = 0 then
        begin
        buf:=1851861596
       (тут ошибка) WriteProcessMemory(h, Pointer(addr), @buf, sizeof(DWORD), outbytes)
        end;
        end;
      CloseHandle(h);
    end;
end;
end;
end.
как исправить ошибку
я в delphi только с сегодняшнего дня...
мне нужна dll для VB
вот пишу сижу
Mr_ViK вне форума Ответить с цитированием
Старый 15.01.2012, 19:29   #2
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Что за ошибка? Вы не озвучили, на что ругается программа. А вообще, идем на MSDN, ищем по сабжу:http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Скорее всего, правильнее будет так:
Код:
WriteProcessMemory(h, @addr, @buf, sizeof(DWORD), @outbytes)
Назовите конкретно, что за ошибка. На что именно ругается.
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 15.01.2012, 19:33   #3
Rock-n-Rolla
Форумчанин
 
Регистрация: 11.01.2012
Сообщений: 177
По умолчанию

Цитата:
(тут ошибка) WriteProcessMemory(h, Pointer(addr), @buf, sizeof(DWORD), outbytes)
где ошибка? в целевом процессе или в текущем? и какая именно?

Цитата:
WriteProcessMemory(h, @addr, @buf, sizeof(DWORD), @outbytes)
нет, надо именно pointer(addr)
progromore.i2p - первый русскоязычный портал программистов в скрытосети
Rock-n-Rolla вне форума Ответить с цитированием
Старый 15.01.2012, 19:33   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Скорее всего, правильнее будет так:
второй параметр ни в коем разе.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.01.2012, 19:40   #5
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Поэтому я и предупредил, что возможно так в любом случае, ошибка не озвучена, а вообще в таких случаях нужно обращаться к MSDN.
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 15.01.2012, 19:44   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в таких случаях нужно озвучивать ошибку, и говорить когда она возникает, при компиляции или работе кода.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.01.2012, 00:56   #7
Mr_ViK
Форумчанин
 
Регистрация: 12.08.2011
Сообщений: 124
По умолчанию

Код:
[Error] Unit1.pas(52): Missing operator or semicolon
вот такая ошибка...
я в интернете лазил там был пример когда было повторение имени..
но тут writeprocessmemory я нигде не использовал, кроме как в функции

извините, я просто дуб дубом в delphi

Последний раз редактировалось Mr_ViK; 16.01.2012 в 01:01.
Mr_ViK вне форума Ответить с цитированием
Старый 16.01.2012, 01:01   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

пропустили точку с запятой в конце оператора.
обычно это ошибка связанна с предыдущей строкой к той на которую указывает ошибка.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.01.2012, 01:04   #9
Mr_ViK
Форумчанин
 
Регистрация: 12.08.2011
Сообщений: 124
По умолчанию

Спасибо, вот говорю же дуб дубом... азов даже не знаю.. просто я на делфи никогда не писал, я на бейсике, а тут понадобилась длл на делфи для работы с памятью
Mr_ViK вне форума Ответить с цитированием
Старый 16.01.2012, 01:11   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

перевели бы текст ошибки на русский, возможно бы сразу поняли ошибку.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с памятью в VB Mr_ViK Помощь студентам 1 14.01.2012 16:54
Работа с памятью Seferus Общие вопросы C/C++ 4 28.12.2010 14:04
Работа с памятью GrihaI Общие вопросы C/C++ 0 14.05.2010 18:18
Работа с памятью getUp Общие вопросы C/C++ 6 19.01.2010 01:11
Работа с памятью Shurik Hacker Общие вопросы Delphi 7 22.06.2007 20:51