delphi4arab منتديات دلفي للعرب

نسخة كاملة : استفسار عن عمل هوك لدالة CreateWindowEx
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
مجرد فضول ... لمادا تحاول تغيير نوافد جميع الألعاب >> أعتقد أن الكل يفضل وضع Full Screen
هههههههه ... فعلا كان لدي علامة تعجب كبيرة نوعاً ما P:
كنت اقول بنفسي انك لم تلحظ اني اعمل ذلك مع جميع الالعاب في البداية لم اوضح بشكل ميااشر
قلت :
إقتباس :والآن إذا اردت عمل برنامج يقوم بتغيير نمط نوافذ الألعاب من Full window mode إلى
Window mode ... كيف افعل ذلك ؟؟

وفي المشاركات التي تليها ذكرت ذلك ربما انك اعتمدت المشااركة الاولى Smile ..
على كل حال اعتذر على عدم التوضيح بشكل جيد

------
إقتباس : مجرد فضول ... لمادا تحاول تغيير نوافد جميع الألعاب >> أعتقد أن الكل يفضل وضع Full Screen
نعم صحيح ... تعرف اني اعمل على اشياء مثل Game Cheating لذلك نسبة كبيرة من الالعاب اوجه صعوبة في التعامل
معها عندما تكون Full Window ... ايضاً يوجد بعض الالعاب تقوم بتعطيل alt+Tab ساتعامل معها جميعا في برنامج واحد
واضعه على الشبكة العنكبوتية لكي يستفيد الجميع .. خصوصاً من يعانون من مثل هذه المشكلة Smile
------

جاري الإطالع على المكتبة .... كنت اضنك ستختار مكتبة uallHook ... لكني ساعمل معك على هذه المكتبة بما اني جديد بالهوك Smile
هههههههه جميل جدا ... فكرة جميلة لبرنامجك
آسف فأنا لم أطلع على مشروعك المرفق لأنني حاليا أستخدم النت بووك ..وهو بطيئ جدااا (لدلك لست منصب دلفي عليه)

uallHook مكتبة مجانية كما أعلم ,لكن ال documentation الخاصة ب mad أفضل ...
سأعمل بعد انتهاء الاختبارات (لان الاختبارات على الأبواب) على كلاس تساعد في عمل الهوووك Global Hook
السلام عليكم ..

بعد ما قرات ورأتي مثال عن الهوك مطبق على "TerminateProcess" وعندما بدات احاول التطبيق لم استطع استعمال madCodeHook
لابد من شرائها ...
لذلك سأحاول مع uallHook وإن استصعب علي امر سأسئلك Smile
كود :
madCodeHook لابد من شرائها

الهندسة العكسية اخي الا ادا كنت ستربح من خلال عملك او يتوفر لك المال
للمستقبل Smile في الحقيقة لا احب استعمال مكتبات خارجية احب ان اصنع المكتبات بنفسي ... لكن بما ان النسئلة تريد وقت وان اتعامل مع الهوك
سأستعين بمكتبة خارجية Smile

بالنسبة لـ uallHook استطعت بحمد الله عمل هوك لدالة MessagBoxA بسماعدة الاستاذ Coldzer0 جزاه الله خير
وايضاً عمل حاقن ..

هذا السروس كود للهوك :
PHP كود :
library Project1;

uses
  Winapi
.Windows, uallHook;

var
  
MessageBoxNext,PointerMsgOrg : function (hWnd: HWND; lpText, lpCaption: LPCWSTR; uType: UINT): Integer; stdcall;

function 
MyHookMsg(hWnd: HWND; lpText, lpCaption: LPCWSTR; uType: UINT): Integer; stdcall;
begin
  Result 
:= MessageBoxNext(hWnd, '5', lpCaption, MB_ICONHAND);
end;

begin
  PointerMsgOrg 
:= GetProcAddress(GetModuleHandle('user32'),PAnsiChar('MessageBoxA'));
  
HookCode(@PointerMsgOrg,@MyHookMsg,@MessageBoxNext);
end. 

جربت الهوك يعمل بنجاح ..

وهذا الحااقن
PHP كود :
program Project2;

{
$APPTYPE CONSOLE}

uses
  SysUtils
,
  
uallHook,
  
Windows;

var
  
sInfo : TStartupInfo;
  
pInfo : TProcessInformation;

begin
  ZeroMemory
(@sInfo, SizeOf(TStartupInfo));
  
sInfo.cb := SizeOf(TStartupInfo);
  
CreateProcess('Test.exe', nil, nil, nil, False, 4, nil, nil, sInfo, pInfo);
  
InjectLibrary(pInfo.dwProcessId,'Project1.dll');

  
ResumeThread(pInfo.hThread);
end. 

ملاحظة الهوك مبرمج بـ D XE3 و الحاقن بـ Delphi7
لاني حالياً اقوم بترجمة مكتبات uall إلى D XE3 Smile

تظهر لي بعض المشااكل عندما اعمل هوك لـ الدالة CreateWindowEx ... سأحاول اكثر من مره معها
وإن لم استطع سارجع هنا P:
الحمد لله ... اخيراً استطعت عمل هووك لدالة CreateWindowEx و CreateWindowExA و CreateWindowExW
هذا هو الكود Smile ... القاكم في إستفساار آخر P:

PHP كود :
library Hook;

uses
  SysUtils
,
  
Classes,
  
uallHook,
  
Windows,
  
Dialogs;

var
  
CreateWindowExNext,PtrCreateWindowEx : function (dwExStyle: DWORD; lpClassName: PChar;
  
lpWindowName: PChar; dwStyle: DWORD; X, Y, nWidth, nHeight: Integer;
  
hWndParent: HWND; hMenu: HMENU; hInstance: HINST; lpParam: Pointer): HWND;stdcall;

  
CreateWindowExANext,PtrCreateWindowExA : function (dwExStyle: DWORD; lpClassName: PAnsiChar;
  
lpWindowName: PAnsiChar; dwStyle: DWORD; X, Y, nWidth, nHeight: Integer;
  
hWndParent: HWND; hMenu: HMENU; hInstance: HINST; lpParam: Pointer): HWND;stdcall;

  
CreateWindowExWNext,PtrCreateWindowExW : function (dwExStyle: DWORD; lpClassName: PWideChar;
  
lpWindowName: PWideChar; dwStyle: DWORD; X, Y, nWidth, nHeight: Integer;
  
hWndParent: HWND; hMenu: HMENU; hInstance: HINST; lpParam: Pointer): HWND;stdcall;


function 
HookCreateWindowEx(dwExStyle: DWORD; lpClassName: PChar;
  
lpWindowName: PChar; dwStyle: DWORD; X, Y, nWidth, nHeight: Integer;
  
hWndParent: HWND; hMenu: HMENU; hInstance: HINST; lpParam: Pointer): HWND;stdcall;
begin
  Result 
:= CreateWindowExNext(dwExStyle,lpClassName,lpWindowName,0,X,Y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam);
end;

function 
HookCreateWindowExA(dwExStyle: DWORD; lpClassName: PAnsiChar;
  
lpWindowName: PAnsiChar; dwStyle: DWORD; X, Y, nWidth, nHeight: Integer;
  
hWndParent: HWND; hMenu: HMENU; hInstance: HINST; lpParam: Pointer): HWND;stdcall;
begin
  Result 
:= CreateWindowExANext(dwExStyle,lpClassName,lpWindowName,0,X,Y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam);
end;

function 
HookCreateWindowExW(dwExStyle: DWORD; lpClassName: PWideChar;
  
lpWindowName: PWideChar; dwStyle: DWORD; X, Y, nWidth, nHeight: Integer;
  
hWndParent: HWND; hMenu: HMENU; hInstance: HINST; lpParam: Pointer): HWND;stdcall;
begin
  Result 
:= CreateWindowExWNext(dwExStyle,lpClassName,lpWindowName,0,X,Y,500,300,hWndParent,hMenu,hInstance,lpParam);
end;

begin
  PtrCreateWindowEx 
:= GetProcAddress(GetModuleHandle('user32'),'CreateWindowEx');
  
HookCode(@PtrCreateWindowEx,@HookCreateWindowEx,@CreateWindowExNext);

  
PtrCreateWindowExA := GetProcAddress(GetModuleHandle('user32'),'CreateWindowExA');
  
HookCode(@PtrCreateWindowExA,@HookCreateWindowExA,@CreateWindowExANext);

  
PtrCreateWindowExW := GetProcAddress(GetModuleHandle('user32'),'CreateWindowExW');
  
HookCode(@PtrCreateWindowExW,@HookCreateWindowExW,@CreateWindowExWNext);
end. 

شكراً لك استااذ SMP3 على المسااعدة ..
عمل رائع أخي ALmuhhnad ..في انتظار البرنامج النهائي
هل نجحت في ترجمة uallHook الى دلفي XE3 ?
قمت بالذي اعرفه Smile
واستطعت عمل هوك بـ D XE3 من خلال uallHook
ولم يحصل اي خطاً ... لكن هذه اول مرة اقوم بترجمة كود واعتقد انه يوجد بعض الأخطاء ..
لاني حاولت عمل حاقن بنفس المكود الذي عملته في Delphi7 مع D XE3 ولم ينجح الامر
واضن اني اعرف ما السبب ... وهو اني لا اعرف كيف اتعامل مع PAinsChar و PWideChar .. اعتقد هذا ما تبقا Smile
اذا اردت ان ارفقها لك وتكمل المشوار Smile
الصفحات : 1 2