我需要在C驱动器中打开一个文本文件,并且代码在驱动器D中。 有没有办法读取该文件?
(我最近开始进行汇编编程,所以我不知道我是否应该在这里写任何其他信息._。)
我使用Windows 10 x 64和nasm
但是现在我正在尝试使用ollydbg查找exe文件数据访问权限,我知道它们位于另一个驱动器上,搜索mov eax,3
并没有帮助:)
答案 0 :(得分:2)
要获取文件句柄,应使用CreateFile
(不推荐使用OpenFile
)。
除了名称之外,它还可以OPEN_EXISTING
个文件。
Windows支持绝对路径,驱动器号是绝对路径的一部分,因此打开C:\path\to\file
将始终打开C:
驱动器中的文件,无论您的可执行文件位置如何。
实际上,Dos devices names可以更改,而Volume names
却不会,但是在这种情况下,这太过分了。
一旦有了文件句柄,就可以ReadFile
或CreateFileMapping
。
前者比较容易。
要为您的应用程序增加动态性,您可以使用FindFirstFile
和类似的功能来搜索文件。
完成后,请记住'CloseHandle`。