Programı görev yöneticisinden saklamak..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Delhici
Üye
Mesajlar: 176
Kayıt: 20 Eyl 2003 09:04

Programı görev yöneticisinden saklamak..

Mesaj gönderen Delhici »

Merhaba arkadaşlar

Önceden yapmış olduğum bir programı win95 ve 98 de ctrl+alt+del ekranından saklamayı başarmıştım.. Ama aynı program xp ve 2000 de görev yöneticisi sekmesinde görünmektedir. Kullandığım program kodu aşağıda verilmiştir.

Kod: Tümünü seç

function Tanaform.ctrlaltdelete(Gosterilsin: boolean): boolean;
type
  Proc=procedure(PID,T:DWord); stdcall;
var
   fhLib: hInst;
   RegProc:Proc;
begin
Result:=false;
FhLib:=GetModuleHandle(PChar('kernel32.dll'));
If FhLib=0 then Exit;
@RegProc:=GetProcAddress(FhLib,PChar('RegisterServiceProcess'));
if @RegProc<>nil then
   begin
   if Gosterilsin then
      RegProc(GetCurrentProcessID, 0)
   else
      RegProc(GetCurrentProcessID, 1);
   Result:=true;
   end;
end;

Kod: Tümünü seç

ctrlaltdelete(false);


Başka bir şekilde yardımcı olacak arkadaşımız var mı? Şimdiden teşekkür ederim.
İYi çalışmalar
http://www.bargem.info
Yaşıyorum..... İnadına değil yaptıklarım. Herşey istediğim için oluyor. İstediğim için türkü dinliyorum. İstediğim için çalışıyorum. İstediğim için yaşıyorum ve istediğim için seni seviyorum...
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Windows2000/XP ve 2003'de programı görev yöneticisinden saklamak mümkün değil.
Delhici
Üye
Mesajlar: 176
Kayıt: 20 Eyl 2003 09:04

Mesaj gönderen Delhici »

HAklı olabilirsin. Çünkü bir çok yöntem denedim. Olmadı.. Ama bazı spam türü virüsler bu ekranda görünmüyor. Buna da dikkat çekmek lazım....

Peki ya görevinin sonlandırılmasını nasıl önleyebiliriz.. Bunun için bir fikriniz var mı? yani programı bir sistem dosyasıymış gibi gösterebilir miyiz? Zone alarm bu şkeilde çalışıyordu.. Yani ctrl+alt+del ile görevi sonlandırılamıyordu...

İyi çalışmalar
http://www.bargem.info
Yaşıyorum..... İnadına değil yaptıklarım. Herşey istediğim için oluyor. İstediğim için türkü dinliyorum. İstediğim için çalışıyorum. İstediğim için yaşıyorum ve istediğim için seni seviyorum...
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

coderlord yazdı:Windows2000/XP ve 2003'de programı görev yöneticisinden saklamak mümkün değil.
Radmin'nin yeni sürümünde görev yöneticisinden saklanabiliyor çalıştığı. Acaba nasıl yapmışlar ki :roll:
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Service olarak yükleniyordur. :)
Delhici
Üye
Mesajlar: 176
Kayıt: 20 Eyl 2003 09:04

Mesaj gönderen Delhici »

Şimdi bu olaya bir çözüm bulamadık mı? Aslında bana çok basit birşeymiş gibi gelmişti ama değilmiş:) service olarak yükleme nasıl yapılacak?

İyi çalışmalar
http://www.bargem.info
Yaşıyorum..... İnadına değil yaptıklarım. Herşey istediğim için oluyor. İstediğim için türkü dinliyorum. İstediğim için çalışıyorum. İstediğim için yaşıyorum ve istediğim için seni seviyorum...
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Valla yapılabilseydi piyasadaki trojanlar yapardı diye düşünüyorum ki yapamıyorlar.

Service'leri Delphi altında hazırlayabilirsin. Bir Wizard'ı vardı galiba. Ama bu da görünecektir. Windows service'leri görünür. Senin yapacağın Windows service'i taklidi yapmak olabilir. Yani aynı ismi kullanmak. Ancak bu bir sorun çıkarır mı bilemem.

Bu arada trojan yazmak için yardım istemek yasak biliyorsun değil mi ? :) Hani öyle bir fikrin varsa..
Delhici
Üye
Mesajlar: 176
Kayıt: 20 Eyl 2003 09:04

Mesaj gönderen Delhici »

trojan yazmak gibi bir niyetim yok. Onu yazmak için başka forumlar var:)
Amacım şu, windows serviceleri kapatılamıyor. Örnek verdiğim program yani zone alarm kapatılırken, bir hata oluştu kapatılamaz diye bir uyarı veriyor. bunun gibi birşey yapmak istiyorum.. Çok uğraştım. Yapılacağını bilmekle birlikte uğraşmak canımı sıktı biraz.. ya işletim sistemini tekrar win95 yapacağız ada bu işe çare bulacağız..:) Başka bir çaremiz yok...:)
http://www.bargem.info
Yaşıyorum..... İnadına değil yaptıklarım. Herşey istediğim için oluyor. İstediğim için türkü dinliyorum. İstediğim için çalışıyorum. İstediğim için yaşıyorum ve istediğim için seni seviyorum...
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Uğraşının elinden birşey kurtulmaz. Sen araştırmaya devam et. :)
Kullanıcı avatarı
Karinca
Üye
Mesajlar: 239
Kayıt: 25 Ağu 2004 07:06
Konum: http://localserver/
İletişim:

Mesaj gönderen Karinca »

coderlord yazdı:Uğraşının elinden birşey kurtulmaz.
Doğru Söylüyosun Hocam.
Bi Gelişme Kaydeden Oldumu Acaba?


Selamar...
cihana hakan olmak bir kuru kavga imiş
bir mürşide bende olmak cümleden evla imiş
h.z. Fatih


Resim
Kullanıcı avatarı
ovural
Üye
Mesajlar: 167
Kayıt: 22 Eki 2003 10:20
İletişim:

Mesaj gönderen ovural »

bazı keylogger programları kendini task manager dan gizliyorlar .. servis hizmeti olmadıgı halde .. mesela Ghost KeyLogger .. bunu bulmam lazım .. bi projede kullanmamı istediler
Kim ilim öğrenir sonra da onu gizlerse âhirette onun ağzına ateşten bir gem vurulur. (Hadis-i Şerif)
notname
Üye
Mesajlar: 149
Kayıt: 11 Şub 2005 02:15

Mesaj gönderen notname »

evet delphide bu yapılabiliyor "nthide.dll" bunu bir google'da arastırın dll kullanarak gizleyebilirsiniz. ayrıca şu an yeni çıkan trojanlar ,keylooger türü programlar ctrl+alt+del de gözükmüyo...
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

zamanında ufak bir şaka programı yazmıştım.
windows başladığında otomatik olarak çalışsın diye regestryde ilgili bölüme programın adını ve yolunu yazmıştım. bilgisayarı kullanan kişinin ilk önce msconfig yazıp başlangıçta neler çalışıyor diye kontrol edeceğini düşündüğümden arka planda sürekli msconfig penceresi açıldı mı açılmadı mı diye kontrol ettirdim , tespit ettiğim anda ise msconfigde yer alan listevieewe elemanları alfabetik sıraya göre sıralasın diye bi mesaj gönderdim ardından ilk sıradaki elemanı silmesi için başka bir mesaj gönderdim. tabi benim programda _XXX gibi bir isme sahip olduğundan ilk sıraya o geliyor ve silinen elemanda o oluyordu. aynı işlemi regedit.exe içinde yaptım. eğer açıldığını farkedersem program kendini registryden siliyordu kapandığı anda yeniden yazıyordu. baya eğlenceli olmuştu yani :)

xp de aynı veya buna benzer şeyler yapılabilir
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
The_MeLiX
Üye
Mesajlar: 7
Kayıt: 01 Ara 2005 09:57

Mesaj gönderen The_MeLiX »

arkadaşlar çok çabul vazgeçiyorsunuz imkansız diye bişey yoktur..
işte kodlar aşağıda güle güle saklanın...

Kod: Tümünü seç

    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.
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

bu kodu nt,2000, xp gibi sistemlerde çalıştırdınız mı?
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Cevapla