qintangtao

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

2013年1月28日

摘要: 在执行一个PE文件的时候,windows 并不在一开始就将整个文件读入内存的,二十采用与内存映射文件类似的机制。也就是说,windows 装载器在装载的时候仅仅建立好虚拟地址和PE文件之间的映射关系。当且仅当真正执行到某个内存页中的指令或者访问某一页中的数据时,这个页面才会被从磁盘提交到物理内存,这种机制使文件装入的速度和文件大小没有太大的关系。但是要注意的是,系统装载可执行文件的方法又不完全等同于内存映射文件。当使用内存映射文件的时候,系统对“原著”相当忠实,如果将磁盘文件和内存映像比较的话,可以发现不管是数据本身还是数据之间的相对位置它丫丫的都是完全相同的。而我们知道,在装载可执行文件的时 阅读全文
posted @ 2013-01-28 22:11 qintangtao 阅读(3137) 评论(0) 推荐(2)

摘要: 这些函数由于设计的时候比较淳朴,并没有做任何的越界检测,主要容易"被溢出",只需要多设点检查边界,即安全。函数严重性解决方案gets最危险使用 fgets(buf, size, stdin)。这几乎总是一个大问题!strcpy很危险改为使用 strncpy。strcat很危险改为使用 strncat。sprintf很危险改为使用 snprintf,或者使用精度说明符。scanf很危险使用精度说明符,或自己进行解析。sscanf很危险使用精度说明符,或自己进行解析。fscanf很危险使用精度说明符,或自己进行解析。vfscanf很危险使用精度说明符,或自己进行解析。vspri 阅读全文
posted @ 2013-01-28 13:41 qintangtao 阅读(4443) 评论(0) 推荐(1)

摘要: 函数作用:函数wsprintf()将一系列的字符和数值输入到缓冲区。函数原型:int wsprintf( LPTSTR lpOut, LPCTSTR lpFmt,.....);参数:lpOut:指向一个缓冲区来接收格式化输出,缓冲区最大为1024个字符。lpFmt:指向一个'\0'为结束的字符串,其中包含格式控制字符。除了普通的ASCII字符,每个格式控制字符对应后边每个参数的值。...:一个或多个可选参数。参数的数量和类型取决于在lpFmt参数的对相应的格式控制字符。返回值:如果函数成功,返回值是存储在输出缓冲区的字符数,不包括终止空字符: '\0'。如果函数 阅读全文
posted @ 2013-01-28 12:29 qintangtao 阅读(652) 评论(0) 推荐(0)

摘要: 函数作用:该函数创建一个Open公共对话框,使用户指定驱动器、目录和文件名、或使用户打开文件。函数原型:BOOL GetOpenFileName(LPOPENFILENAME Ipofn);参数:Ipofn:指向包含初始化对话框的信息的一个OPENFILENAME结构。当OpenfileName函数返回时,此结构包含有关用户文件选择的信息。返回值:如果用户指定了一个文件名,点击OK按钮,返回值为非零。由 OPENFILENAME 结构的 IPstrFile 成员指向的缓冲区含有全路径和用户指定的文件名。如果用户取消或关闭 Open 对话框或错误出现,返回值为零。若想获得更多的错误信息,请调用 阅读全文
posted @ 2013-01-28 11:39 qintangtao 阅读(10025) 评论(0) 推荐(0)