美文网首页
有趣的ReadFile函数

有趣的ReadFile函数

作者: 奶糖豆 | 来源:发表于2017-10-10 13:36 被阅读0次

在win10以下,当调用ReadFile函数的时候,第四个参数有这么一个注释:

LPDWORD lpNumberOfBytesRead,指向一个DWORD类型变量的指针,用来接收读取的字节数。如果下一个参数为NULL,那么一定要传入这个参数。

但是在win10中,微软默默修补了这个问题,所以这个参数为0也不会造成dos问题了。

我们首先做错误的api调用,结果如下:

Paste_Image.png

原因:在win7 kernelbase.dll中,ReadFile函数没有对第四个参数进行严格判断,而直接对句柄hfile进行了判断,如下图:

2.png

接着在调用NtReadFile失败后,赋值一个实际读取的长度ebx,因为ebx传入了0,所以没有地址,所以直接造成了报错。(win10以下版本)

3.png

相关文章

  • 有趣的ReadFile函数

    在win10以下,当调用ReadFile函数的时候,第四个参数有这么一个注释: LPDWORD lpNumberO...

  • Lesson04

    回调函数与事件 一、函数 1.异步式readFile 2.同步式readFileSync readFile参考网页...

  • ES6 - generator 函数与异步

    Thunk 函数: 生成 fs.readFile 的 Thunk 函数: 基于 Thunk 函数的 Generat...

  • PHP实现远程文件下载到本地

    参考代码,注意设置header头部分。配合readfile函数。

  • nodejs fs 内置模块

    1. readFile 读取文件数据 语法异步读取:fs.readFile(目标文件绝对路径 , 回调函数)同步读...

  • 【PHP】readfile 文件下载

    一、函数介绍: 该函数读入一个文件并写入到输出缓冲,成功返回TRUE、失败返回FALSE readfile(fil...

  • node 内置异步函数promise化

    在学习node的过程中,有一个困惑,就是fs.readFile等node内置函数,总是以回调函数的形式,进行异步操...

  • fs.writefile

    const readFile = require('util').promisify(fs.readFile);c...

  • PHP文件操作(一) -- (学习笔记)

    PHP文件操作常见错误: 编辑错误的文件 被垃圾数据填满硬盘 意外删除文件内容 一、 readfile() 函数r...

  • node.js之fs模块

    Node.js的文件系统的Api 1、读取文件readFile函数 2、写文件 3、以追加方式写文件 4、打开文件...

网友评论

      本文标题:有趣的ReadFile函数

      本文链接:https://www.haomeiwen.com/subject/sxpvyxtx.html