fix up
This commit is contained in:
@@ -85,6 +85,9 @@ struct InternetHandleInfo {
|
||||
size_t currentPosition;
|
||||
};
|
||||
|
||||
// 添加文件句柄信息前向声明
|
||||
struct FileHandleInfo;
|
||||
|
||||
class Sandbox {
|
||||
friend class cFixImprot; // 声明cFixImprot为友元类
|
||||
public:
|
||||
@@ -252,6 +255,13 @@ class Sandbox {
|
||||
// 注册COM相关API
|
||||
void RegisterComApis();
|
||||
|
||||
// 文件句柄管理相关方法
|
||||
auto GenerateFileHandle() -> uint64_t;
|
||||
auto GetFileHandleInfo(uint64_t handle) -> FileHandleInfo*;
|
||||
|
||||
// 文件句柄表
|
||||
static std::map<uint64_t, FileHandleInfo*> m_fileHandles;
|
||||
|
||||
private:
|
||||
std::shared_ptr<BasicPeInfo> m_peInfo;
|
||||
std::pair<uint64_t, std::shared_ptr<moudle_import>> m_lastImpRead;
|
||||
@@ -461,4 +471,14 @@ auto Api_TlsFree(void* sandbox, uc_engine* uc, uint64_t address) -> void;
|
||||
auto Api_FlsAlloc(void* sandbox, uc_engine* uc, uint64_t address) -> void;
|
||||
auto Api_FlsGetValue(void* sandbox, uc_engine* uc, uint64_t address) -> void;
|
||||
auto Api__initterm_e(void* sandbox, uc_engine* uc, uint64_t address) -> void;
|
||||
auto Api_getenv(void* sandbox, uc_engine* uc, uint64_t address) -> void;
|
||||
auto Api_getenv(void* sandbox, uc_engine* uc, uint64_t address) -> void;
|
||||
auto Api_GetStringTypeW(void* sandbox, uc_engine* uc, uint64_t address) -> void;
|
||||
auto Api_CreateDirectoryW(void* sandbox, uc_engine* uc, uint64_t address) -> void;
|
||||
auto Api_LCMapStringW(void* sandbox, uc_engine* uc, uint64_t address) -> void;
|
||||
auto Api_LCMapStringEx(void* sandbox, uc_engine* uc, uint64_t address) -> void;
|
||||
|
||||
// 文件API函数声明
|
||||
auto Api_ReadFileA(void* sandbox, uc_engine* uc, uint64_t address) -> void;
|
||||
auto Api_ReadFileW(void* sandbox, uc_engine* uc, uint64_t address) -> void;
|
||||
auto Api_ReadFile(void* sandbox, uc_engine* uc, uint64_t address, bool isWideChar) -> void;
|
||||
auto Api_CloseFile(void* sandbox, uc_engine* uc, uint64_t address) -> void;
|
||||
Reference in New Issue
Block a user