
操作系统
文章平均质量分 81
woshinia
这个作者很懒,什么都没留下…
展开
-
instsrv.exe srvany.exe用法
instsrv.exe——来自Windows 2000 Resource Kits的一个小工具 微软官方对该小工具的说明:Installs and uninstalls executable services and assigns names to them.转载 2011-09-14 09:46:45 · 10199 阅读 · 2 评论 -
SSDT HOOK驱动开发(2):进程保护
SSDT HOOK进程保护挂钩ZwTerminateProcess函数,不过这个函数仅有两个参数,其中一个是进程句柄,它指定了需要被结束的进程。#include typedef struct ServiceDescriptorEntry { unsigned int *ServiceTableBase; //指向系统服务程转载 2013-01-29 13:52:16 · 1825 阅读 · 2 评论 -
在NT中直接访问物理内存
我们知道,在NT/2K/XP中,操作系统利用虚拟内存管理技术来维护地址空间映像,每个进程分配一个4GB的虚拟地址空间。运行在用户态的应用程序,不能直接访问物理内存地址;而运行在核心态的驱动程序,能将虚拟地址空间映射为物理地址空间,从而访问物理内存地址。如果要在应用程序中以物理地址方式访问内存,自然而然的办法,是编写一个专用的驱动程序(如大家熟悉的WinIO),里面设置一定的IOCTL码,应转载 2013-04-02 10:10:20 · 1206 阅读 · 0 评论 -
linux常用命令大全
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpui转载 2013-04-03 15:50:38 · 790 阅读 · 0 评论 -
性能调优攻略
关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法。本文的东西是我的一些经验和知识,并不一定全对,希望大家指正和补充。在开始这篇文章之前,大家可以移步去看一下酷壳以前发表的《代码优化概要》,这篇文章基本上告诉你——要进行优化,先得找到性能瓶颈转载 2013-08-23 16:46:26 · 1065 阅读 · 0 评论 -
HOOK API
一个简单的console工程,vc6,vc7在win2k pro,server上调试通过.#include #include #include #pragma comment(lib,"dbghelp.lib")#pragma comment(lib,"user32.lib")typedef int (__stdcall *old_messagebo转载 2013-08-14 15:57:05 · 1162 阅读 · 0 评论 -
Hook API 2
封装CAPIHook类:(某本书的笔记) 1)HOOK所有模块HOOK一个进程对某个API的调用时,不仅要修改主模块的导入表,还必须遍历此进程的所有模块,替换掉每个对目标API的调用:void CAPIHook::ReplaceIATEntryInOneMod(LPSTR pszExportMod, PROC pfnCurrent,转载 2013-08-14 17:14:06 · 1121 阅读 · 0 评论 -
Hook API 3
什么是HOOK API: Windows下暴露的对开发人员的接口叫做应用程序编程接口,就是我们常说的API。我们在写应用层应用程序软件的时候都是通过调用各种API来实现的。有些时候,我们需要监控其他程序调用的API,也就是,当其他应用程序调用我们感兴趣的API的时候,我们在他调用前有一个机会做自己的处理,这就是HOOK API的涵义。 思路:转载 2013-08-14 17:20:18 · 1053 阅读 · 0 评论 -
利用hook api屏幕取词
/************************************************************************** HookApi.C Hook and restore window api code in 32 BIT system code. Hook : Let application转载 2013-08-14 18:14:45 · 2041 阅读 · 1 评论 -
How compiler works
How compiler works is not easy to explain in one sentence. The best way is to use an example.A compiler is a computer program that transforms source code written in a high-level programming lang转载 2013-11-15 10:19:13 · 908 阅读 · 0 评论 -
Windows Route 路由表命令
Windows Route 路由表命令在本地 IP 路由表中显示和修改条目。语法 route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]参数 -f 清除所有不是主路由(网掩码为 255.255.255.255 的路由)、环回网络路转载 2013-11-21 11:24:23 · 20965 阅读 · 0 评论 -
SSDT HOOK驱动开发(1):进程隐藏
Windows 系统给我们的开发人员提供了几种列出系统中所有的进程、模块、与驱动程序的方法,最常见的也是最常用的方法就是调用系统 API:CreateToolHelp32Snapshot、EnumProcess、EnumProcessModules等,他们会调用 ZwQuerySystemInformation,ZwQuerySystemInformation会调用KiSystemService切转载 2013-01-29 13:53:07 · 1633 阅读 · 1 评论 -
windows下取得系统常用信息方法
Windows2000/XP内含的任务管理器(Taskmgr)相信大家都熟悉吧,相比之下XP里的要比2000功能更加强大,返回的信息也更加的详细,不过您是否觉得还有很多希望获得的消息没有包含在里面吗?您是否觉得Windows的系统管理工具箱里的东西太分散了吗?下面就让我们看看它们的开发原理,并动手实现一个真正的任务管理器。现在我们是调用Win32API来实现这些功能的,但是大家都说MS隐藏了太多的转载 2012-10-29 17:08:08 · 1668 阅读 · 0 评论 -
Windows内存原理与内存管理
WIndows为每个进程分配了4GB的虚拟地址空间,让每个进程都认为自己拥有4GB的内存空间,4GB怎么来的? 32位 CPU可以取地址的空间为2的32次方,就是4GB(正如16位CPU有20根寻址线所有拥有2的20次方的寻址空间一样)当我们在Windows中双击一个应用程序图标后,系统为该应用程序创建一个进程,Windows使得每个进程都拥有2GB的地址空间,这2GB地址空间用于程序存放代码转载 2011-11-30 10:05:59 · 672 阅读 · 0 评论 -
WINDOWS的内存管理【虚拟内存管理】
基本概念【摘录】 每个进程都被赋予它自己的虚拟地址空间。对于32位进程来说,这个地址空间是4GB,因为32位指针可以拥有从0x000000000至0xFFFFFFFF之间的任何一个值。这使得一个指针能够拥有4 294 967 296个值中的一个值,它覆盖了一个进程的4GB虚拟空间的范围。这是相当大的一个范围。由于每个进程可以接收它自己的私有的地址空间,因此当进程中的一个线程正在运行转载 2011-11-30 10:02:59 · 2070 阅读 · 0 评论 -
全面介绍Windows内存管理机制及C++内存分配实例之虚拟内存(2)
· 虚拟内存的关键之处虚拟内存存在的优点是,需要的时候才真正分配内存。那么程序必须决定何时才提交内存。如果访问没有提交内存的数据结构,系统会产生访问违规的错误。提交的最好方法是,当你程序需要访问虚拟内存的数据结构时,假设它已经是分配内存的,然后异常处理可能出现的错误。对于访问违规的错误,就提交这个地址的内存。· 释放可以释放整个保留的空间,或者只释放分配转载 2011-11-30 10:03:31 · 1218 阅读 · 0 评论 -
全面介绍Windows内存管理机制及C++内存分配实例之虚拟内存(4)
第一,分配进程虚拟空间:VirtualAlloc (PVOID 开始地址,SIZE_T 大小,DWORD 类型,DWORD 保护属性)“开始地址”可以是NULL,由系统分配进程空间;“类型”是MEM_RESERVE|MEM_PHYSICAL;“保护属性”只能是PAGE_READWRITE。MEM_PHYSICAL指的是区域将受物理存储器的支持。第二,你要计算出分配的页面数目Pa转载 2011-11-30 10:05:33 · 671 阅读 · 0 评论 -
全面介绍Windows内存管理机制及C++内存分配实例之虚拟内存(3)
第一,分配进程虚拟空间:VirtualAlloc (PVOID 开始地址,SIZE_T 大小,DWORD 类型,DWORD 保护属性)“开始地址”可以是NULL,由系统分配进程空间;“类型”是MEM_RESERVE|MEM_PHYSICAL;“保护属性”只能是PAGE_READWRITE。MEM_PHYSICAL指的是区域将受物理存储器的支持。第二,你要计算出分配的页面数目Pa转载 2011-11-30 10:03:59 · 829 阅读 · 0 评论 -
5种方法解除开机密码
方法一在开机时,按下F8进入”带命令提示符的安全”模式输入”NET USER+用户名+123456/ADD”可把某用户的密码强行设置为”123456″方法二如用户忘记登入密码可按下列方法解决1.在计算机启动时按〔F8〕及选〔Safe Mode With Command Prompt〕2.选〔Administrator〕后便会跳出〔Command Prompt〕的窗口3.用〔Ne转载 2012-04-05 07:54:58 · 858 阅读 · 0 评论 -
windows vista下交互式服务编程
Windows Vista 对快速用户切换,用户账户权限,以及服务程序所运行的会话空间都作了很大的改动,致使一些原本可以工作的程序不再能够正常工作了,我们不得不进行一些改进以跟上 Vista 的步伐。我们的软件在Windows NT/2000/XP/Vista 系统中安装了一个系统服务,这个服务负责以 SYSTEM 权限启动我们的主程序。我们的主程序启动后会在系统托盘添加一个图标,点击此图转载 2012-08-09 17:04:19 · 951 阅读 · 0 评论 -
在服务中用管理员权限创建一个进程
HANDLE hToken; HDESK hdesk; HWINSTA hwinsta; PROCESS_INFORMATION pi; PSID psid; STARTUPINFO si; // // obtain an access token for the user fester // if (!LogonUser(转载 2012-08-09 18:05:15 · 2792 阅读 · 0 评论 -
在服务中用管理员权限创建一个可弹出UI的进程
do {// if (!OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hThisToken ))// {// PrintfDbgStr(TEXT("OpenProcessToken error !error code:%d\n"),GetLastError());// bSuccess原创 2012-08-10 10:40:13 · 9506 阅读 · 21 评论 -
windows下进程间通信
windows下进程间通信的手段有哪些? 收藏摘 要 随着人们对应用程序的要求越来越高,单进程应用在许多场合已不能满足人们的要求。编写多进程/多线程程序成为现代程序设计的一个重要特点,在多进程程序设计中,进程间的通信是不可避免的。Microsoft Win32 API提供了多种进程间通信的方法,全面地阐述了这些方法的特点,并加以比较和分析,希望能给读者选择通信方法提供参考。关键转载 2012-08-30 12:41:28 · 2341 阅读 · 0 评论 -
内存地址空间布局
在多任务操作系统中的每一个进程都运行在一个属于它自己的内存沙盘中。这个沙盘就是虚拟地址空间(virtual address space)。1 32位虚拟内存布局在32位模式下虚拟地址空间总是一个4GB的内存地址块。这些虚拟地址通过页表(page table)映射到物理内存,页表由操作系统维护并被处理器引用。每一个进程拥有一套属于它自己的页表,但是还有一个隐情。只要虚拟地址被使用,那转载 2014-12-04 11:58:18 · 14544 阅读 · 1 评论