View Full Version : مخفی کردن یک پروسس در برگه پروسس task manager
mi_9469
یک شنبه 26 شهریور 1385, 09:22 صبح
با سلام
من تمام سایت و حتی در وبلاگ های دیگه هم گشتم .ولی ندیدم.آیا کسی میدونه چطور میشه یک پروسس رو در برگه ""پروسس"" نه در برگه ""برنامه کاربردی"" task manager مخفی کرد .
ممنون میشم.
Saeid59_m
یک شنبه 26 شهریور 1385, 10:23 صبح
من یه راهی بلدم که برنامه از TaskBar مخفی می شه ، نمی دونم بدرت می خوره ؟
//To hide the task bar use
ShowWindow(FindWindow
('Shell_TrayWnd',nil), SW_HIDE) ;
در ضمن شیطون با این کد می خواهی چکار کنی ؟؟؟؟؟!!!!!!!!!1
mi_9469
یک شنبه 26 شهریور 1385, 11:14 صبح
با سلام
ممنون از جوابت.میرم تستش کنم.
اینو برای یک قسمت از برنامه کنترل پرسسهای اجرا شده روی کلاینها در شبکه lan میخوام.
Lagon666
یک شنبه 26 شهریور 1385, 11:25 صبح
!**************************************
! Name: Stealth
! Description:Hide your porgams in the t
! ask manager, and from process lists.
No one will ever know its there!
! By: Dave Bayliss
!
! Assumes:This control does not work und
! er Windows 2000 as the tasking is differ
! ent, I use it on win 95, 98, ME systems
! and it works great!
!
!This code is copyrighted and has ! limited warranties.Please see http://w
! ww.Planet-Source-Code.com/vb/scripts/Sho
! wCode.asp?txtCodeId=420&lngWId=7 !for details. !**************************************
{Created By David Bayliss http://www.dbayliss.com}
unit Stealth;
interface
uses
WinTypes, WinProcs, Classes, Forms, SysUtils, Controls, Messages;
type
TDuplicateComponent = class(Exception);
TFormNotOwner = class(Exception);
TStealth = class(TComponent)
private
FHideForm: Boolean;
fHideApp: Boolean;
OldWndProc: TFarProc;
NewWndProc: Pointer;
function IsIt: Boolean;
procedure SetIt (Value: Boolean);
procedure SetHideApp(Value: Boolean);
procedure HookParent;
procedure UnhookParent;
procedure HookWndProc(var Message: TMessage);
protected
{ Protected declarations }
procedure HideApplication;
procedure ShowApplication;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Loaded; override;
procedure ProcessEnabled;
published
{ Published declarations }
property HideForm: Boolean read IsIt write SetIt stored true default true;
property HideApp: Boolean read fHideApp write SetHideApp;
end;
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL';
procedure Register;
implementation
destructor TStealth.Destroy;
begin
ShowApplication;
UnhookParent;
inherited destroy;
end;
constructor TStealth.Create(AOwner: TComponent);
var
i: Word;
CompCount: Byte;
begin
inherited Create(AOwner);
fHideform := true;
NewWndProc := nil;
OldWndProc := nil;
CompCount := 0;
if (csDesigning in ComponentState) then
if (AOwner is TForm) then
with (AOwner as TForm) do
begin
for i := 0 to ComponentCount - 1 do
if Components[i] is TStealth then Inc(CompCount);
if CompCount > 1 then raise TDuplicateComponent.Create('There is already a TStealth component on this Form');
end
else
raise TFormNotOwner.Create('The owner of TStealth Component is not a TForm');
HookParent;
end;
procedure TStealth.SetHideApp(Value: Boolean);
begin
fHideApp := Value;
if Value then
HideApplication
else
ShowApplication;
end;
procedure TStealth.HideApplication;
begin
if not (csDesigning in ComponentState) then
RegisterServiceProcess(GetCurrentProcessID, 1);
end;
procedure TStealth.ShowApplication;
begin
if not (csDesigning in ComponentState) then
RegisterServiceProcess(GetCurrentProcessID, 0);
end;
procedure TStealth.Loaded;
begin
inherited Loaded; { Always call inherited Loaded method }
if not (csDesigning in ComponentState) then
ProcessEnabled;
end;
procedure TStealth.ProcessEnabled;
begin
if not (csDesigning in ComponentState) then
if fHideform then
ShowWindow(FindWindow(nil, @Application.Title[1]), SW_HIDE)
else
ShowWindow(FindWindow(nil, @Application.Title[1]), SW_RESTORE);
end;
function TStealth.IsIt: Boolean;
begin
Result := fHideform;
end;
procedure TStealth.SetIt(Value: Boolean);
begin
fHideform := value;
ProcessEnabled;
end;
procedure TStealth.HookParent;
begin
if owner = nil then exit;
OldWndProc := TFarProc(GetWindowLong((owner as TForm).Handle, GWL_WNDPROC));
NewWndProc := MakeObjectInstance(HookWndProc);
SetWindowLong((owner as TForm).Handle, GWL_WNDPROC, LongInt(NewWndProc));
end;
procedure TStealth.UnhookParent;
begin
if (owner <> NIL) and Assigned(OldWndProc) then
SetWindowLong((owner as TForm).Handle, GWL_WNDPROC, LongInt(OldWndProc));
if Assigned(NewWndProc) then
FreeObjectInstance(NewWndProc);
NewWndProc := NIL;
OldWndProc := NIL;
end;
procedure Register;
begin
RegisterComponents('Dbayliss', [TStealth]);
end;
procedure TStealth.HookWndProc(var Message: TMessage);
begin
if owner = NIL then exit;
if (Message.Msg = WM_SHOWWINDOW) then
if (Message.wParam <> 0) then
ProcessEnabled;
Message.Result := CallWindowProc(OldWndProc, (owner as TForm).Handle, Message.Msg, Message.wParam, Message.lParam);
end;
end.
Saeid59_m
یک شنبه 26 شهریور 1385, 14:26 عصر
من کد بالا رو تست کردم جواب نمی ده .
لطفاً اگه کسی کامپوننت داره به صورت فایل ضمیمه کنه .
با تشکر
dkhatibi
یک شنبه 26 شهریور 1385, 16:19 عصر
مخفی شدن فایل از process قبلا بحث شده
و روشهایی ارایه شده است
البت نه خیلی خوب
Saeid59_m
شنبه 01 مهر 1385, 08:06 صبح
من که گفتم این تکه برنامه برای مخفی کردن برنامه از نوار وظیفه ویندوز هست ، نه از پروسسها .
dkhatibi
شنبه 01 مهر 1385, 15:02 عصر
بنامه ای که آیکنی در Taskbar نداشته باشه در Process نشون داده نمی شه
این کد را ببین:
procedure TForm1.Button1Click(Sender: TObject);
var
hwndOwner: HWnd;
begin
hwndOwner := GetWindow(Handle, GW_OWNER);
ShowWindow(hwndOwner, SW_HIde);
end;
shobair
شنبه 01 مهر 1385, 15:38 عصر
بنامه ای که آیکنی در Taskbar نداشته باشه در Process نشون داده نمی شه
سلام
کی گفته؟؟؟
یعنی شما تاحالا Task Manager رو باز نکردی و زبانه Process ها رو ندیدی؟؟
شبیر
mi_9469
شنبه 01 مهر 1385, 15:50 عصر
با سلام
با تشکر از همراهی شما. من تمام روشها رو تست کردم ولی در winxp جواب نداد
تابع registerserviceprocess در kernel32.dll درwin98 جواب میده ولی این تابع در kernel32.dll winxp وجود ندارد.
dkhatibi
شنبه 01 مهر 1385, 16:10 عصر
با تب Application اشتباه شد
amin a.^2
شنبه 01 مهر 1385, 18:51 عصر
[]بنامه ای که آیکنی در Taskbar نداشته باشه در Process نشون داده نمی شه
بابا شما که دیگه شاهکارید پس چجوری windows explorer اجرا میشه حتماً صفحه مانیتو هم به صورت پیش فرض این جوریه
با تب application اشتباه شد یعنی چه؟؟؟؟؟
برای این کار باید از rootkit استفاده کنید
برید به این سایت
rootkit.com
dkhatibi
شنبه 01 مهر 1385, 19:00 عصر
کد قبلی رو به کار برید خواهید دید که نام برنامه وقتی که آیکن حذف شد در تب Application هم حذف می شه.
ضمنا یک تاپیک با همین مضمون قبلا توسط خودم باز شده بود و مباحثی مطرح شد که هیچ یک جوابگو نبود.
اگر منظور شما این است که برنامه ی شما نتواند توسط کاربر EndTask شود نام اونو Winlogon.Exe یا Lsass بگذارید.
babak869
دوشنبه 03 مهر 1385, 11:17 صبح
در تاپیک برنامه های کاربردی و مهم یه نمونه هست میتونید دریافت کنید
sarvestan
دوشنبه 03 مهر 1385, 12:06 عصر
در ویندوز 98 میشد با ثبت برنامه خودمون به عنوان یکی از سرویسها در ویندوز از لیست برنامه ها حذف کرد ولی این کار در windows NT به بعد تقریبا سخت شده(نمیگم غیر ممکن) چون در این ویندوزها سرویسها هم بعنوان یک پروسس در لیست پروسسها نمایش داده می شوند!
استثنا این قضیه برای ویروسها نیز دیده نشده(ویروسهایی همچون Blaster در لیست پروسسها قابل کشف بودند) مگر اینکه بتونی برنامه خودتو که البته باید از حجم خیلی پایینی برخوردار باشه، به انتهای یک برنامه یا سرویس همیشگی ویندوز متصل کنی! یعنی بتونی کدهای معمولا مخرب را در میان کدهای استاندارد ویندوز قرار بدی!
این تنها و تنها و تنها راه حل حذف پروسس خودت از تو لیست پروسسهای ویندوز میباشد! :بامزه:
البته احتمالا :لبخند: :چشمک:
--------------------
نکته:
ویروس هایی که تا بحال طراحی شده اند و قابل کشف نیستند معمولا از سیستمی که گفتم استفاده کرده اند!
( البته کد اونهایی که تا بحال دیدم )
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.