Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    [C++] Inniettare una dll e liberare la memoria

    Ciao ragazzi, questo sorgente l'ho copiato da un sito che spiega come creare virus, ma non temete, il mio intento è un altro.

    Questo codice carica un dll nella ram di un processo servendosi dell Pid del processo
    Questo codice funziona perfettamente, l'unico problemuccio è che una volta caricata la dll in memoria non riesco più a liberare la ram per la dll e riutilizzare questo eseguibile per inniettare la dll nello stesso processo, come la prima volta che lo eseguo.

    Codice PHP:

    #include "stdafx.h"
    #include <iostream>
    #include <windows.h>

    BOOL Inietta(DWORD pidLPCTSTR dllname);

    int APIENTRY WinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
    {


    //Fase1: Registrare il PID del processo "firefox.exe"

    DWORD Explorer;
    Explorer 3184;

    //Fase2: Iniezione della dll in firefox.exe

    if(Inietta(Explorer"C:\\Users\\Niko\\Desktop\\dll.dll"))
    return 
    0;
    else
    MessageBox(NULL"Errore"""0);


    }




    BOOL Inietta(DWORD pidLPCTSTR dllname)
    {

    LPVOID remaddr;
    HANDLE hprocrthread;
    HMODULE kmodh;

    //Apre il processo firefox.exe dal Pid
    if((hproc OpenProcess(PROCESS_ALL_ACCESSFALSEpid)) == NULL)
    {
    MessageBox(NULL,"Apre il processo explorer.exe dal Pid","Errore",0); return FALSE; } //Fallisce se non riesce ad aprirlo

    //Alloca la dll nella memoria Ram di firefox.exe e fisicamente
    if((remaddr VirtualAllocEx(hprocNULLstrlen(dllname),MEM_COMMIT,//>>
    PAGE_READWRITE))== NULL)
    {
    MessageBox(NULL,"Alloca la dll nella memoria Ram di explorer.exe e fisicamente","Errore",0); return FALSE; }



    //Scrive i dati della dll nell'area di memoria di firefox.exe
    if(!WriteProcessMemory(hprocremaddr, (LPVOID)dllnamestrlen(dllname), NULL))
    {
    VirtualFreeEx(hprocremaddrstrlen(dllname), MEM_RELEASE|MEM_DECOMMIT);
    {
    MessageBox(NULL,"Scrive i dati della dll nell'area di memoria di explorer.exe","Errore",0); return FALSE; }
    }

    //Prende l'Handle del Kernel32, serve solo per chiamare la funzione LoadLibraryA
    kmodh GetModuleHandle("KERNEL32.DLL");

    //Crea un Thread (mini processo) in explorer.exe passando per argomenti
    //la LoadLibraryA che caricherà la dll
    //Nb. per supporto Unicode, usare la LoadLibraryW invece che LoadLibraryA
    rthread CreateRemoteThread(hproc,NULL,0,//>>
    (LPTHREAD_START_ROUTINE)GetProcAddress(kmodh,"LoadLibraryA"),//>>
    remaddr,0,NULL);
    //rthread = NULL;
    //Se ha fallito, lasciamo perdere e liberiamo la memoria
    if(rthread == NULL) {
    VirtualFreeEx(hprocremaddrstrlen(dllname), MEM_RELEASE|MEM_DECOMMIT);
    {
    MessageBox(NULL,"Se ha fallito, lasciamo perdere e liberiamo la memoria","Errore",0); return FALSE; }
    }

    //Se abbiamo avuto successo, liberiamo lo stesso la memoria però, e chiudiamo l'handle
    VirtualFreeEx(hprocremaddrstrlen(dllname), MEM_RELEASE|MEM_DECOMMIT);
    CloseHandle(hproc);

    return 
    TRUE;



  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    La discussione di questo tipo di programmi non è molto tollerata nel forum, a prescindere da ciò che vuoi fare (di cui comunque non possiamo sapere nulla).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    ok capisco

    ok avete perfettamente ragione, a questo punto dico: se non volete rispondere va bene lo stesso vi capisco bene, se vi fidate vi ringrazio, fate come vi sembra più giusto.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    Cmq

    Comunque..... in questo link si parla del mio stesso problema... riguardo a
    A parte il fatto che, anche dalla nuova discussione che hai aperto (DLL injection) penso sempre di più che stai seguendo una "strada" poco utile
    il codice mi può servire per caricare tread negli exe, solo che con quello che ho trovato carico solo una dll in un exe, mentre io ne volevo di più.
    Se c'è un'altro modo per usare i tread altrettanto semplice lo accetto, perchè possono tornare molto utili.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    T'ho già detto che sono argomenti non tollerati in questo forum. Oggi molto più di tempo fa (era una discussione del 2006) ... sono solo utilizzati per "malware" e "cheat" per giochi (ti dice nulla War Rock ... ?) ...

    Dato che ritengo, in maniera definitiva, che siano, inutili (quando non dannosi), non parlo più di questo tipo di codici.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    Capisco

    ok, ho guardato qualche video su warrock, adesso ho visto, vabbè fa niente.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472

    Re: Capisco

    Originariamente inviato da kirakira93
    adesso ho visto
    Adesso?

    Mi riferivo a questo

    http://www.gamehack.it/members/226356.html
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    wow

    Oregon sei un mito..... beh dico la verità... mi sono inscritto in quel forum per due motivi: uno scaricare le hack per warrock quando ci giocavo (infatti se magari pensi che il codice di sopra serva per warrock ti sbagli perchè l'ho eliminato, lo dimostra anche il fatto che non scarico hack da tempo, penso ci sia scritta la cronologia dei download nel sito); secondo motivo, mi sono inscritto sperando che ci fossero persone capaci di aiutarmi in problemi legati al C++ e mi spiegasse come è organizzata la memoria (visto che usano gli address per le loro hack), ma nessuno.
    Comunque sei un buon osservatore, non vorrei aver fatto una brutta impressione....

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472

    Re: wow

    Originariamente inviato da kirakira93
    Comunque sei un buon osservatore, non vorrei aver fatto una brutta impressione....
    beh ... il fatto di chiedere circa codice che esegue delle "dll injection" non depone a tuo favore ... Ovviamente sei padronissimo di chiedere, ma non ti meravigliare se non avrai molte risposte. Al contrario, se vuoi imparare il linguaggio e le normali tecniche, avrai tutti i suggerimenti del caso.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    ok

    ok grazie, lo farò..... adesso io mi corico, grazie comunque.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.