mirror of
https://github.com/qilingframework/qiling.git
synced 2026-10-11 21:39:59 +00:00
@@ -25,6 +25,15 @@ def hook_FlsFree(ql: Qiling, address: int, params):
|
||||
def hook_FlsGetValue(ql: Qiling, address: int, params):
|
||||
return ql.os.fiber_manager.get(params['dwFlsIndex'])
|
||||
|
||||
# LPVOID FlsGetValue2(
|
||||
# DWORD dwFlsIndex
|
||||
# );
|
||||
@winsdkapi(cc=STDCALL, params={
|
||||
'dwFlsIndex' : DWORD
|
||||
})
|
||||
def hook_FlsGetValue2(ql: Qiling, address: int, params):
|
||||
return ql.os.fiber_manager.get_noerr(params['dwFlsIndex'])
|
||||
|
||||
# BOOL FlsSetValue(
|
||||
# DWORD dwFlsIndex
|
||||
# PVOID lpFlsData
|
||||
|
||||
@@ -112,3 +112,10 @@ class FiberManager:
|
||||
return 0
|
||||
|
||||
return self.fibers[idx].data
|
||||
|
||||
# equivalent to get, but does not set errors; used for FlsGetValue2
|
||||
def get_noerr(self, idx: int) -> int:
|
||||
if idx not in self.fibers:
|
||||
return 0
|
||||
|
||||
return self.fibers[idx].data
|
||||
|
||||
Reference in New Issue
Block a user