随笔分类 -  OS/内核

上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
WINDOWS LINUX DOS
摘要:Selection.MoveRight Unit:=wdCharacter, Count:=3, Extend:=wdExtend For x = 1 To 20 Selection.Cells.Merge Selection.MoveDown Unit:=wdLine, Count:=1 Selection.MoveRight Unit:=wdCharacter, Count:=3, Extend:=wdExtend Next 阅读全文
posted @ 2011-08-30 09:54 ahuo 阅读(373) 评论(0) 推荐(0)
摘要:#define PASSIVE_LEVEL 0 // Passive release level#define LOW_LEVEL 0 // Lowest interrupt level#define APC_LEVEL 1 // APC interrupt level#define DISPATCH_LEVEL 2 // Dispatcher level#define CMCI_LEVEL 5 // CMCI handler level#define PROFILE_LEVEL 27 // timer used for profiling.#define CLOCK1_LEVEL 28 // 阅读全文
posted @ 2011-08-10 17:29 ahuo 阅读(525) 评论(0) 推荐(0)
摘要:void GetComputerName(){ NTSTATUS status; HANDLE hRegKey; UNICODE_STRING RegPath; OBJECT_ATTRIBUTES attributes; PKEY_VALUE_PARTIAL_INFORMATION pValInfo; RtlInitUnicodeString(&RegPath, L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\ComputerName\\ComputerName" ); InitializeObj 阅读全文
posted @ 2011-08-10 14:23 ahuo 阅读(449) 评论(0) 推荐(0)
摘要:User Access ControlUAC是VISTA的一个新特性。UAC权限为USER权限,登陆用户集成了UAC的权限。程序在访问受保护资源时提示用户是否需要提高权限并进行该操作。这使得VISTA的安全性比以往Windows版本都要高。UAC编程通过以下步骤提供应用程序权限:在项目中添加Manifest文件,默认为“appname.manifest”编辑requestedExecutionLevel节点的level属性。uiAccess:应用程序是否需要更高的权限执行requestedExecutionLevel的level属性值:requireAdministrator:需要管理员权限。 阅读全文
posted @ 2011-07-27 16:45 ahuo 阅读(616) 评论(0) 推荐(0)
摘要:转换库WoW64子系统是一个轻量级的compatibility layer, 在所有版本的windows上都拥有同样的接口. 它的主要目的是用来创建32-bit环境, 为了让32位的应用程序可以不经过任何修改就运行在64-bit的系统上, 它提供了必须的接口.技术上说, WOW64是由三个DLL实现的.Wow64.dll是Windows NT kernel的核心接口, 在32位和64位调用之间进行转换, 包括指针和调用栈的操控.Wow64win.dll 为32位应用程序提供合适的入口指针.Wow64cpu.dll负责将处理器在32位和64位的模式之间转换.注册表和文件系统 WOW子系统也会处理 阅读全文
posted @ 2011-07-21 16:01 ahuo 阅读(360) 评论(0) 推荐(0)
摘要:"C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\signtool.exe"签名工具是一个命令行工具的数字签名的文件,验证文件和时间戳文件中的签名。 签名工具将自动安装的 Visual Studio 中。 要启动工具,请使用 Visual Studio 命令提示符。 签名工具具有以下常规语法: signtool [command] [options] [file_name | ...] 参数 参数 说明 command 四个命令之一 ( catdb、 sign、 Timestamp,或 Verify) 阅读全文
posted @ 2011-07-21 11:48 ahuo 阅读(2008) 评论(0) 推荐(0)
摘要:创建脚本debug.batcall C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\Remote Debugger\x86\msvsmon.exe" /noauth /anyuser /silent创建服务sc create runsys binpath= "cmd /k start c:\debug.bat" type= own type= interact完成后机器不用登录都可以调试了 阅读全文
posted @ 2011-07-07 17:43 ahuo 阅读(294) 评论(0) 推荐(0)
摘要:Windows Research KernelWRK目录列表模块目录模块功能cache\cache managerconfig\registry implementationdbgk\user-mode debugger supportex\executive functions (kernel heap, synchronization, time)fsrtl\file system run-time supportio\I/O managerke\scheduler, CPU management, low-level synchronizationlpc\local procedure 阅读全文
posted @ 2011-05-29 22:44 ahuo 阅读(8738) 评论(0) 推荐(0)
摘要:.dml_startkd> .dml_startAnalyze last eventBrowse process informationBrowse core commandsBrowse extension chainBrowse dot commandskd> .help /D a*A B C D E F G H I J K L M N O P Q R S T U V W X Y Z All. commands matching a*: .allow_bp_ba_convert [0|1] - Control bp/bm/bu breakpoints to use hardwa 阅读全文
posted @ 2011-04-15 13:56 ahuo 阅读(391) 评论(0) 推荐(0)
摘要:!devnode \DEVICE\{A4F74E3A-7A5D-4BFA-8B76-AC26F16DE201}Dumping IopRootDeviceNode (= 0x81ebdce0)DevNode 0x81ebdce0 for PDO 0x81ebde18 Parent 0000000000 Sibling 0000000000 Child 0x81ebd840 InstancePath is "HTREE\ROOT\0" State = DeviceNodeStarted (0x308) Previous State = DeviceNodeEnumerateCo 阅读全文
posted @ 2011-04-10 20:58 ahuo 阅读(900) 评论(2) 推荐(0)
摘要:NTSTATUS ntStatus = STATUS_SUCCESS; PDEVICE_OBJECT DeviceObject = NULL; PFILE_OBJECT FileObject = NULL; ntStatus = IoGetDeviceObjectPointer(pObjectName,FILE_ALL_ACCESS,&FileObject,&DeviceObject); if(!NT_SUCCESS(ntStatus)) { KdPrint(("IoGetDeviceObjectPointer Failed,ntStatus = 0x%08lX\n& 阅读全文
posted @ 2011-04-10 15:16 ahuo 阅读(458) 评论(0) 推荐(0)
摘要:1.什么是Access TokenAccess Token用来标识一个用户,其中包括用户的SID和用户所属组的SID,还包括这个用户和所属用户组的所拥有的权限列表。当用户输入用户名和密码登陆到Windows之后,Windows会创建一个Acess Token,用来标识这个用户。在这个用户下创建的进程都将得到一份这个Access Token的备份。当进程需要访问一个可以加密的对象(如文件,事件等)时,windows利用这个Access Token来跟对象的Security Descriptor进行比较,以确认这个进程是否有权限来访问这个对象。(关于SID和Security Descriptor请 阅读全文
posted @ 2011-03-27 23:12 ahuo 阅读(730) 评论(0) 推荐(0)
摘要:1,一个session中可以拥有多个winstation,一个winstation必然属于某个session,且无法更换。2,所有winstation的函数,包括OpenWindowStation,CreateWindowStation,EnumWindowStations等等,均仅限于调用Process的primary token的session。3,一个process仅对应一个session,也即其primary token的session。更简单的方法是ProcessIdToSessionId。当然也可以通过查询primary token的方法获得。一个process的thread可以拥 阅读全文
posted @ 2011-03-27 23:10 ahuo 阅读(797) 评论(0) 推荐(0)
摘要:#include<stdio.h>#include<assert.h>#include<windows.h>#defineLOCK_READ0#defineLOCK_WRITE1classrwlock{public:rwlock();~rwlock();public:voidlock(intdirect);voidunlock(intdirect);voidlock_exclusive(void);voidunlock_exclusive(void);voidwrlock(){lock(LOCK_WRITE);}voidwrunlock(){unlock(L 阅读全文
posted @ 2011-03-27 23:00 ahuo 阅读(391) 评论(0) 推荐(0)
摘要:HANDLE hToken;TOKEN_PRIVILEGES tkp;OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken);tkp.PrivilegeCount=1;tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);AdjustTokenPrivileges(hToken,FALSE,& 阅读全文
posted @ 2011-03-27 22:58 ahuo 阅读(429) 评论(0) 推荐(0)
摘要:1、对于CJK(多字节编码)的环境(泰文,日文,韩文,中文),CP_ACP与CP_OEMCP没有区别。2、对于非 CJK(单字节编码)的环境这两个代码页不同1)对应的实际代码页不同,例如English-US的环境,ACP对应1252,OEMCP而437。2)一个字节能表示的数值范围是(0-255),对于小于128的编码,437和1252对应的字符是一样的。3)对于大于128的编码,是不一样的,有可能有些OEM字符(大于128的编码)在437中不存在,有些ASCII(大于128的编码)字符在1252中不存在。4)相同的编码,对应的字符有可能不同。5)同理,相同的字符对应的编码有可能不同。3、wi 阅读全文
posted @ 2011-03-27 22:49 ahuo 阅读(1790) 评论(0) 推荐(0)
摘要:rem exe文件签名signtool.exe sign /s "My" /n "Beijing Cybervision Co., Ltd" /t "http://timestamp.verisign.com/scripts/timstamp.dll" "files\ClientSetup.exe"rem ################################rem 对sys文件进行签名 一定要先签名,再生产cat文件,顺序不能变remsigntool.exe sign /ac "MSCV-VS 阅读全文
posted @ 2011-03-17 10:28 ahuo 阅读(1023) 评论(0) 推荐(0)
摘要:typedef BOOL (CALLBACK * PWTSQueryUserToken)(ULONG SessionId, PHANDLE phToken);BOOL DSCreateProcess(DWORD flags, DWORD session, LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreation 阅读全文
posted @ 2011-03-04 13:03 ahuo 阅读(790) 评论(0) 推荐(0)
摘要:OSVERSIONINFOEX osif = {0}; osif.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); ::GetVersionEx((OSVERSIONINFO*)&osif); if (osif.dwMajorVersion == 6) //vista or 2008 { HANDLE hProcess = GetCurrentProcess(); HANDLE hToken = 0; if (OpenProcessToken(hProcess,TOKEN_ALL_ACCESS , &hToken)) { DWORD 阅读全文
posted @ 2011-03-04 11:33 ahuo 阅读(280) 评论(0) 推荐(0)
摘要:条件断点(condition breakpoint)的是指在上面3种基本断点停下来后,执行一些自定义的判断。 在基本断点命令后加上自定义调试命令,可以让调试器在断点触发停下来后,执行调试器命令。每个命令之间用分号分割。语法格式如:0:000&gt;bpAddress"j(Condition)'OptionalCommands';'gc'"0:000&gt;bpAddress".if(Condition){OptionalCommands}.else{gc}"这两条是等价的.当然.if{}.else{}更好理 阅读全文
posted @ 2011-02-12 14:03 ahuo 阅读(857) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 ··· 10 下一页