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

S.l.e!ep.¢%

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

How to Get Full Path In SYS

Posted on 2009-10-29 12:13 S.l.e!ep.¢% 閱讀(319) 評論(0)  編輯 收藏 引用 所屬分類: RootKit
[轉載]如何在驅動程序(SYS)中得到當前進程的完整路徑和進程名?
2009-02-09 13:07

首先利用PsGetCurrentProcess或IoGetCurrentProcess函數得到當前進程的句柄,這個句柄是指向_EPROCESS結構的指針,_EPROCESS的結構如下:

typedef struct _EPROCESS
{
KPROCESS Pcb;
NTSTATUS ExitStatus;
KEVENT LockEvent;
DWORD LockCount;
QWORD CreateTime;
QWORD ExitTime;
PVOID LockOwner;
DWORD UniqueProcessId;
QWORD ActiveProcessLinks;
DWORD QuotaPeakPoolUsage [2]; // NP, P
DWORD QuotaPoolUsage [2]; // NP, P
DWORD PagefileUsage;
DWORD CommitCharge;
DWORD PeakPagefileUsage;
DWORD PeakVirtualSize;
QWORD VirtualSize;
DWORD Vm [12];
DWORD LastProtoPteFault;
DWORD DebugPort;
DWORD ExceptionPort;
DWORD ObjectTable;
DWORD Token;
DWORD WorkingSetLock [8];
DWORD WorkingSetPage;
BOOLEAN ProcessOutswapEnabled;
BOOLEAN ProcessOutswapped;
BOOLEAN AddressSpaceInitialized;
BOOLEAN AddressSpaceDeleted;
DWORD AddressCreationLock [9];
DWORD ForkInProgress;
DWORD VmOperation;
DWORD VmOperationEvent;
DWORD PageDirectoryPte;
QWORD LastFaultCount;
PVOID VadRoot;
DWORD VadHint;
DWORD CloneRoot;
DWORD NumberOfPrivatePages;
DWORD NumberOfLockedPages;
WORD w184;
BOOLEAN ExitProcessCalled;
BOOLEAN CreateProcessReported;
HANDLE SectionHandle;
struct _PEB *Peb; // offset 0x1B0
PVOID SectionBaseAddress;
PVOID QuotaBlock;
NTSTATUS LastThreadExitStatus;
PROCESS_WS_WATCH_INFORMATION WorkingSetWatch;
DWORD InheritedFromUniqueProcessId;
ACCESS_MASK GrantedAccess;
DWORD DefaultHardErrorProcessing;
DWORD LdtInformation;
DWORD VadFreeHint;
DWORD VdmObjects;
KMUTANT ProcessMutant;
BYTE ImageFileName [16]; // offset 0x1FC
DWORD VmTrimFaultValue [2];
PVOID Win32Process;
DWORD d1F8;
DWORD d1FC;
}
EPROCESS,
* PEPROCESS,
**PPEPROCESS;

從上面這個結構可以看出,進程名稱就是ImageFileName,只要用_EPROCESS的基地址加上偏移地址0x1FC就可以得到進程名稱的地址,代碼如下:

char *ProcessName = (char*)PsGetCurrentProcess() + 0x1FC;
KdPrint((“Current Process Name: %s\n”, ProcessName));

要得到完整路徑還需要利用_EPROCESS結構中的_PEB結構指針來得到ProcessParameters的地址。ProcessParameters保存著進程的完整路徑。可以通過DDK附帶的WinDbg工具打開一個可執行程序,然后用!peb命令來顯示_PEB的結構信息。如下所示:

———————————————————————————————————————
> !peb
Debugger extension library [F:\WINNT\system32\ntsdexts] loaded
PEB at 7FFDF000
InheritedAddressSpace: No
ReadImageFileExecOptions: No
BeingDebugged: Yes
ImageBaseAddress: 00400000
Ldr.Initialized: Yes
Ldr.InInitializationOrderModuleList: 131f88 . 132998
Ldr.InLoadOrderModuleList: 131ee0 . 132988
Ldr.InMemoryOrderModuleList: 131ee8 . 132990
00400000 D:\NtSysInfo.exe
77F80000 F:\WINNT\System32\ntdll.dll
77E60000 F:\WINNT\system32\KERNEL32.dll
77DF0000 F:\WINNT\system32\USER32.dll
77F40000 F:\WINNT\system32\GDI32.DLL
76AF0000 F:\WINNT\system32\comdlg32.dll
70BD0000 F:\WINNT\system32\SHLWAPI.DLL
77D90000 F:\WINNT\system32\ADVAPI32.dll
77D20000 F:\WINNT\system32\RPCRT4.DLL
71700000 F:\WINNT\system32\COMCTL32.DLL
77560000 F:\WINNT\system32\SHELL32.DLL
78000000 F:\WINNT\system32\MSVCRT.DLL
777C0000 F:\WINNT\System32\WINSPOOL.DRV
SubSystemData: 0
ProcessHeap: 130000
ProcessParameters: 20000
WindowTitle: 'D:\NtSysInfo.exe'
ImageFile: 'D:\NtSysInfo.exe'
CommandLine: '"D:\NtSysInfo.exe" '
DllPath: 'D:\;.;F:\WINNT\System32;F:\WINNT\system;F:\WINNT;F:\WINNT\system32;F:\WINNT;F:\WINNT\System32\Wbem;J:\WINDOWS;J:\WINDOWS\COMMAND;E:\WINDOWS\SYSTEM\WBEM;J:\WINDOWS;J:\WINDOWS\COMMAND;E:\WINDOWS\SYSTEM\WBEM;J:\WINDOWS;J:\WINDOWS\
COMMAND'
Environment: 0x10000


從WinDbg輸出的PEB結構信息可以看出ProcessParameters的地址為0x20000,ImageFile字段就是進程的完整路徑。那么PorcessParamters的地址又保存在_PEB結構的什么地方呢?_PEB結構的基地址為0x7ffdf000,通過WinDbg的“db 0x7ffdf000” 命令顯示0x7ffdf000地址的信息可以發現ProcessParameters的地址保存在_PEB結構的0x10偏移量處,內容為0x20000。
繼續用“db 0x20000”命令顯示ProcessParameters地址的內容,偏移量為0x3C處保存完整路徑的地址,0x3C處的內容如果是:0x20670,利用“db 0x20670”即可顯示出完整路徑。完整路徑用UNICODE格式保存。
我們利用程序模擬上面的步驟則可以得到當前進程的完整路徑,代碼如下:

PCWSTR GetCurrentProcessFileName()
{
DWORD dwAddress = (DWORD)PsGetCurrentProcess();
if(dwAddress == 0 || dwAddress == 0xFFFFFFFF)
return NULL;
dwAddress += 0x1B0;
if((dwAddress = *(DWORD*)dwAddress) == 0) return 0;
dwAddress += 0x10;
if((dwAddress = *(DWORD*)dwAddress) == 0) return 0;
dwAddress += 0x3C;
if((dwAddress = *(DWORD*)dwAddress) == 0) return 0;
KdPrint((“Current Process Full Path Name: %ws\n”, (PCWSTR)dwAddress));
return (PCWSTR)dwAddress;
}

Windows NT與Windows 2000的_EPROCESS結構略有不同,所以偏移地址也不相同,故此上面的程序不能正常運行于Windows NT。要想在Windows NT下獲得進程名和完整路徑可以用類似的方法得出正確的偏移地址,進而編寫出正確的程序。

如果想得到關于如何在Windows 9x的驅動程序(VXD)中得到當前進程的進程名和完整路徑或者其他更多知識,可以訪問費爾安全實驗室的網站:http://www.xfilt.com。


類別:內核 | 添加到搜藏 | 瀏覽(428) | 評論?(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>
            亚洲成色999久久网站| 欧美女人交a| 亚洲国产精品一区二区www在线| 亚洲一区二区在线| 亚洲无人区一区| 午夜精品福利一区二区三区av| 午夜日韩在线观看| 久久五月天婷婷| 亚洲国产精品va在看黑人| 亚洲免费观看| 性刺激综合网| 欧美国产一区二区| 国产精品视频在线观看| 1769国内精品视频在线播放| 亚洲最新色图| 小处雏高清一区二区三区| 快射av在线播放一区| 亚洲毛片播放| 欧美一区二区在线看| 欧美刺激午夜性久久久久久久| 欧美午夜国产| 亚洲国产精品久久久久| 亚洲欧美综合| 91久久黄色| 久久福利资源站| 国产精品扒开腿做爽爽爽软件| 一区精品在线| 欧美亚洲视频在线观看| 亚洲欧洲在线免费| 久久精品在线| 国产麻豆午夜三级精品| 亚洲精品久久久蜜桃| 久久国产99| 一区二区国产在线观看| 老司机aⅴ在线精品导航| 国产免费亚洲高清| 日韩一级精品| 欧美国产精品v| 欧美一区二区免费观在线| 欧美视频一区二区| 亚洲最新在线视频| 亚洲国产精品尤物yw在线观看| 久久久成人网| 狠狠色香婷婷久久亚洲精品| 性色一区二区| 亚洲桃色在线一区| 久久躁狠狠躁夜夜爽| 亚洲欧美一区二区在线观看| 欧美日韩在线观看视频| 亚洲精品日韩激情在线电影| 美腿丝袜亚洲色图| 久久国产精品亚洲va麻豆| 国产欧美另类| 久久久久久久综合| 欧美在线视频二区| 国产综合色产在线精品| 久久久精品午夜少妇| 欧美亚洲一区三区| 国产主播精品| 老色批av在线精品| 久久伊人一区二区| 亚洲国产影院| 日韩一级片网址| 国产精品久久网站| 久久激情五月婷婷| 久久免费少妇高潮久久精品99| 国产午夜久久久久| 欧美11—12娇小xxxx| 欧美电影在线| 亚洲一二三区在线| 午夜欧美大片免费观看| 好吊成人免视频| 亚洲国产精品久久久久秋霞蜜臀| 欧美国产精品一区| 亚洲主播在线播放| 久久国产欧美日韩精品| 亚洲欧洲午夜| 亚洲午夜一区二区三区| 韩日欧美一区二区| 日韩午夜在线电影| 国产性做久久久久久| 亚洲国产经典视频| 国产精品地址| 欧美成人午夜激情| 欧美午夜视频在线| 免费看av成人| 欧美日韩综合久久| 免费观看成人网| 国产精品啊啊啊| 欧美成人久久| 国产精品三级久久久久久电影| 久久夜色精品国产欧美乱极品| 欧美精品久久久久久久免费观看| 欧美一区二区成人| 欧美国产综合| 久久全球大尺度高清视频| 欧美日本网站| 男人的天堂成人在线| 国产精品区免费视频| 亚洲第一黄色网| 国产日产欧产精品推荐色| 亚洲茄子视频| 亚洲福利小视频| 亚洲欧美日韩一区在线| 亚洲美女精品久久| 久久爱www久久做| 亚洲永久在线观看| 欧美96在线丨欧| 久久免费国产精品| 国产精品视频你懂的| 亚洲一区亚洲| 欧美精品激情在线| 欧美成人一区二区三区| 国产欧美精品va在线观看| 最新亚洲电影| 91久久精品国产91久久性色| 欧美一区二区三区在线看 | 亚洲国产精品久久久久秋霞影院 | 狠狠干综合网| 亚洲欧美一区二区三区久久| 在线亚洲欧美| 欧美区一区二| 91久久黄色| 亚洲看片免费| 欧美精品一区二区三区很污很色的| 久久国内精品自在自线400部| 国产精品久久久久久久午夜| 日韩一级在线观看| 在线中文字幕一区| 欧美激情综合亚洲一二区| 欧美二区在线| 亚洲激情成人在线| 男女激情视频一区| 亚洲高清一区二区三区| 亚洲三级免费| 欧美日韩伦理在线免费| 亚洲精品综合精品自拍| 在线亚洲精品| 国产精品青草久久| 欧美一区观看| 欧美gay视频| 亚洲激情一区二区| 欧美成人精品在线观看| 亚洲人成7777| 午夜影院日韩| 国产亚洲精品久久久| 久久精品理论片| 亚洲电影在线观看| 亚洲少妇自拍| 国产欧美日本在线| 久久久水蜜桃| 亚洲精品免费一二三区| 午夜精品一区二区三区电影天堂 | 欧美高清在线精品一区| 亚洲精品免费观看| 亚洲综合色视频| 国外成人免费视频| 欧美成人第一页| 亚洲小视频在线| 久久一二三四| 亚洲视频电影在线| 国产亚洲精品自拍| 美日韩免费视频| 宅男在线国产精品| 免费日韩av| 亚洲欧美日韩视频一区| 国内精品视频一区| 欧美精品一区在线| 欧美亚洲一区二区在线| 亚洲国产视频直播| 久久国产直播| 国产精品爱久久久久久久| 午夜视频久久久久久| 亚洲国产一区二区a毛片| 欧美一区观看| 亚洲最新合集| 国内外成人免费激情在线视频| 欧美激情视频一区二区三区免费| 亚洲综合色激情五月| 亚洲国产mv| 久热这里只精品99re8久| 亚洲一二三区视频在线观看| 在线精品国产成人综合| 国产精品久久久久久妇女6080| 免费成人毛片| 久久se精品一区精品二区| 宅男噜噜噜66一区二区| 亚洲国产高清高潮精品美女| 欧美一区二区日韩一区二区| 亚洲区在线播放| 狠狠色丁香婷综合久久| 国产美女一区| 国产精品久久久久久亚洲调教| 欧美国产专区| 欧美成人黑人xx视频免费观看| 久久精品国产第一区二区三区最新章节| 亚洲精品国产精品国自产观看| 蜜桃精品久久久久久久免费影院| 久久精品国产一区二区三| 亚洲欧美在线一区二区|