mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-13 23:03:24 +08:00
45 lines
1.2 KiB
Python
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()
|