MCPcopy Create free account
hub / github.com/qilingframework/qiling / _WriteFile

Function _WriteFile

examples/sality.py:81–105  ·  view source on GitHub ↗
(ql: Qiling, address: int, params)

Source from the content-addressed store, hash-verified

79 return ret
80
81def _WriteFile(ql: Qiling, address: int, params):
82 ret = 1
83 hFile = params["hFile"]
84 lpBuffer = params["lpBuffer"]
85 nNumberOfBytesToWrite = params["nNumberOfBytesToWrite"]
86 lpNumberOfBytesWritten = params["lpNumberOfBytesWritten"]
87 #lpOverlapped = params["lpOverlapped"]
88
89 if hFile == 0xfffffff5:
90 s = ql.mem.read(lpBuffer, nNumberOfBytesToWrite)
91 ql.os.stdout.write(s)
92 ql.os.stats.log_string(s.decode())
93 ql.mem.write_ptr(lpNumberOfBytesWritten, nNumberOfBytesToWrite)
94 else:
95 f = ql.os.handle_manager.get(hFile)
96 if f is None:
97 # Invalid handle
98 ql.os.last_error = 0xffffffff
99 return 0
100 else:
101 f = f.obj
102 buffer = ql.mem.read(lpBuffer, nNumberOfBytesToWrite)
103 f.write(bytes(buffer))
104 ql.mem.write_ptr(lpNumberOfBytesWritten, nNumberOfBytesToWrite, 4)
105 return ret
106
107@winsdkapi(cc=STDCALL, params={
108 'hFile' : HANDLE,

Callers 1

hook_WriteFileFunction · 0.85

Calls 5

write_ptrMethod · 0.80
readMethod · 0.45
writeMethod · 0.45
log_stringMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected