November 27, 2007 – 1:33 pm
首先是内容介绍,摘自CSDN读书频道:
本书是一本介绍Windows系统上的用户态程序排错方法和技巧的书。本书分为4个章节,先介绍最重要的、通用的思考方法,以便制定排错步骤;再介绍对排错有帮助的知识点和工具;并介绍了.NET Framework(CLR)的相关知识和调试技巧;最后一章针对常见的几大类问题进行了总结。
本书案例丰富,对现实中的实际问题进行了研究,并和读者一起分析解决办法;本书的写作思路为先给出问题描述,然后提供线索,再进行分析,让读者在阅读中也进行思考,以提高实际解决问题的能力。
其次是我自己看了这部书演示用的pdf的一些感想:
用真实的案例来讲解troubleshooting和debug的步骤和过程,生动而又有深度
作者思路极为清晰,表达精准到位,能从一点点地蛛丝马迹抓起,直到起出问题根源,这种经验与技术俱佳的案例分析能让读者看完即涨大量exp,有如亲历
从debug入手来抓程序设计症结,这应该还算是国内首次有实体书出版,对于windbg的使用讲解也算是开先河了
同时适用于程序员以及系统管理员二种读者,程序员可以从中掌握一些操作系统级别的资源分配和使用原理,并通过对此的理解来使得自己代码中对于资源的使用有更加深刻的认识。而SA们也可以由此学到从系统方面剖析用户态程序的方法,从而使自己对资源的掌控能深入到应用软件层面,可以更好地维护系统的健康状况以及给应用设计提出更好地建议
跳开Windows和.net范畴,书中的很多案例的思路其实可以用于更广泛的领域,对于其他操作系统以及其他框架来说,都可以有触类旁通的感悟。
我看过其演示pdf之后,就决定着本书一定要买来一读了,而对此类知识感性趣的人,也绝对应该看一下此书。
演示章节内容链接如下:
http://www.cnblogs.com/lixiong/archive/2006/08/16/475520.html
CSDN读书频道链接:
http://book.csdn.net/bookfiles/555/
作者自己的blog文:
http://eparg.spaces.live.com/blog/cns!59BFC22C0E7E1A76!2729.entry
November 13, 2007 – 10:41 pm
具体发布日期将是明年2月27日,另外WSV正式命名为Hyper-V,根据产品定位以及是否集成Hyper-V将有8个版本,包含许可和售价罗列如下:
Windows Server 2008 Standard: $999 (with five Client Access Licenses, or CALs)
Windows Server 2008 Enterprise: $3,999 (with 25 CALs)
Windows Server 2008 Datacenter: $2,999 (per processor)
Windows Server 2008 for Itanium-based Systems: $2,999 (per processor)
Windows Web Server 2008: $469
Windows Server 2008 Standard without Hyper-V: $971 (with five CALs)
Windows Server 2008 Enterprise without Hyper-V: $3,971 (with 25 […]
October 31, 2007 – 8:39 pm
早从Vista还叫Longhorn的那段时间,不少和我一样喜欢倒腾测试版操作系统的小白们就发现了Vista/Longhorn Server的声音跑得不是那么顺畅,容易出现暴音和跳音。当初我个人就写了一篇文章大致推断了一下问题并给出了个临时可用但不怎么好用的解决方案,见这篇:http://dawnh.net/windows/127/windows-vista-sound-issue/
现在Vista都Release这么久了,Longhorn也命名为Windows Server 2008等着明年上桌了,这个问题在几次版本更新后表面上似乎给解决了,实际上还一直存在,只是没那么明显而已。
October 30, 2007 – 11:44 pm
交作业的文章,其实装系统当天就搞定这个问题了,一直懒得写,现在也懒,流水账记录之。
故障现象:Dscaler在系统升级为64位Windows 2008后不工作。
原因:Dscaler的程序所调用的64位驱动不带数字签名,而MS自从Vista开始在64位系统加载内核驱动要强制签名了。
解决方案:自己伪造签名。
过程:
1,打开系统的testsigning模式,使得非权威CA发放的签名可以使用
bcdedit /set testsigning on
2,做一个签名证书出来。
MakeCert –r –pe –ss PrivateCertStore –n CN=dawnh.net(test) dawnh.cer
3,把证书加进本机信任根CA中去。
CertMgr -add dawnh.cer -s -r localMachine root
4,给驱动签名。
Signtool sign /v /s PrivateCertStore /n dawnh.net(test) /t http://timestamp.verisign.com/scripts/timestamp.dll dsdrv4.sys
说明:
1,dsdrv4.sys就是所要签名的驱动文件名称了,Dscaler默认安装的是32位的,64位的要单独下载。
2,MakeCert.exe,CertMgr.exe和Singtool.exe在基本系统中不附带,不过Plateform SDK,.netFramework SDK,Visual Studio里面都有,拣自己方便弄得安一个就是。
3,命令中dawnh.net,dawnh都可以替换成你自己喜欢的,不过反正是fake的,你自己爱写什么写什么,如果要签其他驱动把dsdrv4.sys换成你要的文件名就是了。
4,要reboot。
5,testsigning打开后据说会影响到DRM,会使有DRM的玩意儿失效,不过我等贫民还没看见什么东西用DRM。
6,喜欢学习的好同学想知道原理自己去啃文档:
http://msdn2.microsoft.com/en-us/library/aa906247.aspx
感想:
1,打上testsigning开关后重起系统屏幕四个角会出来Test mode,上面中间会出来版本号和build。看起来很酷,不过还好不是Safe Mode XD
2,如果我自己能这么做绕过MS的签名机制,病毒不是也能嘛。那强制签名和安驱动时跳个可以被屏蔽掉的警告框也没什么区别了嘛!噢,对了,所以才给你打个Test mode的标,别怪我没提醒
3,有没有给病毒或木马发证书的CA?
October 10, 2007 – 1:35 pm
国庆朋友来上海玩,于是全程陪同。在经历了几天地狱式的轧马路扫荡后,不得不承认体力真的大不如前了。
美罗城下面大食代有个“吐司工房”,有兴趣的可以去吃吃看,但我保证你去了就会知道饭菜究竟能做难吃到什么程度…….
上海的新疆不干正事团体也丝毫不比其它城市差,亲眼所见。
feedburner全面被和谐了,虽然在下这个破blog没什么人订阅,不过也还是转回来吧,目前使用feedsky的服务,顺手响应一下当今时髦,用自己的子域名来承载feed服务,也就是http://feed.dawnh.net/了,订阅我blog的同学麻烦更新你们自己的Reader了。
国庆期间赛事不断,特奥会这个咱们就不关注了。乒乓球世界杯团体赛有惊无险。另外最终要的是WCG2007中国拿到2枚银牌。PJ的星际争霸算是历史性突破,而Sky的魔兽3没达成3连冠真是可惜了。不过国内电竞的环境和氛围真的是越来越好了。这是当年还在上学时不敢想象的。可惜现在也没有什么热情去掺和了,熬个通宵看直播比赛已经是我能做到最多的了。
Windows Server 2008出了个RC0,不知什么时候微软也开始在版本号上作文章了。前几天升级了一下,该有的问题还都有,原来没有的也还没。最令人期待的WSV竟然是只能上64位系统且必须支持VT的CPU才能跑,遗憾…….
IIS7最近曝光度十足,模块式的设计吸引了足够多的第三方来添砖加瓦,微软和Zend合作了几年终于把PHP从CGI拉扯到ISAPI又拉扯到FastCGI,从非线程安全到线程安全又回归非线程安全,此时终于基本可以开花结果了。而进一步的合作将会更加紧密,商业大腕以及自由阵营,究竟谁赢了?看看昨天刚发布的消息:http://blogs.iis.net/bills/archive/2007/10/09/microsoft-announces-interoperability-improvements-for-php-and-microsoft-technologies.aspx
Linus终于宣布2.6.23内核final了,貌似不少发行版厂商都在等这一天,http://kerneltrap.org/Linux/2.6.23_Kernel_Finally,这应该是今天的事。NetBSD前几天也在RC,有大牛放出的MySQL性能测试结果挺好看,而FreeBSD 7也在为最后的Release做准备,真是一个丰收的季节。
August 29, 2007 – 1:32 pm
这两天办公室不时有人机器中毒,结果整个内部局域网经常被ARP Poison充斥,导致网络瞬断,于是不得不想办法来实现静态IP-Mac地址绑定。然而在我用的Windows Server 2008 beta3的机器上,却碰到了一个很奇怪的问题。
在本机键入如下命令,这个IP是我局域网网关的地址,MAC为其内网网卡的MAC:
C:\Windows\system32>arp -s 10.0.0.254 00-11-d8-64-6b-bc
结果失败,错误提示为:
The ARP entry addition failed: 5
放狗搜了一下这个错误提示,发现这个提示应该为权限不足。见鬼了,明明用的是administrators组的用户,却权限不够?于是把故障嫌疑定位到UAC上去,发现无论是怎样调整,甚至关掉UAC,都还是同样的结果。同时用Process Explorer检查发现我的CMD进程有足够权限执行此项配置,这样也断定不可能是用户权限问题,简直是见鬼了。
然后就是打开安全审核,拼了命查找各项安全日志,无奈发现不了任何蛛丝马迹。回头一想,貌似命令行下的一些个命令都不生成安全审计记录的,这次彻底郁闷了。
翻着翻着资料突然看到了netsh这个工具,这玩艺是MS建议以后再命令行配置Windows网络协议栈的一个类似IOS的新工具,死马当活马医,试试看这玩艺能不能操作ARP表,简单看了一下帮助,于是弄出来这么个命令:
C:\Windows\system32>netsh -c “interface ipv4″ add neighbors 10 “10.0.0.254″ ”00-11-d8-64-6b-bc”
其中数字10为我本地网卡连接的index,这个从show interface可以看到。或者直接替换成网卡名称也可以,就是”Local Area Connection”了。
结果这个命令竟然成功了,运行之后再运行arp -a可以看到static的ARP表项已经按照预想的一样创建成功。也就是说,前面使用arp -s添加失败根本不是权限不够的原因,而是其他原因了。具体什么原因呢?我个人猜想恐怕是内核网络部分一些数据结构或者API的变更,同时arp.exe这个工具没有跟随更新导致的broken问题吧。
更诡异的在后面,虽然我目的达到了,但不小甘心又使用arp -s修改了刚添加的静态表项,结果发现竟然修改成功-_-b,然后又继续测试其他情况,发现如下结论:
1,目前ARP表中不存在对应IP的记录,可以用arp -s添加新的静态IP-Mac绑定。
2,目前ARP表中已经存在对应IP的static表项的记录,可以用arp -s修改为新的静态IP-Mac绑定。
3,目前ARP表中已经存在对应IP的dynamic表项的记录,使用arp -s添加新的静态记录时会出现错误:The ARP entry addition failed: 5
总之这个版本的Windows附带的这个arp.exe一定有问题,改天找找看有没有联系方式能否反映给MS开发部门。
前几天买了本Windows Internals第四版的中文译版,现在还在努力啃书中。因为这几年的学习成果,能力见长,对这类书还算是能看懂个七八成。粗粗看来,现在的Windows NT架构中所包含的技术比起Linux或者BSD等开源系统一点也不少,时髦得一蹋糊涂,有些设计思想甚至更为激进。如果能有幸掌握里面的主流架构和知识,也可称为宗师一级的人物了。又感叹之,反向工程也能把系统底层细节研究得如此细致,看来死读源代码也不仅仅是唯一的高效的路了。
前两天Windows漏洞爆得比较厉害,同时exploit公布的速度也很快,导致这几个月有大量中招的机器。再加上某些无良的所谓“黑客”团体有商业目的地大量种植肉鸡,搞DDOS,ARP欺骗等行为,最近可谓是乌烟瘴气了,国内的网络环境也严重到了有史以来最坏的程度。就好像满大街开得都不是车,而是浩浩荡荡的“木”马和蠕“虫”大军。
前两天接受一台疑似被入侵的Windows2003的机器,发现入侵者没有放置明显的自启动程序,后台服务,或者是网络连接后门,但却每每都能进来。后来用SRENG2检查发现有3个enum类的API被Hook了,而Hook的Dll竟然是无法找到的文件,遂知道是被放了Rootkit,由于是生产机且在机房,无法进入安全模式处理,但正常模式下因为Rootkit的自加载又隐藏了其自身的文件,无计可施。后来发现可以调出这个文件的file properties,灵机一动将其NTFS权限设置为everyone deny all,reboot后发现Rootkit的dll出来了,同时也多出了Dll加载的注册表项。最后又发现竟然还多出来了一个隐藏的administrator权限的帐户。遂想起那3个API恐怕分别是用于Hook枚举文件、注册表项、用户的。如果再Hook上File Properties的API,恐怕就没这么好办了,现在这些个玩意儿真的是越做越恐怖了。咱堂堂中国人的智慧都用在这些小聪明上了??!!
自己没有试验过 ,但这些方法应该都是证明了的可行的,个人认为修改BIOS是最可靠的方法。
January 9, 2007 – 6:14 am
小白我自从Vista放出第一个公开测试版就一直持续着安装-试用-不好用-卸载的痛苦历程,如今Vista RTM已经发布月有余了,眼见Retail就要开卖了,可以说大的架构方面肯定已经稳定有余了,于是小白我又把目标投向了明年下半年将要发布的Longhorn Server,sorry已经是今年了。前两天是在捣腾Build 6001,这个版本从Build号码来看是属于大于Vista RTM Build 6000的一个版本,假定如果微软一直宣扬的Vista和Longhorn Server共享代码库的新闻是真的得话,可以认为这个版本是已经包含了Vista RTM绝大多数要素的版本。
November 21, 2006 – 1:20 pm
前两天微软终于发布了这个东西的试用版。
简单把玩了一下,初步感觉还不错,只是有些习惯上的东西还是很难改过来的。
简单看了一下文档,发现这个玩艺的设计思想很有意思,可以说抄袭,也可以说脱胎换骨。
理念的源头来自传统Unix的shell—-简单既是美。但Unix的shell是完全的命令解释–文本处理这种流程来走的,将命令的输出文本进行有机加工,抽取有用的信息,再反馈到更多的命令使用中去,最后达到几乎是所有能想到的目的。而PowerShell将命令的返回对象化了,也就是把命令返回的结果当作对象,进而调用或输出对象另外的方法或属性。没想到Shell也能OO起来!
好处是可以得到最精确最严谨的结果,而不会因为文本块的切割联合等问题费脑筋,也不会因为漏算某些情景导致奇怪操作结果。而坏处则是把用户的问题转给了cmdlet的开发商,一个适用性强的cmdlet是要设计者付出很大的心思才能做好的。
仔细想想,这或许就是Unix哲学和Windows哲学的不同。
再仔细想想,或许此类的东西很难从开源阵营里出现,就好像我们很难说服一个程序员写的程序去使用-A作为某特定输入参数而不是-a一样。