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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2010, 10:00   #11
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Код:
function write_value(Addres:cardinal;ByteType:integer;
var
GetValue:int64):boolean;
var
  PID,PH:cardinal;
  rw:cardinal;
  exec:boolean;
  H:HWND;
begin
try
  h:=find(windowtitle);
  exec:=true;
  if h=0 then
    exec:=false;
  getwindowthreadprocessid(h,PID);
  PH:=openprocess(process_all_access,false,PID);
  if PH=0 then
    exec:=false;
  if writeprocessmemory(PH,ptr(Addres),@GetValue,ByteType,rw)=false then
    exec:=false;
  closehandle(PH);
  result:=exec;
  finally
end;
end;
xRamzeSx вне форума Ответить с цитированием
Старый 09.11.2010, 10:05   #12
MaxNik2009
Форумчанин
 
Аватар для MaxNik2009
 
Регистрация: 17.09.2009
Сообщений: 294
По умолчанию

в даннай функции не предусмотрена возможность использования строковых данных, переписывай функцию, так что бы использовать строки, например
Код:
function write_value(Addres:cardinal;ByteType:integer;var GetText:string):boolean;
принимаю благодарности в письменном виде( весы слева)...

Последний раз редактировалось mihali4; 14.11.2010 в 16:43.
MaxNik2009 вне форума Ответить с цитированием
Старый 09.11.2010, 10:13   #13
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Исправил, а как это подправить?
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
res:int64;
begin
res:=StrToint64(Edit1.Text);
write_value2($000000,4,res);
end;
xRamzeSx вне форума Ответить с цитированием
Старый 09.11.2010, 10:19   #14
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Попробуй так
Код:
function write_string(Addres:cardinal; var Value:String):boolean;
var
  PID,PH:cardinal;
  rw:cardinal;
  exec:boolean;
  H:HWND;
  ByteType:integer
begin
ByteType := Length (value);
try
  h:=find(windowtitle);
  exec:=true;
  if h=0 then
    exec:=false;
  getwindowthreadprocessid(h,PID);
  PH:=openprocess(process_all_access,false,PID);
  if PH=0 then
    exec:=false;
  if writeprocessmemory(PH,ptr(Addres),Pointer(Value),ByteType,rw)=false then
    exec:=false;
  closehandle(PH);
  result:=exec;
  finally
end;
end;

...

procedure TForm1.Button1Click(Sender: TObject);
begin
write_value($000000, Edit1.Text);
end;
И ни каких StrToint64(Edit1Text);


З.Ы.: Как говорит моя дочка: xRamzeSx, ты меня поражаешь. Ну вот почему у тебя size = 4? Int64 - 8 байт. Строка, как ты сказал, произвольная. Почему же тогда ты пытаешся прочитать/записать именно 4 байта (это уже не в первый раз).
На последок: Учти, что размер записываемой строки должен быть именно таким, каков размер строки во взламываемом процессе. Иначе, ты рискуешь "запороть" данные, хранящиеся сразу за строкой.
Sibedir вне форума Ответить с цитированием
Старый 09.11.2010, 11:45   #15
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
write_value($000000, Edit1.Text);
end;
Тут ошибка:
Types of actual and formal var parameters mus be identical
xRamzeSx вне форума Ответить с цитированием
Старый 09.11.2010, 12:03   #16
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  s:  string;
begin
s := Edit1.Text;
write_value($000000, s);
end;
Sibedir вне форума Ответить с цитированием
Старый 09.11.2010, 13:49   #17
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Получается отправить только 1 символ и всё, почему???
xRamzeSx вне форума Ответить с цитированием
Старый 09.11.2010, 13:55   #18
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

А ты же вроде с Delphi 2010 работаешь? Там AnsiString что-то мутит. Щас попробовать не могу. На работе 10-ка не стоит.
Sibedir вне форума Ответить с цитированием
Старый 09.11.2010, 13:58   #19
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

А от чего это может зависить? Примерно, в какой области?
xRamzeSx вне форума Ответить с цитированием
Старый 09.11.2010, 14:03   #20
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Ну что-то типа
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  s:  PAnsiChar;
begin
s := PAnsiChar (Edit1.Text);
write_value($000000, String (s));
end;
короче, нужно PAnsiChar к String'у привести.

Последний раз редактировалось Sibedir; 09.11.2010 в 14:05.
Sibedir вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод текста в Stringgrid deathz0r Помощь студентам 3 04.11.2010 21:49
ввод текста с клавиатуры Nikik Паскаль, Turbo Pascal, PascalABC.NET 2 02.06.2010 23:05
Ввод текста с клавиатуры Impulsive Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 31.05.2010 13:44
Ввод текста в ячейке ellezar Microsoft Office Excel 1 08.12.2009 19:57
Ввод текста pali4ev Общие вопросы Delphi 1 18.12.2008 01:01