- 博客(9)
- 资源 (3)
- 收藏
- 关注
原创 函数开始处的MOV EDI, EDI的作用
调试程序调试到系统库函数的代码时,总会发现系统函数都是从一条MOV EDI, EDI指令开始的,紧接着这条指令下面才是标准的建立函数局部栈的代码。对系统DLL比如ntdll.dll进行反汇编,可以发现它的每个导出函数都是如此,并且每个导出函数开始处的MOV EDI, EDI上面紧接着5条NOP指令。比如在WinDbg中查看TextOutA周围的代码: 0:000> u TextOutA-0x0a
2008-12-24 21:33:00 8057 3
转载 谈谈windows程序中的字符编码
转自http://www.utf.com.cn/article/s13-1 谈谈Windows程序中的字符编码(1) 写这篇文章的起因是这么一个问题:我们在使用和安装Windows程序时,有时会看到以“2052”、“1033”这些数字为名的文件夹,这些数字似乎和字符集有关,但它们究竟是什么意思呢? 研究这个问题的同时,又会遇到其它问题。我们会谈到Windows的内部架构、Win32 API的A/W
2008-12-24 00:06:00 1221
原创 使用windows api实现任意两种字符编码的转换
用到两个函数:MultiByteToWideChar, WideCharToMultiByte。 使用这两个API实现任意两种字符编码的转换非常简单:将源字符串使用MultiByteToWideChar转换成unicode编码,再将转换后的unicode编码使用WideCharToMultiByte转换成指定的字符编码。 下面是一段演示程序: #include #includ
2008-12-19 22:54:00 4153
原创 base64编码与解码
今天考试,给出了base64编码的规则,需要编写一个程序实现base64解码(对于字符串中有中文或者其它多字节字符的,要注意他们的编码,比如对于中文字符,使用的是UTF8而不是GB2312,这一点在最后面有说明)。 base64编码规则概述: 在密码学领域里,非常多的加密想法极有创意,base64便是其中一种。虽然规则简单,但值得仔细品味欣赏。关于base64编码的细节和应用,网上能搜索到很多资料
2008-12-19 11:07:00 4448
原创 Diffie-Hellman密钥交换算法的原理及程序演示
在http://en.wikipedia.org/wiki/Diffie-Hellman上面给出了这个密钥交换协议的历史,原理,重要文献的链接,以及演示代码。它的数学基础就是离散对数这个数学难题。用它进行密钥交换的过程简述如下: 选取两个大数p和g并公开,其中p是一个素数,g是p的一个模p本原单位根(primitive root module p),所谓本原单位根就是指在模p乘法运算下,g的1次方
2008-12-19 00:15:00 14599 2
原创 一个开源的高精度运算库——gmp
全称是GNU Multiple Precision Arithmetic Library,即GNU高精度算术运算库,官方网站是:http://gmplib.org/ 它的功能非常强大,接口很简单,文档详尽,有C风格的接口也有C++的精心封装后的接口,其中不但有普通的整数、实数、浮点数的高精度运算,还有随机数生成,尤其是提供了非常完备的数论中的运算接口,比如Miller-Rabin素数测试算法,大素
2008-12-18 22:29:00 10196 3
转载 删除word中的空行
在平时上网过程中,我们经常将网页上有参考价值的文字信息复制到Word中,进行保存打印。但有时从网页复制下来的文字包含许多空行,使得页数居高不下,阅读和打印都很不方便。替换法 在用替换法之前,首先要搞清楚文章中的换行符是手动换行符(“Shift+回车”),还是段落标记。其次,还要观察文章中的空行是否有规律性,如一次空一行,还是一次空两行。弄清了这两点,我们就好操作了。笔者以文章的换行符为“段
2008-12-18 09:39:00 3175
原创 TextOutA函数与TextOutW函数
这仍然是在学习字符编码的时候引出来的。 原意是感觉字符编码既然这么普遍地存在,那么操作系统又是如何做的呢?所以想到要调试一下TextOutA函数,看看它输出文本的时候是怎样对付字符编码问题的。最后的结果是: TextOutA实际上是封装了一个另外的函数调用。TextOutA的流程大概是这个样子: BOOL TextOutA( HDC hdc, // handle to DC
2008-12-18 09:29:00 7852
原创 代码复制到VC6中时汉字出现乱码,解决方法竟然如此
非常简单,也着实令人纳闷。解决方法就是在复制代码的时候打开中文输入法。我遇到这个问题时是我的代码是在emacs中编写调试的,因为交作业的时候需要VC6编译环境,所以当把代码从emacs中拷贝到VC6中时,所有注释中的汉字都变成问号了,在网上搜索到这个方法,确实能解决问题。
2008-12-13 09:34:00 5090 3
phrame 示例代码
2009-10-31
王晓东:算法与数据结构学习指导与习题解析[1]\王晓东:算法与数据结构学习指导与习题解析.pdf
2008-10-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人