青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉(zhuǎn),開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

CreateRemoteThread-實現(xiàn)進程代碼注入

Posted on 2010-02-05 21:33 S.l.e!ep.¢% 閱讀(2494) 評論(0)  編輯 收藏 引用 所屬分類: RootKit
CreateRemoteThread-實現(xiàn)進程代碼注入
2008年12月27日 星期六 00:19

起因:哇卡卡同學(xué)昨天叫我?guī)退匆粋€進程代碼注入的程序問題,運行到CreateRemoteThread就出錯,由于之前沒做過這種事情看了一下他寫的代碼大體上就明白怎么做了,于是自己重新又做了一個,遇到多少艱辛就不說了,不過讓我有種寫shellcode的感覺:-D,自己run一次才是自己的東西嘛.

方法很多種,下面只是介紹其中的一種而已.

大體思路:首先明確目標(biāo)在NOTEPAD.EXE中彈出MessageBox.現(xiàn)在系統(tǒng)中找出NOTEPAD.EXE進程,兩次用VirtualAllocExNOTEPAD.EXE進程聲明一塊可讀寫運行的內(nèi)存塊,WriteProcessMemory寫入我們代碼注入的線程函數(shù)和傳給線程函數(shù)的參數(shù),最后運用CreateRemoteThread,變可讓我們之前寫入的線程函數(shù)運行.

技巧一:我們這里使用形如下面的形式來計算需要寫入函數(shù)的大小:

#pragma check_stack (off)

static DWORD WINAPI ThreadProc (LPVOID lpParameter){}

static void AfterThreadProc (void) { }

#pragma check_stack

DWORD cbCodeSize = (BYTE*)AfterThreadProc - (BYTE*)ThreadProc;


技巧二:我們這里聲明一個HYPINJECT結(jié)構(gòu),里面存放一些函數(shù)的地址,然后傳遞給線程函數(shù),不然直接在線程函數(shù)里面寫Win 32 API函數(shù),可能導(dǎo)致崩潰.結(jié)構(gòu)如下:

typedef struct tagHYPINJECT {

?????? ProcLoadLibrary??? fnLoad;

?????? ProcGetProcAddress fnGetProc;

?????? char MsgStr [MAX_PATH];

?????? char DLLName [MAX_PATH];

?????? char ProcName [MAX_PATH];

} HYPINJECT;

關(guān)于編寫線程函數(shù)的注意事項: (自己總結(jié)加網(wǎng)上資料)

線程函數(shù)里面最好不要調(diào)用除Kernel32User32以外的所有函數(shù),貌似User32里面的部分函數(shù)在調(diào)用的時候也會出現(xiàn)崩潰的局面,如果要調(diào)用其他庫的函數(shù)可以把LoadLibraryGetProcAddress的地址當(dāng)作線程函數(shù)的參數(shù)傳過去(下面的代碼就是這么實現(xiàn)的),不過如果已知某動態(tài)鏈接庫已經(jīng)加載了,最好還是使用GetModuleHandle取代LoadLibrary.當(dāng)然如果你想調(diào)用自己寫的函數(shù)的話也要把函數(shù)代碼復(fù)制到目標(biāo)進程里面去,然后把地址通過線程函數(shù)的參數(shù)傳過去.

而且不要使用任何的靜態(tài)字符串,線程函數(shù)最好寫成靜態(tài)(貌似也可以直接禁止 增量鏈接 ), 函數(shù)和變量之類大小也不要太大不然可能在VirtualAllocEx的時候就不能成功

……

全部代碼如下:

#include <windows.h>

#include <Tlhelp32.h.>


typedef HINSTANCE (WINAPI *ProcLoadLibrary)(char*);

typedef FARPROC (WINAPI *ProcGetProcAddress)(HMODULE, LPCSTR);

typedef int (WINAPI *ProcMessageBox)(HWND,LPCTSTR,LPCTSTR,UINT);

typedef struct tagHYPINJECT {

?????? ProcLoadLibrary??? fnLoad;

?????? ProcGetProcAddress fnGetProc;

?????? char MsgStr [MAX_PATH];

?????? char DLLName [MAX_PATH];

?????? char ProcName [MAX_PATH];

} HYPINJECT;

#pragma check_stack (off)

static DWORD WINAPI ThreadProc (LPVOID lpParameter)

{

?????? HYPINJECT* p = (HYPINJECT*)lpParameter;

?????? HMODULE hDLL = p->fnLoad (p->DLLName);

??? ProcGetProcAddress GetProc = p->fnGetProc;

?????? ProcMessageBox MsgBox = (ProcMessageBox)GetProc(hDLL,p->ProcName);

??? MsgBox(NULL,p->MsgStr,p->MsgStr,MB_OK);

?????? return 0;

}

static void AfterThreadProc (void) { }

#pragma check_stack


HYPINJECT hypInject;


BOOL InjectFunc(DWORD PID)

{

?????? HMODULE hk = LoadLibrary ("kernel32.dll");

?????? hypInject.fnLoad = (ProcLoadLibrary)GetProcAddress (hk, "LoadLibraryA");

?????? hypInject.fnGetProc = (ProcGetProcAddress)GetProcAddress (hk, "GetProcAddress");

?????? strcpy(hypInject.MsgStr," hyp's Knowledge Base");

?????? strcpy (hypInject.DLLName, "user32.dll");

?????? strcpy (hypInject.ProcName, "MessageBoxA");


?????? PVOID pCode = NULL;

?????? PVOID pData = NULL;

?????? BOOL bc = FALSE;

?????? DWORD cbCodeSize = (BYTE*)AfterThreadProc - (BYTE*)ThreadProc;


?????? HANDLE hProc = OpenProcess(

????????????? PROCESS_QUERY_INFORMATION |??

????????????? PROCESS_CREATE_THREAD???? |

????????????? PROCESS_VM_OPERATION????? |

????????????? PROCESS_VM_WRITE,???????????

????????????? FALSE, PID);

?????? if (hProc == NULL)

?????? {

????????????? return FALSE;

?????? }

??????

?????? pCode=VirtualAllocEx(hProc,NULL,cbCodeSize,MEM_COMMIT,PAGE_EXECUTE_READWRITE);

?????? if(pCode == NULL)

?????? {

????????????? return FALSE;

?????? }

?????? bc = WriteProcessMemory(hProc,pCode,(LPVOID)(DWORD) ThreadProc,cbCodeSize,NULL);

?????? if (!bc)

?????? {

????????????? return FALSE;

?????? }


?????? pData = VirtualAllocEx (hProc,NULL, sizeof (hypInject), MEM_COMMIT, PAGE_EXECUTE_READWRITE);

?????? if(pData == NULL)

?????? {

????????????? return FALSE;

?????? }

?????? bc = WriteProcessMemory (hProc, pData, &hypInject, sizeof (hypInject), NULL);

?????? if (!bc)

?????? {

????????????? return FALSE;

?????? }


?????? HANDLE ht=CreateRemoteThread(hProc,NULL,NULL,(LPTHREAD_START_ROUTINE)pCode,pData,0,NULL);

?????? if(ht == NULL)

?????? {

????????????? return FALSE;

?????? }

?????? CloseHandle(hProc);

?????? return TRUE;

}


int main()

{

?????? HANDLE hSnapshot = NULL;

?????? hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);

?????? PROCESSENTRY32 pe;

?????? pe.dwSize = sizeof(PROCESSENTRY32);

?????? Process32First(hSnapshot,&pe);

?????? do

?????? {

????????????? if(stricmp(pe.szExeFile,"NOTEPAD.EXE")==0)

????????????? {

???????????????????? InjectFunc(pe.th32ProcessID);

???????????????????? break;

????????????? }

?????? }

?????? while(Process32Next(hSnapshot,&pe)==TRUE);

?????? CloseHandle (hSnapshot);????

?????? return 0;

}

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久激情中文| 亚洲福利av| 女女同性精品视频| 影音先锋一区| 国产九九视频一区二区三区| 欧美大片va欧美在线播放| 一区二区三区精品视频在线观看| 欧美激情欧美狂野欧美精品| 亚洲精品一区二| 蜜臀av一级做a爰片久久| 精品91在线| 国产精品毛片一区二区三区| 久久久久久久一区| 99国产精品| 亚洲国产欧美在线人成| 久久国产精品一区二区三区四区| 亚洲福利视频专区| 激情久久久久久久久久久久久久久久 | 亚洲一区精品在线| 亚洲香蕉网站| 欧美色欧美亚洲另类七区| 欧美日韩成人综合天天影院| 欧美一区在线视频| 一区二区日韩精品| 中文成人激情娱乐网| 久久只有精品| 国产精品成人一区二区| 香蕉久久夜色精品国产使用方法| 美腿丝袜亚洲色图| 午夜久久tv| 免费永久网站黄欧美| 国产精品久久久99| 亚洲二区视频| 欧美一区二区三区视频在线观看 | 日韩午夜电影av| 国产欧美精品日韩精品| 欧美性事免费在线观看| 国产精品久久久999| 国产午夜精品理论片a级大结局 | 国产欧美亚洲日本| 在线免费观看欧美| 久久久久久尹人网香蕉| 国内精品久久久久影院优 | 亚洲欧洲在线免费| 小处雏高清一区二区三区| 亚洲福利av| 欧美专区日韩视频| 亚洲欧美影院| 99re6这里只有精品| 欧美成人网在线| 亚洲成人在线视频播放| 久久精品成人| 亚洲欧美网站| 国产精品久久久久久久久久久久 | 欧美在线视频日韩| 一本色道久久综合一区| 欧美久久电影| 一本综合久久| 亚洲精品影院| 欧美精品免费在线观看| 亚洲精品乱码久久久久久蜜桃91| 免费成人美女女| 快播亚洲色图| 亚洲精品美女91| 亚洲国产高清aⅴ视频| 久久在线播放| 久久精品99国产精品| 国产一区二区0| 久久亚洲一区二区| 久色成人在线| 亚洲人成高清| 日韩小视频在线观看专区| 欧美日韩另类丝袜其他| 日韩亚洲欧美一区| 一区二区三区**美女毛片| 欧美亚州一区二区三区 | 亚洲黄色一区| 欧美+亚洲+精品+三区| 亚洲黄页一区| 亚洲精品久久久一区二区三区| 亚洲一二三区精品| 国产精品美女www爽爽爽| 午夜久久久久久久久久一区二区| 亚洲一区二区视频在线| 国内综合精品午夜久久资源| 欧美成人亚洲成人日韩成人| 欧美区二区三区| 午夜精品久久久久久久99热浪潮| 欧美在线三级| 一级日韩一区在线观看| 午夜精品久久久久久久白皮肤| 国外成人性视频| 亚洲日本中文字幕区| 国产精品视区| 欧美成人日韩| 国产精品久在线观看| 免费试看一区| 国产精品久久久久久久9999| 玖玖精品视频| 欧美午夜免费电影| 欧美成人午夜免费视在线看片| 欧美日韩视频在线第一区| 久久久久国色av免费观看性色| 欧美超级免费视 在线| 欧美在线日韩在线| 欧美日韩福利视频| 久久婷婷麻豆| 国产精品老女人精品视频| 欧美大片在线看| 国产亚洲一区二区在线观看| 亚洲国产成人91精品| 国产午夜精品理论片a级大结局| 亚洲茄子视频| 亚洲激情偷拍| 欧美综合国产| 欧美亚洲一区三区| 欧美日韩精品欧美日韩精品| 欧美aa在线视频| 国产日韩一区欧美| 亚洲婷婷综合久久一本伊一区| 国产一区二区三区久久悠悠色av | 欧美日韩一区二区三区四区在线观看 | 麻豆国产va免费精品高清在线| 午夜精品久久久久久99热| 91久久精品国产91久久| 午夜精品影院在线观看| 久久精品国产精品亚洲| 欧美精品导航| 久久亚洲一区二区三区四区| 国产精品成人免费| 日韩午夜激情av| 99re热这里只有精品免费视频| 浪潮色综合久久天堂| 男女精品网站| 亚洲成人在线视频播放| 老司机精品视频一区二区三区| 久久中文字幕一区| 黄网动漫久久久| 性感少妇一区| 久久久最新网址| 欧美一区二区三区成人 | 亚洲黄色免费网站| 久久久精品动漫| 另类图片综合电影| 雨宫琴音一区二区在线| 久久激情中文| 麻豆精品一区二区综合av| 在线观看国产精品淫| 麻豆久久久9性大片| 欧美激情中文字幕一区二区| 亚洲精品国产精品国自产观看| 欧美成人dvd在线视频| 亚洲高清不卡| 一区二区三区**美女毛片| 国产精品扒开腿做爽爽爽视频 | 午夜国产欧美理论在线播放| 国产精品看片资源| 亚洲欧洲一区二区在线观看 | 欧美aa国产视频| 免费高清在线一区| 蜜桃久久av一区| 日韩午夜在线| 久久婷婷综合激情| 欧美日本免费一区二区三区| 欧美黄色影院| 亚洲精品1234| 欧美电影在线播放| 亚洲第一在线综合在线| 日韩天堂在线观看| 国产精品久久99| 国产综合精品| 精品69视频一区二区三区| 欧美jjzz| 亚洲欧美日韩直播| 欧美国产第一页| 先锋影院在线亚洲| 亚洲高清电影| 国产精品午夜国产小视频| 久久夜色精品国产| 亚洲在线免费视频| 亚洲福利电影| 久久久精品午夜少妇| 99国产精品私拍| 国模私拍视频一区| 欧美涩涩网站| 欧美ed2k| 久久成人一区| 亚洲中无吗在线| 亚洲美女av网站| 欧美黄色免费| 久久综合九色99| 午夜在线电影亚洲一区| 99视频超级精品| 亚洲黄网站黄| 亚洲国产三级| 在线观看av不卡| 国产一区二区三区久久悠悠色av| 欧美午夜宅男影院在线观看| 欧美国产成人精品| 蜜臀av国产精品久久久久|