一个查找指定栈回溯符号并执行命令的Windbg脚本 2014-04-20 Debugging 这是自己没事在家调试程序的一个小需求。 有时候比如IE这样的程序,线程实在是非常的多,我想操作某个特殊线程就比较麻烦,需要先找到线程然后再实行命令,为了偷懒就写了这个脚本。 $$ If a frame of a thread has the target symbol, we e...
Windows 8.1中获得系统版本信息的方法 2014-04-13 Tips 在Windows 8.1之前的系统版本上,我们一直可以使用 GetVersionEx 这个函数来获取当前系统的MajorVersion和MinorVersion。但是当Windows系统来到8.1时代,这个API似乎就不好用了。如果在Windows 8.1上调用这个函数,我们更有...
Global Logger打开开机启动ETW日志 2014-04-05 Tips 在我看来XP确实应该寿终正寝了,因为确实在很多机制方面不如新的系统,比如ETW。而微软的XPERF也没有能在XP上直接安装的。当然,老版本的XPERF还能在XP上运行,只是监控能力有限,到了新版本的XPERF,在XP上就运行不了了。但是,XP却在中国还活的好好的,所以优化其性能必...
不显示对话框格式化磁盘的方法 2014-03-16 Tips 我们都知道格式化磁盘会弹出如下图所示的这样的一个对话框。 编写格式化磁盘的程序的时候,我们需要用到SHFormatDrive这个API,同样的,他也会弹出一个对话框。出现对话框当然是为了安全考虑,防止磁盘被用户不知情的情况下格式化,导致数据丢失。但是,某些情况下,确实希望静默的...
一个有意思的warning —— C4930 2014-03-01 Tips C4930是微软的C++编译器提示的一个警告,在维基百科中,把造成这种警告的语句描述成最让人为难的解析的语句。那么这里我们看看到底是有多么为难,这个可以帮助我们进一步了解C++和编译器。 那么首先,我最开始发现这个问题是在类似这样的代码中碰到的。 std::ifstream s(...
GUID TOOL —— 一个转换GUID格式的小工具 2014-02-23 Tips 周末闲来无事,逆向点有趣的功能的时候遇到这样一个问题。有些16进制的数貌似就是GUID,但是需要转换为注册表形式,才方便在注册表里面搜索。所以就写了个小工具转换16进制,C语言格式以及注册表格式的GUID。 usage: guid.exe <<-r|-c|-h>...
SSD TRIM功能的一些记录 2014-02-11 Tips 如今SSD越来越普及了,本来就想了解下关于SSD的一些情况,正好工作中有机会接触这一块的东西,很幸运。这里先记录一些已知知识,方便以后自己查阅。 说到SSD,第一个想到的就是读写速度快。那个就要归功于其存储原理,关于SSD存储原理的文章很多,我这里简单通俗的描述一下: SS...
一点有关Ntdll中提供的bitmap系列函数 2014-01-18 Tips 我们都知道STL中提供了一个bitset类,但是在我真正操作有关文件系统的时候,发现这个类提供的功能并不能满足我的需求。幸运的是Ntdll中提供了一套操作bitmap的API。于是我抽了点时间把这几个API总结了一下,写成了一个类。这个类只是简单的对Ntdll的bitmap相关A...
总结和展望:质量比较大点,就不容易被风吹动 2013-12-31 又到了一年一度的总结和展望。时间过得真快,2012年定计划的那会好想就发生在昨天。还能清晰的记得当时的计划,当然也是因为计划定的足够的简单。当然还是把个人的计划放在后面,先来总结下2013年的工作。这年的工作真是富有戏剧性,工作中做了一些网页前端的工作,这确实让我措手不及,不过既...
ShowIEDevTool —— 打开IE控件的开发人员工具 2013-12-07 Tips 最近在网上看到一大牛blog(http://blog.titilima.com/launch-f12-tools.html),讨论的是在内嵌的IE窗口中,打开开发人员工具。文章写的很好,而且还提供了开源的工具,实在是业界良心。于是我臭不要脸的A了部分关键代码,弄了个命令行版工具。...