技术
文章平均质量分 54
知易行难Rodney
知易行难,实践实践是检验真理的标准。
展开
-
Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析
转载http://www.cnblogs.com/mayswind/archive/2013/03/17/2962205.html【题外话】这是2010年参加比赛时候做的研究,当时为了实现对Word、Excel、PowerPoint文件文字内容的抽取研究了很久,由于Java有POI库,可以轻松的抽取各种Office文档,而.NET虽然有移植的NPOI,但是只实现了最核心的Exc转载 2013-07-26 15:38:37 · 8165 阅读 · 0 评论 -
Windows 7 UMS (user-mode scheduling)
UMS线程有它们自己的内核线程状态,因此对于内核是可见的,这使得多个UMS线程都可以发出阻塞的系统调用、对资源进行共享或竞争,并且有每个线程特有的状态。然而,只要两个或多个UMS线程需要在用户模式下执行工作,它们可以周期行的切换执行环境(做饭是,一个线程让出执行权给另一个线程)而无需涉及内核调度器:环境切换在用户模式下完成。从内核的角度来看,同样的内核线程仍然在运行,一切都没有发生改变。当UMS线转载 2016-02-15 18:20:53 · 1501 阅读 · 0 评论 -
WM_QUERYENDSESSION和WM_ENDSESSION
https://msdn.microsoft.com/en-us/library/windows/desktop/aa376890(v=vs.85).aspxhttps://msdn.microsoft.com/en-us/library/windows/desktop/aa376889(v=vs.85).aspx转载 http://blog.csdn.net/转载 2016-04-12 23:07:13 · 3098 阅读 · 0 评论 -
windows 卷管理API
Volume Management FunctionsThe following functions are used in volume management.FunctionDescriptionDefineDosDeviceDefines, redefines, or deletes MS-DOS device names.GetDrive翻译 2016-04-25 20:41:31 · 926 阅读 · 0 评论 -
win7 启动修复(windows错误修复) 关闭的方法
最近在做一个磁盘重启还原的功能(只还原系统盘),但是在win7发现一个问题,就是系统重启还原后,系统启动的时候会提示: win7 启动修复(windows错误修复)。而且默认选项是:启动修复(推荐),另一个选项才是: 正常启动WINDOWS。很显然我们不需要修复,只需要正常启动windows。出现这个问题的原因应该是系统启动过程中认为上次系统是突然断电关闭系统的。具体详询原因没有进一步探索,我主要原创 2016-04-20 16:07:42 · 23353 阅读 · 0 评论 -
Device Lock (windows 外设控制)
最近一直在思考,如何设计和实现一个windows 外设控制系统。在网上搜索到一个叫device lock的产品,老外开发的。感觉跟自己想做的方向是一致的,只是没想到人家已经实现的相当完善了,不过对着产品的技术实现没有研究过,抽时间对这个产品的技术和思路学习一下,先实现一个简单实用的外设控制工具。原创 2016-04-20 18:43:49 · 1492 阅读 · 0 评论 -
windows WTS 服务与桌面交互
Windows Vista 对快速用户切换,用户账户权限,以及服务程序所运行的会话空间都作了很大的改动,致使一些原本可以工作的程序不再能够正常工作了,我们不得不进行一些改进以跟上 Vista 的步伐。我们的软件在Windows NT/2000/XP/Vista 系统中安装了一个系统服务,这个服务负责以 SYSTEM 权限启动我们的主程序。我们的主程序启动后会在系统托盘添加一个图标,点击此图转载 2016-05-30 16:48:19 · 3262 阅读 · 1 评论 -
会话(session)、工作站(WindowStation)、桌面(Disktop)、窗口(window)
一个系统可以同时登录多个用户(包括远程用户登录) 一个用户拥有一个会话(远程用户被称为远程会话) 一个会话拥有多个工作站和窗口。只能拥有一个交互式工作站(Winsta0)。 一个会话拥有一系列私有的进程和模块:Csrss.exe、WinLogin.exe、win32k.sys 一个会话拥有一个私有对象名字空间(\BaseNamedObjects),私有对象名转载 2016-05-31 09:45:44 · 817 阅读 · 0 评论 -
Winlogon通知包(Winlogon Notification Package)
用Winlogon Notification Package //想捕捉WinXP用户注销,切换用户的事件,用WTSRegisterSessionNotification这个函数,原形: // BOOL WTSRegisterSessionNotification( // HWND hWnd, // DWORD dwFlags // );转载 2016-05-31 10:01:09 · 1211 阅读 · 0 评论 -
windows 用户登录和注销监控|windows session 状态改变监控
不知道大家注意到没有,Windows XP新增加了一个快速切换用户的功能。它可以让您在不注销的情况下在用户之间进行切换,而且每个用户有自己独立的配置文件和桌面。也就是说当您切换到另外 一个用户(即用另外一个账号登陆)时,以前的那个用户运行的所有程序都还是在运行的,并没有退出来。这就给我们的开发带来了新的问题。比如您的应用程序提 供的功能在多个用户同时运行时发生错误,您必须为应用程序添加代码以检转载 2016-05-31 10:18:50 · 5559 阅读 · 0 评论 -
HOW TO: 编写在 Windows XP 中支持快速用户切换的应用程序
概要快速用户切换是 Windows XP 的一个功能,允许多个用户共享同一台计算机。 每个用户有自己的配置文件(和桌面),而且您可以在不注销的情况下在用户之间进行切换。 您编写的应用程序若要支持快速用户切换,必须确保在用户会话切换时不损坏或丢失数据。 若要支持快速用户切换,您的应用程序必须将用户和应用程序数据存储在有效的位置。 此外,如果您的应用程序提供的功能在转载 2016-06-05 14:19:21 · 823 阅读 · 0 评论 -
USB固件开发
今年年初的时候,在驱动开发上发贴《在ARM7上使用D12开发U盘的详尽技术报告》(用书名号中的字符查找,可以找到)。其中详尽地介绍了我在 ARM7 上用D12开发U盘的过程,以及所涉及到的方方面面的知识。得到了一些朋友的肯定和鼓励。从中我也体会到了帮助别人的快乐。 后来忙于别的,不经常上驱动了,但偶尔看一下仍然有许多人遇到U盘开发中的各种各样的问题,心里觉得十分不快。因为看到还有转载 2016-12-21 01:46:14 · 2783 阅读 · 0 评论 -
IP Helper Functions
IP Helper FunctionsThe following functions retrieve and modify configuration settings for the TCP/IP transport on the local computer. The following categorical listing can help determine which col翻译 2017-03-17 16:27:59 · 1350 阅读 · 0 评论 -
如何判断当前进程是在32位/64位系统上运行
#include #include typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);LPFN_ISWOW64PROCESS fnIsWow64Process;BOOL IsWow64(){ BOOL bIsWow64 = FALSE; //IsWow64Pr原创 2017-09-21 10:51:18 · 702 阅读 · 0 评论 -
Win7/2008 R2核心剖析
大致上,4~5年就会有一个Major Release(主要发布),而每两年多就会有一个Release Update(发布升级) 较老的路线图 从路线图上可以看出,Windows 7和Windows Server 2008 R2都属于发布升级,而之前的Vista/Server 2008则属于主发布。不过,从下面的资料以及从后面的文章内容上看,其实更新的东西还是挺多的。Win转载 2016-02-15 17:50:59 · 2408 阅读 · 0 评论 -
使用BIOS中断和汉字库显示汉字
计算机中的字符与图形本是一回事。显示器上出现的字符也是由点组成的,这一点我们在第六章已有讲述。比如说字母A,它在屏幕上实际是如图9-2所示的一组点。图9-2 "A"的构成现在的问题就是这样一组点如何用数字表示。试想如果我们把不亮的点用0表示,把亮点用1表示,那么字母A最顶端的8个点就可以表示为"00010000",这实际上是一个8位二进制数。下面几行同样可以用几个8位二进制数表原创 2015-11-17 15:43:59 · 1336 阅读 · 1 评论 -
调用Nero SDK 刻录光盘(含代码)
http://blog.csdn.net/laibeikele/article/details/2500185 项目中有多光驱刻录的需求,但在一个进程里同时启动多个刻录任务,进程经常报异常,于是把刻录部分单独做了个控制台程序,每个光驱刻录就启动一个进程去执行刻录任务,这样就算刻录进程出错也不会影响到父进程。 以下是Nero 刻碟的类,SDK采用NeroSDK-1.08转载 2013-12-03 10:22:49 · 3198 阅读 · 3 评论 -
Bluetooth Driver Stack
Bluetooth Driver StackThe Bluetooth driver stack comprises the core portion of the support provided by Microsoft for the Bluetooth protocol. With this stack, Bluetooth-enabled devices can loca转载 2014-07-17 17:01:28 · 2555 阅读 · 0 评论 -
WFP 实现的一个简单防火墙
一个简单的防火墙《星际争霸2》虫群之心发布了,万众期待啊,可惜国内没有同步上市,屌丝们只能破解玩台版。现在星际争霸客户端2.05可用星际管家玩,但星际争霸客户端有强制升级的逻辑,新版本已经不能用星际管家玩了,网上有玩家用360去阻止星际争霸客户端升级,保留2.05版本。作为程序员,必须坚决抵制360,本着DIY精神,我使用WFP开发了个非常简单的网络防火墙,在星际争霸客户端转载 2014-07-10 12:22:32 · 12652 阅读 · 1 评论 -
Creating Export Drivers
http://msdn.microsoft.com/en-us/library/windows/hardware/ff542891(v=vs.85).aspxMicrosoft Windows drivers are typically defined as a pair of components, such as a port/miniport driver pai转载 2014-08-06 15:27:46 · 771 阅读 · 0 评论 -
windows内核通信
/***************************************************************************//*创建上下文句柄....RtlCopyMemory(Ea->EaName, TdiConnectionContext, Ea->EaNameLength + 1); /*CHAR Buffer[sizeof (FILE_FULL_EA_转载 2014-10-30 18:01:29 · 1520 阅读 · 0 评论 -
如何安装一个设备驱动程序
2010-05-28 09:41:34| 分类: Windows内核|举报|字号 订阅http://wanderwarriorhsiao.blog.hexun.com/19289171_d.html本质上,安装驱动需要依靠UpdateDriverForPlugAndPlayDevices这个函数。它需要的参数其实不多,主要是INF文件路径等。原创 2014-10-16 18:44:09 · 1005 阅读 · 0 评论 -
如何编译ipxe源代码
最近一直在研究关于windows系统引导的技术,一开始是研究TrueCrypt的Boot模块,这是一个windows本地系统引导例子,可以通过vs进行编译。后来需要研究通过网络引导windows系统的技术,所以就找到了这个开源代码iPXE。通过阅读官网提供的说明,完全可以满足我目前的需求。至于iPXE具体能够完成的功能我们以后再说,或者通过iPXE官网进行详细了解。虽然iPXE能够满足我的需求原创 2014-11-21 18:40:35 · 5827 阅读 · 0 评论 -
使用 wireshark 高效,准确地鉴别出入站的恶意流量
转载 http://shayi1983.blog.51cto.com/4681835/1598656这篇博文实际上是 http://shayi1983.blog.51cto.com/4681835/1558161的继续,讲解一些实用的数据包分析技巧,帮助安全架构师们迅速,准确地定位那些恶意的数据包;在分秒必争的安全突发事件与安全取证工作中,这些高效的方法显得原创 2015-02-12 14:08:33 · 9063 阅读 · 0 评论 -
windows内核错误处理
错误处理人总会犯错误,错误恢复是软件工程的一部分。程序中总会发生异常情况,其中一些源自程序中的Bug,或者在我们的代码中或者在调用我们代码的用户模式应用程序中。另一些涉及到系统装载或硬件的瞬间状态。无论什么原因,代码必须能对不寻常的情况作出恰当的反应。在这一节中,我将描述三种错误处理形式:状态代码、结构化异常处理,和bug check。一般,内核模式支持例程通过返回状态代码来报告意外错误。转载 2015-02-11 15:23:01 · 5904 阅读 · 0 评论 -
wireshark 数据包分析技巧总结
转载 http://shayi1983.blog.51cto.com/4681835/1558161wireshark 过滤表达式的比较运算符一览 (类 C 形式和对应的英语形式)enighish C-like 含义和实例eq == 等于 ip.src == 10转载 2015-02-12 14:12:14 · 28063 阅读 · 0 评论 -
IRP_MN_DEVICE_USAGE_NOTIFICATION
System components send this IRP to ask the drivers for a device whether the device can support aspecial file. Special files include paging files, dump files, and hibernation files. If all the driver转载 2015-02-13 10:43:14 · 1399 阅读 · 0 评论 -
引导配置数据BCD(Boot Configuration Data)
在Windows Vista里Microsoft引入了很多新的特性,其中就包括新的引导模式。 Windows 引导方式的变迁 对一台计算机来说,操作系统的启动是很关键的一个步骤,如果操作系统不能正常启动,那么计算机只能算是一堆废铁。对于目前占据了大量桌面计算机市场领域的 Microsoft Windows操作系统来说,其能否正常启动会影响所有使用Microsoft Windows转载 2015-02-13 15:26:07 · 14456 阅读 · 0 评论 -
Bitmap 多语言实现及应用
http://blog.studygolang.com/2014/09/bitmap_multi_language/工作中碰到这样一个问题:有一个文本文件,有上亿行数据,每行数据是 unsigned int。现在需要将其中可能重复的数只保留一个,同时和另外一个或多个这样的文件进行排重(即和它们做差集)。要求尽可能快的筛选出来。开始实现比较简单粗暴,将数据直接转载 2015-07-02 23:38:08 · 593 阅读 · 0 评论 -
启动指定的服务(LanmanServer)
//1、判断服务状态,如果是启动状态,直接返回;否则进行第2步//2、判断服务启动类型是否是禁用,如果是禁用,那么改为手动;修改成功进行第3步,否则返回失败;//3、启动服务;成功返回TURE,失败返回FALS;BOOL CheckService(){SERVICE_STATUS_PROCESS ssStatus; DWORD dwBytesNeeded;BOO原创 2017-11-15 14:12:42 · 8295 阅读 · 0 评论