- 博客(20)
- 资源 (11)
- 收藏
- 关注
原创 KeePass源代码分析3
KeePass源代码分析3----KeePass文件格式 KeePass文件格式由文件头部和数据部分组成。由于文件存储涉及到密码安全方面的东西,所以硬盘存储的是KeePass文件经过加密后的文件数据。总体上KeePass的文件格式组织方式如下: KeeP
2009-12-29 17:39:00 4116
原创 KeePass源代码分析2
KeePass源代码分析2---基于插件的架构 KeePass是一个基于插件机制的绿色开源软件,也就是所有的KeePass插件不用像操作系统注册就直接可以使用,这就避免了污染了系统注册表。我们这节来分析KeePass的机制实现机制。首先确定已经下载了KeePass源代码,并且已经编译成功了。打开KeePass项目工程,可以看到一下的目录结构:
2009-12-26 17:01:00 5956 1
原创 KeePass源代码分析1
KeePass源代码分析1---编译KeePass最近,在SourceForge.net上下了一个安全方面的源代码KeePass,KeePass是一个可靠的密码管理工具,能够十分安全的管理自己的密码,而且还是免费和开源的。KeePass是用vc++编写的,源代码地址:http://sourceforge
2009-12-25 17:50:00 5150
原创 IsBadReadPtr函数
该函数用来检查进程是否有权限访问指定的内存块。 The IsBadReadPtr function verifies that the calling process has read access to the specified range of memory.BOOL IsBadReadPtr( const VOID* lp, UINT_PTR ucb);
2009-12-24 11:45:00 12376
原创 secureZeroMemory和ZeroMerory的区别
secureZeroMemory和ZeroMerory的区别 根据MSDN上,ZeryMerory在当缓冲区的字符串超出生命周期的时候,会被编译器优化,从而缓冲区的内容会被恶意软件捕捉到。引起软件安全问题,特别是对于密码这些比较敏感的信息而说。而SecureZeroMemory则不会引发此问题,保证缓冲区的内容会被正确的清零。如果涉及到比较敏感的内容,尽量使用SecureZero
2009-12-23 11:57:00 7639
原创 c文件操作,兼容多字节和unicode
在头文件里,有这么一组操作文件的宏 #define _tfdopen _wfdopen #define _tfsopen _wfsopen #define _tfopen _wfopen #define _tfopen_s _wfopen_s #define _tfreopen
2009-12-23 11:07:00 1186
转载 数字签名
数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。 数字签名不是指将你的签名扫描成数字图像,或者用触摸板获取的签名,更不是你的落款。 数字签名了的文件的完整性是很容易验证的(不需要骑缝章,骑缝签名,也不需要笔迹专家),而且数字签名
2009-12-22 17:21:00 690
转载 pack关键字的使用
pack #pragma pack([n]) 该指令指定结构和联合成员的紧凑对齐。而一个完整的转换单元的结构和联合 的紧凑对齐由/Zp选项设置。紧凑对齐用pace编译指示在数据说明层设置。该编译指示在其出现后的第一个结构或联合说明处生效。该编译指示对定义无效。当你使用#pragma pack(n
2009-12-22 11:37:00 1159
转载 __declspec(novtable) 的用法
__declspec(novtable) 的用法 __declspec(novtable) 在C++中接口中广泛应用. 不容易看到它是因为在很多地方它都被定义成为了宏. 比如说ATL活动模板库中的ATL_NO_VTABLE, 其实就是__declspec(novtable). __declspec(novtable) 就是让类不要有虚函数表以及对虚函数表的初始化代码,
2009-12-22 10:20:00 734
原创 keePass---基于插件的密码管理器
最近在研究KeePass的源代码,老外的大牛果然不同凡响,令人恐怖的宏到处都是。令我等菜鸟心服口服。不用我说,这个源代码确实有许多值得学习的地方,首先这是一个基于插件机制的程序。也就是只要按照它定义的规范就可以根据自己的需要为KeePass编写插件。这是不是很炫啊。记得我刚接触到vs studio开发环境时,装了源代码管理器插件。然后就可以直接在vs studio中使用源代码管理,这个功
2009-12-21 17:59:00 3828 4
原创 BASE64编码和解码
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3,转换之后通过一个BASE64的码表就可以得到BASE64编码。如果字符串不是3的倍数的话,转换时字节不足的地方用‘=’代替
2009-12-21 12:00:00 973
转载 (转)wxWindows一些网文
转)wxWindows一些网文 1# 大 中 小 发表于 2005-4-26 20:57 只看该作者 (转)wxWindows一些网文最近看了Borland C++BuilderX的报道,发现这次的版本使用的是wxWindows做为FrameWork。十分惊讶,因为我在一年以前就使用wxWindows了。不过在当时,包括最近有关它的国内报道还是很少。 wxWindows是一个C++的扩展
2009-12-19 10:44:00 1298
原创 调整了日志格式
今天调整了日志格式,看了filezilla开源ftp客户端,以后花些时间好好研究其源代码,提高自己的编程水平。filezilla是采用wxwigdet库作为界面库,wxwiget也是一个开源且免费的跨平台界面库,实现类似MFC,很好很其强大。另外一个安全软件KeePass也十分不错,其架构和加密解密算法值得好好研究。
2009-12-18 18:20:00 704
原创 VC 打开资源管理器
直接调用shell命令:ShellExecute(NULL,"explore", "C://", NULL, NULL, SW_SHOW);
2009-12-17 17:05:00 5816 1
原创 tinyXML问题
tinyXML是个优秀解析Xml文件的组件,今天使用时,发现正确的解析xml文件中的中文,原因是因为tinyXML是使用UTF-8编码,而我们使用的中文编码是GB2312,解决的方法是把xml文件中的编码改为GB2312,如下所示:
2009-12-08 18:33:00 720
原创 设置控件的背景颜色。
设置控件的背景颜色,主要是针对对话框程序而言。方法是处理WM_CTLCOLOR消息,然后返回一个画刷即可。注意该画刷只能供系统使用,所以应该独立的设置一个变量。 改变静态文本的背景颜色和其他的控件还不一样,主要方法是: HBRUSH KDialogPage7::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ H
2009-12-08 18:28:00 1152
原创 终于把代码重写完了
这几天忙着重写,因为以前写的时候没有规划好,写的有点乱,自己看不下去了。而且代码量也不大,于是开始重构,花了3天时间,终于都搞定了。心里长叹一口气,现在看起来舒服多了。 以后无论写什么代码,代码量多少,最重要的还是要规划好,做好设计,然后然后再开始写。这样写出的代码才利于维护,易于扩展。做什么事情都应该留条后路,也就是说要易于扩展。虽然未来不可预见,但是多考虑些东西还是比较好的。
2009-12-08 18:22:00 714
原创 定义的枚举莫名其妙的编译错误
最近郁闷了,定义的枚举类型明明是正确,可是老是编译错误,出现error C2143号错误,莫名其妙,弄了好久,终于找到原因了,原来是枚举常量已经定义过了 ,例如, typedef enum tagTest { TEST_VALUE_ONE, TEST_VALUE_TWO }Test; 如果TEST_VALUE_ONE已经
2009-12-06 22:05:00 1589
原创 从今天开始写开发日志了
从今天开始写开发日志了,从今天开始写开发日志了,从小做起,善于总结,记录开发中的点点滴滴。努力工作,快乐生活。做一个快乐的程序员。:)
2009-12-02 19:28:00 907
毕业设计 (公交查询系统)
2009-03-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人