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

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>
            久久久91精品国产一区二区三区 | 亚洲欧美精品在线观看| 黄色综合网站| 亚洲国产精品va在看黑人| 国产综合视频| 亚洲精品1区| 亚洲图片欧美日产| 亚洲欧美日韩一区在线| 久久成人综合网| 欧美大片免费| 一本久道久久综合婷婷鲸鱼| 亚洲欧美精品一区| 六月天综合网| 欧美性事在线| 亚洲国产一区在线观看| 亚洲在线观看免费| 美日韩精品视频| 99国产精品一区| 久久精品视频在线| 欧美日本一区二区高清播放视频| 国产乱码精品一区二区三区五月婷| 激情婷婷久久| 亚洲一区精彩视频| 亚洲国产合集| 亚洲一区二区三区在线播放| 久久久久成人精品免费播放动漫| 欧美精品入口| 亚洲高清视频的网址| 销魂美女一区二区三区视频在线| 亚洲电影免费观看高清| 欧美一区二区视频在线观看| 欧美日韩国产色综合一二三四 | 亚洲欧美日韩系列| 免费欧美高清视频| 国产亚洲人成a一在线v站| 一区二区三区免费网站| 久久躁狠狠躁夜夜爽| 亚洲视频图片小说| 欧美激情一区在线观看| 在线观看一区| 噜噜噜在线观看免费视频日韩| 一区二区三区毛片| 欧美成人四级电影| 在线观看欧美精品| 麻豆av一区二区三区| 亚洲欧美精品在线观看| 国产精品久久久久国产精品日日 | 最新国产成人在线观看| 久久国产视频网| 国产偷国产偷亚洲高清97cao| 欧美成人免费网站| 久久久久久久久久久成人| 国产精品wwwwww| av成人免费在线| 欧美电影打屁股sp| 久久精品国产精品亚洲| 黄色一区三区| 欧美风情在线| 欧美va日韩va| 亚洲美女淫视频| 亚洲国产成人精品女人久久久| 久久久美女艺术照精彩视频福利播放 | 欧美成人视屏| 蜜桃av噜噜一区二区三区| 亚洲国产另类 国产精品国产免费| 久久久久久久久伊人| 亚洲欧美在线看| 国产香蕉久久精品综合网| 久久精品99| 久久不射2019中文字幕| 在线精品观看| 91久久精品一区| 国产精品99一区| 久久精品视频在线免费观看| 欧美在线在线| 亚洲国产综合在线看不卡| 噜噜噜久久亚洲精品国产品小说| 久久综合色88| 亚洲精品少妇网址| 一区二区三区日韩| 国产一区二区中文字幕免费看| 久久亚洲影院| 欧美成人黑人xx视频免费观看| 亚洲看片一区| 亚洲欧美乱综合| 亚洲电影免费观看高清完整版在线观看| 久久久午夜精品| 欧美理论在线播放| 久久久久久亚洲精品不卡4k岛国| 欧美成人日本| 久久久久久久久久码影片| 欧美a级大片| 欧美一区2区三区4区公司二百 | 国产精品久久久久秋霞鲁丝| 久久国产综合精品| 免费欧美电影| 久久成人免费网| 欧美极品一区二区三区| 欧美在线观看视频一区二区三区 | 国模私拍一区二区三区| 欧美搞黄网站| 国产曰批免费观看久久久| 亚洲国产网站| 激情欧美日韩一区| 亚洲天堂av电影| 亚洲美女中出| 久久这里有精品视频| 欧美一区二区三区婷婷月色| 欧美黄色免费网站| 一区二区三区视频在线观看| 亚洲综合国产激情另类一区| 亚洲第一在线综合网站| 中文亚洲欧美| 日韩图片一区| 久久久夜夜夜| 久久免费午夜影院| 欧美丝袜第一区| 亚洲精品麻豆| 亚洲精品资源| 蜜臀av一级做a爰片久久| 久久国产一区二区| 国产精品日韩在线| 一区二区三区视频在线| 亚洲视频在线视频| 欧美肉体xxxx裸体137大胆| 亚洲日本欧美日韩高观看| 91久久精品美女| 美女露胸一区二区三区| 蜜臀av国产精品久久久久| 国产在线视频欧美一区二区三区| 亚洲欧美视频一区二区三区| 亚洲影音一区| 国产精品自拍网站| 小黄鸭精品aⅴ导航网站入口| 欧美在线视频免费观看| 国产精品视频一区二区三区| 午夜精品久久久久久99热| 亚洲免费在线视频一区 二区| 国产精品国产成人国产三级| 中文精品视频一区二区在线观看| 中文av字幕一区| 国产精品视频大全| 亚洲欧美国产三级| 久久久人成影片一区二区三区观看| 国产伪娘ts一区| 久久蜜臀精品av| 亚洲人成艺术| 亚洲人妖在线| 亚洲欧美清纯在线制服| 国产亚洲欧美一区二区三区| 久久男女视频| 91久久线看在观草草青青| 中日韩高清电影网| 国产日本欧美一区二区| 久久久综合网站| 最新国产成人在线观看| 亚洲欧美日韩综合| 国语自产精品视频在线看一大j8| 玖玖国产精品视频| 一本久久综合亚洲鲁鲁五月天| 欧美中文字幕视频| 亚洲精品少妇| 国产精品一级在线| 久久综合九九| 亚洲婷婷综合久久一本伊一区| 久久先锋影音av| 亚洲精品欧美日韩专区| 欧美视频免费在线| 久久福利视频导航| 亚洲免费电影在线| 玖玖视频精品| 亚洲性色视频| 亚洲国产欧美一区二区三区同亚洲| 欧美精品久久久久久久免费观看| 欧美影院一区| 99这里有精品| 欧美国产在线视频| 久久精品国产v日韩v亚洲| 亚洲精品久久嫩草网站秘色| 久久人人97超碰精品888 | 欧美日韩在线播| 欧美一区二区三区婷婷月色| 欧美国产综合一区二区| 午夜在线a亚洲v天堂网2018| 亚洲日本中文字幕| 国产一区二区三区高清在线观看 | 欧美专区在线观看| 亚洲日本一区二区| 国产在线乱码一区二区三区| 欧美性大战xxxxx久久久| 鲁大师成人一区二区三区| 亚洲欧美另类在线| 亚洲视频一起| 亚洲欧洲在线播放| 免费不卡欧美自拍视频| 欧美一区二区高清在线观看| 亚洲小说欧美另类社区| 亚洲免费激情| 亚洲电影欧美电影有声小说| 国内成人精品视频|