التحدي الكبير لأفضل المبرمجين
السلام عليكم
بالإشارة إلى الموضوع أعلاه وعند تجوالي في أحد المنتديات الأجنبية وجدت أن أحد الأعضاء يتباهى ويتفاخر بأن لديه الطريقة الوحيدة والأفضل لأخفاء البرنامج (Process) من إدارة المهام، حتى أنه قال أن هذه الطريقة -التي اكتشفها على حد قوله - ليس لها مثيل
وأنه يتحدى أفضل المبرمجين لإخفاء البرنامج من إدارة المهام. . .
والمطلوب هل من مبرمج لديه الطريقة لإخفاء البرنامج من إدارة المهام. . .
ملاحظة هامة: ليس المقصود إخفاء البرنامج من قائمة التطبيقات إنما من قائمة العمليات الموجود في إدارة المهام.
تحياتي (NoooH)
رد: التحدي الكبير لأفضل المبرمجين
و عليكم السلام
هذه هي الطريقة
Private Sub Form_Load()
App.TaskVisible = False
End Sub
رد: التحدي الكبير لأفضل المبرمجين
لعله يقصد إخفاء البرنامج من الـ Task manager لفعل ذلك عليك تحويل التطبيق إلى
Service
كود:
Private Const RSP_SIMPLE_SERVICE = 1
Private Const RSP_UNREGISTER_SERVICE = 0
Private Declare Function GetCurrentProcessId Lib "kernel32.dll" () As Long
Private Declare Function GetCurrentProcess Lib "kernel32.dll" () As Long
Private Declare Function RegisterServiceProcess Lib "kernel32.dll" (ByVal dwProcessID As Long,ByVal dwType As Long) As Long
Public Sub MakeService()
Dim Pid As Long
Dim regserv As Long
Pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(Pid, RSP_SIMPLE_SERVICE)
End Sub
Public Sub NoService()
Dim Pid As Long
Dim regserv As Long
Pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(Pid, RSP_UNREGISTER_SERVICE)
End Sub
'Form_Load لتحويل التطبق إلى خدمة نضع هذا الكود في الحدث
Call MakeService
'Form_QueryUnload و في الحدث
Call NoService
رد: التحدي الكبير لأفضل المبرمجين
الكود أعلاه لا يعمل إلا مع الـ Win 95,98,Me و لا يعمل مع الـ Win 2000,Xp ...................
يظهر أني بحاجة لتحديث معلوماتي ................... كود الأخ حسام أسهل و أحسن...........أول مرة أعرف الخاصية TaskVisible (:
رد: التحدي الكبير لأفضل المبرمجين
السلام عليكم شباب،
أولاً شكراً على الردود والتي إن دلّت ، فإنما تدل على أن الوطن العربي والإسلامي لا يخلو من المبدعين والطاقات الهائلة التي يمتلكونها . . .
المهم أن جميع الطرق السابقة وللأسف الشديد مجربه من زمان والمطلوب إخفاء البرنامج من إدارة المهام (TaskMGR) تحديداً من قائمة العمليات، لأنني كما أسلفت سابقاً وعند تجوالي في إحدى المنتديات الأجنبية وجدت أحد المغرورين يتباهى بالطريقة الخارقة - على حد قوله - والتي تمكنه من إخفاء البرنامج من إدارة المهام .
ملاحظة أخيرة: لقد وجدت بالفعل برنامج يقوم بإخفاء نفسه من إدارة المهام مما يعني أن الطريقة ممكنه جداً.
وتقبلوا تحياتي (RealNoooH)
ali_stone_server@yahoo.com
ali_stone_server@hotmail.com
رد: التحدي الكبير لأفضل المبرمجين
اقتباس:
لقد وجدت بالفعل برنامج يقوم بإخفاء نفسه من إدارة المهام مما يعني أن الطريقة ممكنه جداً
ممكن ترسل البرنامج او رابط الموقع كي ادرس عمل البرنامج و ارى ان كنت اقدر ان افيدك بشيء .
وشكرا"
1 مرفق
رد: التحدي الكبير لأفضل المبرمجين
السلام عليكم
وهذا البرنامج كإثبات على الطريقة ممكنة جداً.
يرجى التحميل من المرفقات .
تحياتي (RealNoooH)
1 مرفق
رد: التحدي الكبير لأفضل المبرمجين
راجع المرفق لترى نتيجة فحص الـ Avira للتطبيق الذي قمت بإرفاقه.........؟؟؟؟؟؟؟؟؟؟؟
قم بارفاق المصدر..................فهو أسلم .
رد: التحدي الكبير لأفضل المبرمجين
السلام عليكم و رحمة الله
بعد تحميل البرنامج أعلاه قمت بتفكيك موارده بواسطة Resources Hekers فتبين أنه يحتوي على ثلاث موارد مخصصة عبارة عن ثلاث ملفات تنفيذية (PE) ثم قمت بتفكيكه بواسطة VbDecompiler فتبين أنه يتكون من uعدة وحدات Class من بينها وحدة cHideProcess قمت بالبحث عنها بواسطة الجوجل و كانت النتيجة الحصول على نفس البرنامج مع اختلاف في الواجهة بنفس الـ Class و نفس الـ Resources لكنه مفتوح المصدر
يمكنك تحميله من هنا PSC
ضع اسم الـ Class في الجوجل و ستحصل على نتائج أخر بالصينينية
رد: التحدي الكبير لأفضل المبرمجين
السلام عليكم
تسلم يا أخ أبو هاجر والله أنك لقيت المطلوب بالتمام والكمال . .
تحياتي (RealNoooH)
رد: التحدي الكبير لأفضل المبرمجين
الحمد لله............................
هناك أيضا كود بالدلفي أبسط و أخف بكثير من البرنامج السابق لم أجربه إلا أن صاحب الكود يبدو واثقا منه...ربما سأقوم بترجمته إلى الـبيسك إن تيسر ذلك أو سأقوم بنشره هنا على حالته الأصلية إن لم أتمكن من ذلك.
للإشارة ينبغي التنبيه هنا على أن هذا النوع من الأكواد يبدو خطيرا لكن هذا لا يعني احتكاره لأنه متداول بين غير العرب لهذا لا يجب تهويل الأمر ...........ارجع للجوجل مثلا و أكتب مثلا code injection أو أي كلمات لها تعلق بموضوعنا هذا...............و سترى النتيجة الكبيرة و بلغات عديدة.........................و مع هذا تبقى تبعة إستعمال أي كود على نية المستعمل......................إن خيرا فخير أو شرا فشر.
رد: التحدي الكبير لأفضل المبرمجين
السلام عليكم
فعلاً الأخ (أبوهاجر الحلوة) عضو مميز جداً فمن خلال مشاركاتك وتعليقاتك المهذبة والسلسة أجد أنك من أفضل أعضاء المنتدى .
تعليق بسيط على آخر رد من الأخ (أبوهاجر الحلوة) وبالنسبة لتهويل الأمر فالتهويل ليس من عندي فعلاً بل من أحد الأعضاء في إحدى المنتديات الأجنبية كما أسلفت سابقاً . . .
أما عن الأكواد التي حاولت البحث عنها في جوجل فلم أجد أفضل من الكود الذي أشار إليه الأخ (أبوهاجر الحلوة).
تحياتي (RealNoooH)
رد: التحدي الكبير لأفضل المبرمجين
السلام عليكم و رحمة الله ...
أسف لأني لم أكن واضحا عند كلامي عن مسألة التهويل............لم أكن أقصدك إطلاقا بل على العكس من ذلك تماما فقد كان لك فضل التطرق لمثل هذا النوع من المواضيع الحساسة............إنما كان قصدي كثير من ردود أشخاص رأيتها في بعض المنتديات العربية و التي تنضح بكثير من سوء الفهم و سوء الظن مما جعل مثل هذه المواضيع شبه محضورة عندنا.............!!!! رغم توفرها بمستوى عال في المنتديات الأجنبية.....إن شاء الله تكون الفكرة قد اتضحت...و مشكور مرة أخرى على الموضوع الرائع
رد: التحدي الكبير لأفضل المبرمجين
السلام عليكم
الأخ (أبو هاجر الحلوة) لا داعي للأسف فكلنا أخوة، المهم أننا حصلنا على الفائدة .
أيضاًُ هل من الممكن أن تزودني بطريقة أخرى غير التي أشرت إليها سابقاً ؟؟. . .
تحياتي (RealNoooH)
رد: التحدي الكبير لأفضل المبرمجين
هذا كود الدلفي الذي أخبرتك عنه سابقا لكني لا أدري ما مدى صدقيته لأني لم أدرسه و لم أحاول ترجمته إلى البيسك............يمكن أن تلقي عليه نظرة
بالتوفيق
كود:
code en delphi
Here is Delphi example of hook dll. To install hook - call from .EXE SetHook function.
When DLL is injected into process - it is examine command line to find - "am i injected
onto taskmanager process?" If so -
seek "SysListView32" controls ( Task and Process listviews).
library HookLib;
uses
SysUtils,
Classes, Windows;
var hHook: integer;
hMod: THANDLE;
CurL: integer;
L: array[0..1] of integer;
EnabledIt: Boolean;
procedure DOUT(s:String);
begin
OutputDebugString(PChar(s+#10#13));
end;
function ResetWindowProc(hwnd:integer; NewProc:DWORD):DWORD;
begin
Result := SetWindowLong(hwnd,GWL_WNDPROC, NewProc);
end;
function FindListView(hwnd, prev: integer): boolean;
var wText: PChar;
begin
wText := AllocMem(250);
Result := FALSE;
if (CurL = 2) or (hwnd=0) then Exit;;
if(GetClassName(hwnd, wText, 250) <> 0) then
if wText = 'SysListView32' then
begin
L[CurL] := hwnd;
inc(CurL);
GetWindowText(hwnd, wText, 250);
DOUT(wText + ' ' + 'Found!');
end;
FindListView(GetWindow(hwnd, GW_CHILD), hwnd);
FindListView(GetWindow(hwnd, GW_HWNDNEXT), hwnd);
Result := TRUE;
end;
function HookProc(Code, wParam, lParam: integer): Integer; stdcall;
begin
if (Code = HSHELL_WINDOWCREATED) and (EnabledIt) then
begin
FindListView(wParam, 0);
end;
Result := CallNextHookEx(hHook, Code, wParam, lParam);
end;
function SetHook: DWORD;stdcall;
begin
hHook := SetWindowsHookEx(WH_SHELL, @HookProc, hMod, 0 );
Result := 0;
end;
function ResetHook: DWORD;stdcall;
begin
UnhookWindowsHookEx(hHook);
Result := 0;
end;
procedure InitDLL;
begin
EnabledIt := FALSE;
DOUT(GetCommandLine());
If Pos('taskmgr', GetCommandLine()) <> 0 Then EnabledIt := TRUE;
hMod := GetModuleHandle('HookLib.dll');
end;
exports SetHook, ResetHook;
begin
InitDLL;
end.
رد: التحدي الكبير لأفضل المبرمجين
السلام عليكم
في الحقيقة أخ (أبو هاجر الحلوة) خبرتي محدودة في الديلفي، ومع ذلك سأحاول عرض هذا الكود على بعض الزملاء علّهم يساعدوني أكثر.
وعلى العموم جزاك الله ألف خير . . .
تحياتي (RealNoooH)