如何在程序集中的目录中打开文件

时间:2018-08-14 09:56:19

标签: windows assembly x86-64

我需要在C驱动器中打开一个文本文件,并且代码在驱动器D中。 有没有办法读取该文件?

(我最近开始进行汇编编程,所以我不知道我是否应该在这里写任何其他信息._。)

我使用Windows 10 x 64和nasm

但是现在我正在尝试使用ollydbg查找exe文件数据访问权限,我知道它们位于另一个驱动器上,搜索mov eax,3并没有帮助:)

1 个答案:

答案 0 :(得分:2)

要获取文件句柄,应使用CreateFile(不推荐使用OpenFile)。
除了名称之外,它还可以OPEN_EXISTING个文件。
Windows支持绝对路径,驱动器号是绝对路径的一部分,因此打开C:\path\to\file将始终打开C:驱动器中的文件,无论您的可执行文件位置如何。
实际上,Dos devices names可以更改,而Volume names却不会,但是在这种情况下,这太过分了。


一旦有了文件句柄,就可以ReadFileCreateFileMapping
前者比较容易。


要为您的应用程序增加动态性,您可以使用FindFirstFile和类似的功能来搜索文件。


完成后,请记住'CloseHandle`