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

Нужна помощь.

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 29.11.2012, 00:21   #1
 Разведчик
Аватар для mistik1
 
mistik1 никому не известный тип
Регистрация: 14.01.2011
Сообщений: 19
Популярность: 12
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 6 сообщениях
Отправить сообщение для mistik1 с помощью ICQ Отправить сообщение для mistik1 с помощью Skype™
 
Unhappy Нужна помощь.

Нужна информация и помощь в разборке кода, от и до, если возможно с пояснением ошибок. Прошу без лишнего флуда.
Примерно половину кода понял, от Google'л, но остались белые пятна.
Вот код, созданный по примерам из интернета и разных тем...
Код:
unit Unit1;

interface

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

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

type
  PParams = ^TParams;
  TParams = packed record
    Packet: array [0..100] of byte;
    Param1,Param2,Param3: DWord;
    Param4: array [1..100] of widechar;
  end;

const
  PW_BASE_ADDRESS = $00A591E0;
  PW_GAMERUN_ADDR = $00A59ACC;
  PC_ADDR = $0063F890;
var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure InjectFunc(ProcessID: Cardinal; Func, aParams: Pointer;
  aParamsSize: DWord);
var
  hThread: THandle;
  lpNumberOfBytes: DWord;
  ThreadAddr, ParamAddr: Pointer;
begin
  if ProcessID<>0 then
  begin

    ThreadAddr := VirtualAllocEx(ProcessID, nil, 256, MEM_COMMIT, PAGE_READWRITE);
    WriteProcessMemory(ProcessID, ThreadAddr, Func, 256, lpNumberOfBytes);


    ParamAddr := VirtualAllocEx(ProcessID, nil, aParamsSize, MEM_COMMIT, PAGE_READWRITE);
    WriteProcessMemory(ProcessID, ParamAddr, aParams, aParamsSize, lpNumberOfBytes);


    hThread := CreateRemoteThread(ProcessID, nil, 0, ThreadAddr, ParamAddr, 0, lpNumberOfBytes);


    WaitForSingleObject(hThread, INFINITE);


    CloseHandle(hThread);
    VirtualFreeEx(ProcessID, ParamAddr, 0, MEM_RELEASE);
    VirtualFreeEx(ProcessID, ThreadAddr, 0, MEM_RELEASE);
  end
end;

Непонятна данная функция...
procedure SkillCall(aPParams:PParams); stdcall;
var CallAddress:pointer;
    P1:DWord;
begin
CallAddress:=Pointer(PC_ADDR);
P1:=aPParams^.Param1;
 asm
  pushad
  mov ecx, dword ptr [PW_BASE_ADDRESS]
  mov ecx, dword ptr [ecx+$1C]
  mov ecx, dword ptr [ecx+$20]
  push $FFFFFFFF
  push $00
  push $00
  mov edx, P1
  push edx
  call CallAddress
  popad
 end;
end;

Зачем это и нужно ли оно вообще если есть код ниже...
//procedure Skill(SkillID:DWord);
//begin
//  aParam.Param1:=SkillID;
//  InjectFunc(ProcessID,@SkillCall,@aParam,SizeOf(aParam));
//end;
В данном коде Delphi7 ругается на PID, прошу поясните что это, пишет неверный идентификатор...
procedure TForm1.Button1Click(Sender: TObject);
var
aParams: TParams;
PID, hProcess: DWord;
begin
GetWindowThreadProcessId(FindWindow('Perfect World Window',nil)PID);
hProcess:= OpenProcess(PROCESS_ALL_ACCESS, False, PID);
aParam.Param1:= Edit1.text; <== можно ли написать так вместо skillid.
InjectFunc(hproess,@SkillCall,@aparams,sizeof(aParam));
end;
end.
Прошу помогите, пытаюсь разобраться да голова не варит =/ руки вроде не из зада ...
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Последний раз редактировалось mistik1; 29.11.2012 в 00:23. Причина: Исправление опечаток, добавление небольшого участка кода.
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна Помощь XzBlin Общение и обсуждение CrossFire 0 26.12.2011 19:46
Нужна помощь по приложению Город(помощь оплачу) legorii Баги игр ВКонтакте 1 10.03.2010 18:37
[Помогите!] Нужна помощь! Нужна аватарка! Flapes Треп 40 28.12.2009 21:07

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

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

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net