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

S.l.e!ep.¢%

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

about Injection (2)

Posted on 2010-02-07 17:23 S.l.e!ep.¢% 閱讀(1591) 評論(2)  編輯 收藏 引用 所屬分類: RootKit
about Injection ? 被說成是 black paper.....? 俺只是技術(shù)研究,沒其它目的.....

代碼優(yōu)化

bool?EnablePrivilege(LPCTSTR?lpszPrivilege,?bool?bEnable)
{
????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,?lpszPrivilege,?&tkp.Privileges[0].Luid)?)
????{
????????::CloseHandle(TokenHandle);
????????
return?false;
????}

????tkp.PrivilegeCount?
=?1;

#ifndef?SE_PRIVILEGE_REMOVED
#define?SE_PRIVILEGE_REMOVED?0X00000004?
#endif

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

????::CloseHandle(TokenHandle);

????
return?true;
}

bool?RemoteLoadDLL(DWORD?dwProcessID,?const?char*?pszDLLPath)
{
????typedef?HMODULE?(WINAPI?
*LoadLibraryPointor)(LPCTSTR);
????LoadLibraryPointor?pfnLoadLibrary?
=?NULL;
????HMODULE?hKernel32?
=?NULL;
????
????
//Get?address?to?LoadLibrary?and?FreeLibrary
????if?(pfnLoadLibrary?==?NULL)?
????{
????????hKernel32?
=?::GetModuleHandle("kernel32.dll");
????????
????????
if?(?hKernel32?==?NULL?)
????????{
????????????
return?false;????????????
????????}
????????
????????pfnLoadLibrary?
=?(LoadLibraryPointor)GetProcAddress(hKernel32,?"LoadLibraryA");
????????
????????
if?(pfnLoadLibrary?==?NULL)
????????{
????????????::FreeLibrary(hKernel32);
????????????
return?false;
????????}
????}

????
if(?!EnablePrivilege(SE_DEBUG_NAME,?true)?)
????????
return?false;

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

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

????
if?(?FALSE?==?::WriteProcessMemory(process,?memory,?(LPVOID)pszDLLPath,?strlen(pszDLLPath)+1,?NULL)?)
????{
????????::EnablePrivilege(SE_DEBUG_NAME,?
false);
????????::VirtualFreeEx(process,?memory,?strlen(pszDLLPath)
+1,?MEM_RELEASE);
????????::CloseHandle(process);
????????
return?false;
????}

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

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

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

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

????::EnablePrivilege(SE_DEBUG_NAME,?
false);
????::CloseHandle(hRemoteHandle);
????::VirtualFreeEx(process,?memory,?strlen(pszDLLPath)
+1,?MEM_RELEASE);
????::CloseHandle(process);
????::FreeLibrary(hKernel32);

????
if(?dwReturn?==?NULL?)
????????
return?false;
????
else
????????
return?true;????
}

HMODULE?GetProcessModule(DWORD?dwPID,?LPCTSTR?czDllName)?
{?
????HMODULE????????hMod???????
=?NULL;
????BOOL??????????bFound??????
=?FALSE;?
????HANDLE????????hModuleSnap?
=?NULL;?
????MODULEENTRY32?me32????????
=?{0};?

????
//?Take?a?snapshot?of?all?modules?in?the?specified?process.?
????hModuleSnap?=?CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,?dwPID);?
????
if?(hModuleSnap?==?INVALID_HANDLE_VALUE)?
????????
return?(FALSE);?

????
//?Fill?the?size?of?the?structure?before?using?it.?

????me32.dwSize?
=?sizeof(MODULEENTRY32);?

????
//?Walk?the?module?list?of?the?process,?and?find?the?module?of?
????
//?interest.?Then?copy?the?information?to?the?buffer?pointed?
????
//?to?by?lpMe32?so?that?it?can?be?returned?to?the?caller.?
????if?(Module32First(hModuleSnap,?&me32))?
????{?
????????
do?
????????{?
????????????
if(0?==?lstrcmpi(czDllName,?me32.szExePath))
????????????{
????????????????hMod?
=?me32.hModule;
????????????}
????????}?
????????
while?(hMod?==?NULL?&&?Module32Next(hModuleSnap,?&me32));?
????}?
????
else?
????{
????????hMod?
=?NULL;???????????//?could?not?walk?module?list?
????}

????
//?Do?not?forget?to?clean?up?the?snapshot?object.?
????CloseHandle(hModuleSnap);?

????
return?hMod;?
}

bool?RemoteUnLoadDLL(DWORD?dwProcessID,?const?char*?pszDLLPath)
{
????typedef?BOOL?(WINAPI?
*FreeLibraryFunType)(HMODULE?hModule);
????FreeLibraryFunType?pfnFreeLibrary?
=?NULL;
????HMODULE?hKernel32?
=?NULL;
????
????
//Get?address?to?FreeLibrary
????if?(pfnFreeLibrary?==?NULL)?
????{
????????hKernel32?
=?::GetModuleHandle("kernel32.dll");
????????
????????
if?(?hKernel32?==?NULL?)
????????{
????????????
return?false;????????????
????????}
????????
????????pfnFreeLibrary?
=?(FreeLibraryFunType)GetProcAddress(hKernel32,?"FreeLibrary");
????????
????????
if?(pfnFreeLibrary?==?NULL)
????????{
????????????::FreeLibrary(hKernel32);
????????????
return?false;
????????}
????}

????
if(?!EnablePrivilege(SE_DEBUG_NAME,?true)?)
????????
return?false;

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

????HMODULE?hUnloadDll?
=?GetProcessModule(dwProcessID,?pszDLLPath);

????
if(?hUnloadDll?==?NULL?)
????????
return?true;

????
//?Inject?Code
????DWORD?dwThreadID?=?0;
????HANDLE?hRemoteHandle?
=?::CreateRemoteThread(process,?NULL,?0,?(LPTHREAD_START_ROUTINE)pfnFreeLibrary,?(LPVOID)hUnloadDll,?0,?&dwThreadID);

????
if?(?hRemoteHandle?==?NULL?)?
????{
????????::EnablePrivilege(SE_DEBUG_NAME,?
false);
????????::CloseHandle(process);
????????
return?false;
????}

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

????DWORD?dwReturn?
=?0;
????
if(?FALSE?==?::GetExitCodeThread(hRemoteHandle,?&dwReturn)?)
????{
????????::EnablePrivilege(SE_DEBUG_NAME,?
false);
????????::CloseHandle(hRemoteHandle);
????????::CloseHandle(process);
????????
return?false;
????}

????::EnablePrivilege(SE_DEBUG_NAME,?
false);
????::CloseHandle(hRemoteHandle);
????::CloseHandle(process);
????::FreeLibrary(hKernel32);

????
if(?dwReturn?==?FALSE?)
????????
return?false;
????
else
????????
return?true;
}

目前存在的已知問題:
1. 未考慮 64 位機器
2. 未考慮 DLL 加載失敗的處理 (2010.02.05-23:38 已經(jīng) Fixed)
3. 提權(quán)后沒有恢復(fù) (2010.02.07-17:15 已經(jīng)Fixed)
4. 在?RemoteUnloadDLL 時,采用的是重定位DLL句柄的方法,有人跟我反應(yīng)這種方法不安全,但我暫時還沒想到什么情況下會引發(fā)問題。


目標(biāo)程序的輸出結(jié)果是:
DLL_PROCESS_ATTACH C:\Documents and Settings\Administrator\桌面\demo\test\Debug\test.exe
DLL_THREAD_DETACH C:\Documents and Settings\Administrator\桌面\demo\test\Debug\test.exe
The thread 0x878 has exited with code 13500416 (0xCE0000).
DLL_THREAD_ATTACH C:\Documents and Settings\Administrator\桌面\demo\test\Debug\test.exe
DLL_PROCESS_DETACH C:\Documents and Settings\Administrator\桌面\demo\test\Debug\test.exe
The thread 0x624 has exited with code 1 (0x1).

(開始不明白,結(jié)果看了
DLL_THREAD_DETACH 認識誤區(qū)后就明白了)

又一天就這么過去了~

Feedback

# re: about Injection (2)  回復(fù)  更多評論   

2010-02-08 19:32 by 樂蜂網(wǎng)官方網(wǎng)站
偶滴愛哦上帝哦啊

# re: about Injection (2)  回復(fù)  更多評論   

2010-02-08 19:51 by DrKN
呵..有點冒犯 真對不起
因為之前那篇都見到你打算給人想到是shutdown跟提權(quán)之類 感覺變得像blackpaper
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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久久久久久久久| 禁断一区二区三区在线| 一本色道**综合亚洲精品蜜桃冫 | 国产日韩欧美综合精品| 国产精品视频九色porn| 国产精品久久久| 国产伦精品一区二区三区视频孕妇 | 影音先锋久久精品| 亚洲国产婷婷| 一片黄亚洲嫩模| 亚洲欧美国产精品专区久久| 午夜国产精品视频免费体验区| 欧美一区二区精品| 欧美成人免费网站| 在线综合视频| 久久久99国产精品免费| 欧美麻豆久久久久久中文| 国产精品久久久久久久久久尿 | 一本久道久久综合婷婷鲸鱼| 欧美少妇一区| 欧美高清视频| 国产欧美va欧美va香蕉在| 久久久噜噜噜久久中文字幕色伊伊 | 日韩亚洲欧美成人一区| 午夜精品在线| 欧美韩日一区二区| 国内精品视频一区| 亚洲自拍偷拍网址| 欧美激情亚洲精品| 香蕉成人啪国产精品视频综合网| 美女在线一区二区| 国产一区二区主播在线| 亚洲图片在区色| 亚洲高清免费视频| 欧美一区二区三区视频| 欧美日韩中国免费专区在线看| 怡红院精品视频| 久久激五月天综合精品| 99精品欧美一区二区三区| 久久久久在线| 国产自产精品| 午夜天堂精品久久久久| 99精品国产在热久久婷婷| 欧美大片在线观看一区| 在线精品福利| 久久亚洲一区二区| 欧美一级电影久久| 国产欧美在线观看一区| 午夜精品久久久久久久99水蜜桃| 亚洲美女性视频| 欧美精品大片| 亚洲精品三级| 91久久国产综合久久蜜月精品| 久久夜色精品国产欧美乱| 国内外成人免费激情在线视频| 欧美在线3区| 亚洲免费影视| 国产精品一区二区三区观看 | 亚洲国产另类 国产精品国产免费| 欧美一区91| 亚洲女女女同性video| 国产精品每日更新在线播放网址| 亚洲午夜免费视频| 亚洲一区三区电影在线观看| 国产精品久久一级| 欧美在线三级| 久久久久九九九九| 最新中文字幕亚洲| 亚洲精品日本| 国产精品国产三级国产专区53| 国产精品jizz在线观看美国| 欧美另类久久久品| 亚洲一区二区三区777| 一区二区不卡在线视频 午夜欧美不卡在 | 久久一区二区精品| 亚洲国产精品成人久久综合一区| 欧美成人免费全部观看天天性色| 麻豆精品在线视频| 国产精品99久久久久久宅男| 亚洲在线1234| 亚洲电影免费| 亚洲视频电影图片偷拍一区| 国产在线不卡精品| 亚洲国产婷婷香蕉久久久久久| 欧美日韩一区不卡| 久久九九有精品国产23| 欧美电影免费网站| 午夜在线电影亚洲一区| 久久在线视频| 亚洲欧美日韩国产一区二区三区| 久久国产精品久久w女人spa| 亚洲免费观看高清完整版在线观看熊 | 亚洲视频碰碰| 欧美亚洲一区二区三区| 亚洲日本欧美天堂| 欧美一级片在线播放| 亚洲区中文字幕| 亚洲欧美精品| 99成人精品| 久久国产免费看| 亚洲淫片在线视频| 久久综合久久综合久久| 亚洲制服欧美中文字幕中文字幕| 久久久人成影片一区二区三区| 亚洲少妇自拍| 免费欧美电影| 久久亚洲国产成人| 国产精品大片wwwwww| 欧美国产一区视频在线观看| 国产精品亚洲综合一区在线观看| 亚洲电影在线观看| 精品成人久久| 午夜精品一区二区在线观看 | 国产自产高清不卡| 一本久久综合亚洲鲁鲁五月天| 在线成人av网站| 欧美亚洲在线| 小嫩嫩精品导航| 国产精品电影网站| 99riav1国产精品视频| 一本色道久久加勒比精品| 久久亚洲精品网站| 欧美精品v日韩精品v国产精品 | 欧美一级日韩一级| 欧美精品久久久久久久| 欧美成人69av| 黄色成人在线观看| 欧美一区二区在线免费观看| 午夜视频精品| 国产精品草草| 99天天综合性| 亚洲线精品一区二区三区八戒| 免费成人av在线| 欧美+亚洲+精品+三区| 国产一区二区三区奇米久涩| 亚洲影院免费观看| 亚洲欧美综合v| 国产精品久久久久久五月尺 | 欧美承认网站| 欧美激情在线播放| 亚洲经典自拍| 欧美成人午夜77777| 亚洲黄网站黄| a91a精品视频在线观看| 欧美日韩黄色一区二区| 中日韩视频在线观看| 欧美一区二区三区免费视| 国产日产欧美一区| 久久福利影视| 欧美激情一级片一区二区| 亚洲精品美女在线观看| 欧美日韩福利在线观看| 亚洲性感激情| 久久久综合激的五月天| 亚洲国产精品成人综合| 欧美精品国产精品| 亚洲视频大全| 麻豆av福利av久久av| 亚洲欧洲一区二区三区久久| 欧美日韩一级片在线观看| 亚洲欧美大片| 欧美国产国产综合| 亚洲一区二区三区在线| 国产一区在线视频| 欧美激情精品久久久久久| 亚洲视频播放| 欧美激情亚洲另类| 欧美在线视频一区二区| 亚洲黄一区二区| 国产伦精品一区二区三区照片91| 久久精品国产综合| 9l国产精品久久久久麻豆| 久久精彩免费视频| av成人免费| 激情视频亚洲| 国产精品乱人伦一区二区| 久久综合精品国产一区二区三区| 日韩一级黄色片| 理论片一区二区在线| 亚洲午夜在线视频| 亚洲国产另类久久精品| 国产女优一区| 欧美日产国产成人免费图片| 久久九九热免费视频| 亚洲视频欧美在线| 亚洲电影视频在线| 久久亚洲色图| 久久九九免费视频| 欧美伊人久久久久久久久影院| 一本色道久久综合精品竹菊| 影音国产精品| 国产一区二区高清视频| 午夜精品久久99蜜桃的功能介绍| 欧美h视频在线| 亚洲综合精品自拍| 一区二区精品在线观看| 亚洲福利视频二区| 免费日韩视频| 蜜桃av噜噜一区| 久久久久久亚洲精品中文字幕|