Ö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.
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;
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...
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...
Ş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...
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..
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...
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)
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...
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.
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.