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

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開心的工作
簡單、開放、平等的公司文化;尊重個(gè)性、自由與個(gè)人價(jià)值;
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) 評(píng)論(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 位機(jī)器
2. 未考慮 DLL 加載失敗的處理 (2010.02.05-23:38 已經(jīng) Fixed)
3. 提權(quán)后沒有恢復(fù) (2010.02.07-17:15 已經(jīng)Fixed)
4. 在?RemoteUnloadDLL 時(shí),采用的是重定位DLL句柄的方法,有人跟我反應(yīng)這種方法不安全,但我暫時(shí)還沒想到什么情況下會(huì)引發(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 認(rèn)識(shí)誤區(qū)后就明白了)

又一天就這么過去了~

Feedback

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

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

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

2010-02-08 19:51 by DrKN
呵..有點(diǎn)冒犯 真對(duì)不起
因?yàn)橹澳瞧家姷侥愦蛩憬o人想到是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>
            亚洲欧美综合精品久久成人| 亚洲校园激情| 亚洲欧洲一区二区在线播放| 国产视频一区在线| 国产日韩精品一区二区三区在线| 欧美国产日韩xxxxx| 久久综合给合久久狠狠色| 午夜精品久久久久久久白皮肤 | 中国亚洲黄色| 亚洲图片你懂的| 亚洲免费视频中文字幕| 国产欧美一二三区| 亚洲黄色小视频| 99精品国产一区二区青青牛奶| 日韩亚洲成人av在线| 99国产精品国产精品毛片| 一区二区高清在线| 性8sex亚洲区入口| 免费成人高清在线视频| 亚洲区欧美区| 亚洲与欧洲av电影| 久久精品亚洲精品| 欧美精品在线网站| 国产伦精品一区二区三区免费迷 | 欧美经典一区二区| 欧美视频在线看| 国产一区二区三区在线观看免费| 伊人久久亚洲影院| 亚洲一区二区三区在线播放| 日韩一区二区福利| 久久国产精品第一页| 欧美成人精品一区二区三区| 亚洲精品久久视频| 久久人人爽人人爽| 欧美亚韩一区| 影音先锋中文字幕一区| 欧美fxxxxxx另类| 欧美精品www| 伊人久久亚洲美女图片| 亚洲一区在线免费| 亚洲国产精品一区二区第一页| 亚洲综合第一| 欧美日韩国产精品专区| 亚洲欧洲日本专区| 久久一区中文字幕| 欧美影院成人| 国产毛片一区二区| 亚洲线精品一区二区三区八戒| 欧美国产成人精品| 久久婷婷色综合| 狠狠色狠狠色综合日日小说| 亚洲一区二区三区国产| 亚洲免费成人av电影| 欧美激情91| 亚洲精品一区二区三区不| 在线播放亚洲一区| 麻豆精品一区二区综合av| 欧美新色视频| 免费欧美在线视频| 国产真实久久| 一区二区三区久久精品| 玖玖视频精品| 正在播放亚洲| 欧美日韩一区二区在线观看视频| 国产欧美日韩视频一区二区| 亚洲电影网站| 国产精品99久久久久久有的能看| 欧美成人日韩| 欧美伊久线香蕉线新在线| 国产午夜精品福利| 午夜视频在线观看一区二区三区| 另类激情亚洲| 亚洲一级在线观看| 香蕉乱码成人久久天堂爱免费| 免费在线看成人av| 久久精品国产第一区二区三区最新章节 | 久久久噜噜噜久久| 欧美人与性动交cc0o| 亚洲第一伊人| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产精品久久9| 亚洲精品日韩欧美| 麻豆精品视频在线| 久久av免费一区| 国产视频亚洲精品| 欧美一级在线播放| 午夜亚洲福利在线老司机| 国产一区二区三区高清播放| 久久久久久久久久久一区| 美女视频黄免费的久久| 亚洲三级电影全部在线观看高清| 亚洲美女视频在线免费观看| 国产精品www网站| 亚洲高清久久网| 亚洲欧美日韩一区在线观看| 亚洲第一福利在线观看| 久久久欧美一区二区| 久久婷婷影院| 在线日韩日本国产亚洲| 亚洲精品免费一二三区| 欧美日韩高清免费| 欧美中文字幕视频| 久久久久久亚洲综合影院红桃 | 欧美成人高清| 国产欧美不卡| 久久久99免费视频| 欧美激情网友自拍| 亚洲在线免费| 免费观看一区| 国产精品户外野外| 亚洲欧美日韩精品一区二区| 亚洲激情一区| 一区电影在线观看| 国产情侣久久| 亚洲人成毛片在线播放| 国产精品视频区| 欧美国产91| 国产精品中文字幕欧美| 亚洲成人资源| 国产日韩在线看片| 日韩一级精品视频在线观看| 久久精品国产2020观看福利| 一本色道久久88综合亚洲精品ⅰ| 午夜精品久久久久久久99樱桃| 一区二区三区免费看| 欧美综合二区| 欧美在线观看一区| 欧美日韩成人在线视频| 欧美成年人视频网站| 欧美视频一区在线观看| 亚洲欧洲精品一区二区精品久久久 | 国产丝袜一区二区三区| av成人福利| 在线观看欧美日韩国产| 欧美一区2区三区4区公司二百| 亚洲免费电影在线观看| 欧美国产国产综合| 欧美电影免费观看高清完整版| 激情综合色丁香一区二区| 亚洲视频一区| 欧美一级午夜免费电影| 欧美日韩免费观看一区| 99人久久精品视频最新地址| 亚洲精品系列| 欧美国产精品| 羞羞漫画18久久大片| 国产精品白丝jk黑袜喷水| 久久久水蜜桃av免费网站| 国产精品自在欧美一区| 午夜精品久久久久| 欧美一区二区视频在线| 国产亚洲欧洲997久久综合| 亚洲影音先锋| 久久精品成人| 一区在线观看| 亚洲精品国精品久久99热一| 欧美一区二区三区在线观看| 久久久激情视频| 国产亚洲第一区| 久久这里只有| 亚洲国产精品久久久| 亚洲视频网在线直播| 最近中文字幕mv在线一区二区三区四区| 伊人精品视频| 午夜久久影院| 亚洲国产高清一区二区三区| 欧美精品电影在线| 亚洲人成在线影院| 在线一区二区三区四区| 欧美视频手机在线| 中国av一区| 久久久国产成人精品| 影音先锋亚洲视频| 欧美激情bt| 久久一区二区三区av| 亚洲日韩中文字幕在线播放| 国产精品入口| 欧美一区二区三区的| 亚洲人www| 亚洲综合精品| 亚洲激情在线观看| 国产美女精品| 欧美主播一区二区三区| 韩国成人福利片在线播放| 国产日韩欧美在线播放| 欧美亚洲在线播放| 亚洲国产欧美久久| 欧美制服第一页| 亚洲美女毛片| 夜夜爽99久久国产综合精品女不卡| 国产精品丝袜91| 亚洲欧美中文另类| 亚洲国产精品成人一区二区| 欧美性理论片在线观看片免费| 欧美一区二区三区在线观看| 亚洲视频一区在线| 欧美成人精品| 久久五月婷婷丁香社区| 好男人免费精品视频| 国产伦精品一区二区三区免费|