pykd/samples/um/createfile.py
2017-11-16 17:33:14 +04:00

45 lines
1.2 KiB
Python

import pykd
GENERIC_READ = 0x80000000
GENERIC_WRITE = 0x40000000
NULL = 0
CREATE_ALWAYS = 2
FILE_ATTRIBUTE_NORMAL = 0x80
def main():
kernel32 = pykd.module("kernel32")
HANDLE = pykd.typeInfo("Void*")
LPCWSTR = pykd.typeInfo("WChar*")
DWORD = pykd.typeInfo("UInt4B")
LPSECURITY_ATTRIBUTES = pykd.typeInfo("Void*")
CreateFileW_Type = pykd.defineFunction(HANDLE, pykd.callingConvention.NearStd)
CreateFileW_Type.append("lpFileName", LPCWSTR )
CreateFileW_Type.append("dwDesiredAccess", DWORD )
CreateFileW_Type.append("dwShareMode", DWORD )
CreateFileW_Type.append("lpSecurityAttributes", LPSECURITY_ATTRIBUTES )
CreateFileW_Type.append("dwCreationDisposition", DWORD )
CreateFileW_Type.append("dwFlagsAndAttributes", DWORD )
CreateFileW_Type.append("hTemplateFile", HANDLE )
CreateFileW = pykd.typedVar( CreateFileW_Type, kernel32.CreateFileW )
fileHandle = CreateFileW(
"C:\\temp\\testfile.txt",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL )
print "File Handle", hex(fileHandle)
if __name__ == "__main__":
main()