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

S.l.e!ep.¢%

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

about Injection

Posted on 2010-02-06 04:38 S.l.e!ep.¢% 閱讀(1746) 評論(2)  編輯 收藏 引用 所屬分類: RootKit
Injection 的主要流程
1. 進程啟動
2. 如果在 vista 以上的系統,確保 ShutdownBlockReasonCreate && ShutdownBlockReasonDestroy (詳見 ShutdownBlockReasonCreate Function )
3.
調用? SetProcessShutdownParameters (詳見 SetProcessShutdownParameters Function )確保系統關機先詢問本程序 (這里似乎有漏洞,如果其它程序調用了 SetProcessShutdownParameters 就可以搶在 ShutdownGuard 前面接收到 WM_QUERYENDSESSION 消息)
4.??PatchApps(0);
5.??開啟定時器,定時檢查并inject DLL?SetTimer(hwnd, PATCHTIMER, PATCHINTERVAL, NULL);

PatchApps() 函數主要流程 (傳0表示 inject dll, 傳1表示 unload dll)
1. 確保 LoadLibraryA 和 FreeLibrary 這兩個函數存在
2.?獲取 SeDebugPrivilege?(詳見SeDebugPrivilege 特權 ) 確保能夠訪問到所有進程(調用了函數 OpenProcessToken????
??? AdjustTokenPrivileges
)? (這里為了提升權限,如果這里沒有提升權限,那么下面調用 VirtualAllocEx 分配內存 或
?? WriteProcessMemory 寫入內存將返回失敗)
3. 調用 EnumProcesses? 枚舉所有進程
4. 采用 OpenProcess 函數打開進程,權限為 PROCESS_QUERY_INFORMATION
PROCESS_VM_READ
5. 獲取 打開進程的全路徑 GetModuleFileNameEx
??? 注入csrss.exe會藍屏 / smss.exe 是注入不了的 / ShutdownGuard.exe 這個是我們的程序不需要注入
6. 檢查下目標進程是否已經被注入過,如果是的話,忽略它 (它這里的判斷好像有BUG,是根據 GetModuleFileNameEx 全路徑的結果進行判斷的, 如果寫一個關機程序,啟動兩次,第二次啟動的那個進程可以成功關閉?)
7. 判斷下系統是不是? 64 位的系統,如果是, 加載DLL也需要加載 64位的 (使用 IsWow64Process 來判斷)
8. 使用 EnumProcessModules 函數來獲取目標進程已經加載的模塊
9. 判斷下我們的 injection dll 是不是已經被目標進程加載,如果是,就忽略它(這個判斷是否是多余的?
10. 判斷下傳進來的參數, 決定是否 inject dll 還是 unload dll
11.?屏蔽 SeDebugPrivilege 權限(使用 AdjustTokenPrivileges 函數)

InjectDLL() 的主要流程
1. 打開進程 OpenProcess(),權限為 ?PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE|PROCESS_VM_READ
PROCESS_CREATE_THREAD 為了 CreateRemoteThread
PROCESS_VM_OPERATION?? 為了 VirtualAllocEx
PROCESS_VM_WRITE|PROCESS_VM_READ 為了可以讀寫對方的內存
2. VirtualAllocEx 分配內存
3. WriteProcessMemory 寫入內存
4. CreateRemoteThread 創建遠程線程 (線程函數是 pfnLoadLibrary, injection dll)

加載injection dll 的主要流程
1. 修改目標進程 IAT 表中的?user32.dll? 中的 ExitWindowsEx 函數, 將其代替為 ShutdownBlocked()

ShutdownBlocked() 的主要流程
1. 找到 ShutdownGuard 的窗口
2. 并發送 WM_SHUTDOWNBLOCKED 消息(通過 PostMessage() )

當收到? WM_QUERYENDSESSION 消息時
1. 如果是 vista 以上系統,需要調用 ShutdownBlockReasonCreate
ShutdownBlockReasonDestroy

作了下實驗,直接寫個程序調用 ExitWindowsEx ,居然可以成功 Shut down,寒?。?!
似乎只能阻止到 Explorer.exe

基本流程已經出來,收工

給我一個DLL,給我一個進程ID,我插,我插,我插插插。。。
bool?InjectDLLToOtherProcess(DWORD?dwProcessID,?const?char*?pszDLLPath)
{
????HANDLE?TokenHandle?
=?NULL;

????
//?
????if?(?FALSE?==?::OpenProcessToken(?GetCurrentProcess(),?TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,?&TokenHandle)?)
????{
????????
return?false;
????}
????
????TOKEN_PRIVILEGES?tkp;
????
????
//?Get?LUID?for?SeDebugPrivilege
????if(?FALSE?==?::LookupPrivilegeValue(NULL,?SE_DEBUG_NAME,?&tkp.Privileges[0].Luid)?)
????{
????????::CloseHandle(TokenHandle);
????????
return?false;
????}

????tkp.PrivilegeCount?
=?1;
????tkp.Privileges[
0].Attributes?=?SE_PRIVILEGE_ENABLED;
????
????
if?(?FALSE?==?AdjustTokenPrivileges(TokenHandle,?FALSE,?&tkp,?0,?NULL,?NULL)?)?
????{
????????::CloseHandle(TokenHandle);
????????
return?false;
????}

????HANDLE?process?
=?::OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE|PROCESS_VM_READ,?TRUE,?dwProcessID);
????
if?(?process?==?NULL?)
????{
????????::CloseHandle(TokenHandle);
????????
return?false;
????}

????typedef?HMODULE?(WINAPI?
*LoadLibraryPointor)(LPCTSTR);
????LoadLibraryPointor?pfnLoadLibrary?
=?NULL;
????HMODULE?kernel32?
=?NULL;
????
????
//Get?address?to?LoadLibrary?and?FreeLibrary
????if?(pfnLoadLibrary?==?NULL)?
????{
????????kernel32?
=?::GetModuleHandle("kernel32.dll");
????????
????????
if?(?kernel32?==?NULL?)
????????{
????????????::CloseHandle(process);
????????????::CloseHandle(TokenHandle);
????????????
return?false;????????????
????????}
????????
????????pfnLoadLibrary?
=?(LoadLibraryPointor)GetProcAddress(kernel32,?"LoadLibraryA");
????????
????????
if?(pfnLoadLibrary?==?NULL)
????????{
????????????::FreeLibrary(kernel32);
????????????::CloseHandle(process);
????????????::CloseHandle(TokenHandle);
????????????
return?false;
????????}
????}

????PVOID?memory?
=?::VirtualAllocEx(process,?NULL,?strlen(pszDLLPath)+1,?MEM_COMMIT,?PAGE_READWRITE);
????
????
if?(?memory?==?NULL?)
????{
????????::FreeLibrary(kernel32);
????????::CloseHandle(process);
????????::CloseHandle(TokenHandle);
????????
return?false;
????}

????
if?(?FALSE?==?::WriteProcessMemory(process,?memory,?(void*)pszDLLPath,?strlen(pszDLLPath)+1,?NULL)?)
????{
????????::VirtualFreeEx(process,?memory,?strlen(pszDLLPath)
+1,?MEM_RELEASE);
????????::FreeLibrary(kernel32);
????????::CloseHandle(process);
????????::CloseHandle(TokenHandle);
????????
return?false;
????}

????
//?Inject?dll
????DWORD?dwThreadID?=?0;
????HANDLE?hRemoteHandle?
=?::CreateRemoteThread(process,?NULL,?0,?(LPTHREAD_START_ROUTINE)pfnLoadLibrary,?memory,?0,?&dwThreadID);

????
if?(?hRemoteHandle?==?NULL?)?
????{
????????::VirtualFreeEx(process,?memory,?strlen(pszDLLPath)
+1,?MEM_RELEASE);
????????::FreeLibrary(kernel32);
????????::CloseHandle(process);
????????::CloseHandle(TokenHandle);
????????
return?false;
????}

????::WaitForSingleObject(hRemoteHandle,?INFINITE);

????DWORD?dwReturn?
=?0;
????
if(?FALSE?==?::GetExitCodeThread(hRemoteHandle,?&dwReturn)?)
????{
????????::CloseHandle(hRemoteHandle);
????????::VirtualFreeEx(process,?memory,?strlen(pszDLLPath)
+1,?MEM_RELEASE);
????????::FreeLibrary(kernel32);
????????::CloseHandle(process);
????????::CloseHandle(TokenHandle);
????????
return?false;
????}

????::CloseHandle(hRemoteHandle);
????::VirtualFreeEx(process,?memory,?strlen(pszDLLPath)
+1,?MEM_RELEASE);
????::FreeLibrary(kernel32);
????::CloseHandle(process);
????::CloseHandle(TokenHandle);
????
return?true;
}

目前存在的已知問題:
1. 未考慮 64 位機器
2. 未考慮 DLL 加載失敗的處理 (2010.02.05-23:38 已經 Fixed)
3. 提權后沒有恢復

一天就這么過去了~

Feedback

# re: about Injection  回復  更多評論   

2010-02-06 00:39 by DrKN
This is a black paper. Not suitable to put here and it is illegal.

# re: about Injection  回復  更多評論   

2010-02-08 22:45 by Phirothing
@DrKN
It doesn't matter . And I like it.
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            一本色道婷婷久久欧美| 久久激情五月激情| 久久久久九九视频| 亚洲视频在线一区观看| 欧美午夜电影在线观看| 中文欧美在线视频| 久久精品免费| 一区二区三区产品免费精品久久75 | 亚洲国产精品小视频| 亚洲婷婷在线| 欧美日韩国产一区二区三区| 亚洲欧美精品伊人久久| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产精品有限公司| 久久久久久久一区| 免费在线观看精品| 久久精品国产亚洲一区二区| 日韩一区二区精品| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲视频在线观看视频| 欧美专区亚洲专区| 亚洲一区二区成人| 一区二区激情小说| 久久婷婷麻豆| 久久在线免费观看视频| 日韩一区二区免费高清| 免播放器亚洲| 欧美理论在线| 欧美三区不卡| 国产伦理一区| 亚洲欧美福利一区二区| 久久精品国产免费观看| 一区二区三区国产在线观看| 午夜亚洲福利| 欧美精品国产一区| 国产欧美日本| 亚洲综合久久久久| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲性视频网站| 好看的日韩视频| 国产欧美精品日韩| 一个色综合av| 一区电影在线观看| 欧美午夜精品久久久久久久| 国产精品99久久99久久久二8| 亚洲人成绝费网站色www| 欧美精品久久久久久久久老牛影院 | 女女同性女同一区二区三区91| 亚洲一区自拍| 久久九九电影| 亚洲理论电影网| 麻豆成人91精品二区三区| 亚洲人成7777| 裸体女人亚洲精品一区| 一本大道久久a久久精品综合| 久久久久久久一区| 亚洲性视频h| 亚洲黄色免费电影| 一区二区三区高清| 亚洲精品少妇网址| 国产综合久久久久久| 午夜久久资源| 亚洲三级视频| 国内精品视频一区| 亚洲美女黄色| 久久精品国产清高在天天线| 亚洲国产美女久久久久| 亚洲国产日韩综合一区| 欧美激情乱人伦| 久久亚洲春色中文字幕| 欧美日韩一区二区三区高清| 国产情侣一区| 日韩一区二区精品在线观看| 亚洲国产成人精品视频| 欧美大尺度在线| 欧美日韩精品一区二区在线播放| 久久婷婷久久| 91久久久亚洲精品| 欧美国产视频在线| 欧美怡红院视频一区二区三区| 日韩亚洲国产精品| 亚洲精品欧美日韩| 亚洲综合视频1区| 午夜精品国产精品大乳美女| 欧美日韩国产成人在线免费 | 欧美日本亚洲视频| 一本色道久久综合亚洲91| 在线中文字幕一区| 国产亚洲精品久| 亚洲伦理中文字幕| 欧美一区二区大片| 影音先锋日韩精品| 亚洲欧美日韩第一区| 一区二区免费在线播放| 国产精品普通话对白| 日韩亚洲欧美精品| 性欧美激情精品| 亚洲国产日韩欧美一区二区三区| 国内自拍视频一区二区三区| 嫩草国产精品入口| 亚洲一区二区三区高清| 亚洲男人第一网站| 亚洲黄色av一区| 国内成人精品2018免费看| 欧美三区在线| 欧美精品久久一区| 久久久久久久综合色一本| 这里只有精品视频在线| 亚洲人成小说网站色在线| 老司机精品视频网站| 久久精品亚洲精品国产欧美kt∨| 一区二区三区欧美在线观看| 亚洲国产精品精华液2区45| 国内精品国产成人| 韩国一区电影| 亚洲黄色免费电影| 99国产麻豆精品| 国产一区二区福利| 国产深夜精品福利| 欧美日产国产成人免费图片| 欧美高清视频一区| 欧美日韩免费一区二区三区| 欧美日韩精品福利| 国产精品欧美一区喷水| 国产真实乱偷精品视频免| 国内免费精品永久在线视频| 在线观看欧美视频| 一区二区欧美在线| 久久久久99精品国产片| 亚洲国产黄色| 久久久夜夜夜| 欧美一级二区| 欧美国产成人在线| 夜夜嗨一区二区三区| 久久国产日本精品| 欧美日在线观看| 在线不卡中文字幕播放| 日韩天堂在线视频| 亚洲午夜在线观看| 久久av一区二区三区| 蜜臀久久久99精品久久久久久| 亚洲男人的天堂在线aⅴ视频| 久久中文欧美| 久久精品综合一区| 国产精品视频网址| 一区二区三区波多野结衣在线观看| 亚洲图片你懂的| 亚洲精品一区二区三区av| 久久久精品视频成人| 国产亚洲欧美一区二区三区| 亚洲综合国产精品| 日韩亚洲欧美综合| 欧美伦理91i| 一本色道久久99精品综合| 亚洲电影第1页| 久久亚洲私人国产精品va| 久热re这里精品视频在线6| 嫩草国产精品入口| 亚洲国产日韩欧美在线动漫 | 国产精品欧美风情| 国产精品国产三级国产专播品爱网 | 日韩视频永久免费观看| 日韩视频永久免费| 日韩亚洲不卡在线| 国产午夜一区二区三区| 久久综合999| 欧美精品久久久久久| 亚洲一区黄色| 久久精品色图| 99热这里只有成人精品国产| 亚洲天堂免费在线观看视频| 在线日韩av永久免费观看| 亚洲欧美综合v| 久久国产一区二区三区| 99热精品在线| 久久久久久久高潮| 亚洲无限av看| 浪潮色综合久久天堂| 欧美一区国产在线| 久久人人超碰| 国产精品久久久久婷婷| 亚洲国产高清一区| 在线欧美亚洲| 欧美在线网址| 亚洲人成网站999久久久综合 | 国产精品99久久99久久久二8| 午夜伦欧美伦电影理论片| 一本色道久久综合亚洲精品高清| 久久久激情视频| 久久人人看视频| 国产一区二区在线观看免费播放 | 久久米奇亚洲| 国产性做久久久久久| 午夜精品在线看| 久久国产精品毛片| 国产综合精品一区| 免费成人黄色av| 亚洲国产一区二区视频| 亚洲日韩欧美视频一区| 欧美激情精品久久久久久大尺度|