⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cooperator.h

📁 iceSword冰刀杀木马程序
💻 H
📖 第 1 页 / 共 2 页
字号:
///////////////////////////////////////////////////////////////////
//-----------------------------------------------------------------
//                 Copyright (c) 2004 jfpan20000@sina.com
// 
//                         IceSword协件库 1.06
// 
//                           pjf    USTC
//------------------------------------------------------------------
////////////////////////////////////////////////////////////////////
#ifndef __ICE_COOPERATOR_
#define __ICE_COOPERATOR_

#pragma comment(lib, "IceSword.lib")

typedef LONG NTSTATUS;

//
////指示IsdOpenKey的RootDirectory为空
//
#define NULL_ROOT_DIR_HANDLE     ((HANDLE)0xF000000F)
//
////历史原因,将其定义为2000,其实只用到255字节
//
#define DATA_BUF_LEN                    2000

//
////IsdCreateFile可以创建与打开目录,但必须为dwFlagsAndAttributes指定FILE_FLAG_DIRECTORY标志
//
#define FILE_FLAG_DIRECTORY             0x00400000

//
////用于IsdFindFile,对应于WIN32_FIND_DATA,有一点区别
//
typedef struct _ISD_WIN32_FIND_DATA {
	DWORD         dwFileAttributes; 
	FILETIME      ftCreationTime; 
	FILETIME      ftLastAccessTime; 
	FILETIME      ftLastWriteTime; 
	LARGE_INTEGER nFileSize; 
	LARGE_INTEGER AllocationSize; 
	TCHAR         cAlternateFileName[ 14 ]; 
	TCHAR         cFileName[ DATA_BUF_LEN ]; 
} ISD_WIN32_FIND_DATA, *PISD_WIN32_FIND_DATA;

//
////用于IsdSetInformationFile/IsdQueryInformationFile
//
typedef enum _FILE_INFORMATION_CLASS {
    FileDirectoryInformation         = 1,
    FileFullDirectoryInformation,   // 2
    FileBothDirectoryInformation,   // 3
    FileBasicInformation,           // 4  wdm
    FileStandardInformation,        // 5  wdm
    FileInternalInformation,        // 6
    FileEaInformation,              // 7
    FileAccessInformation,          // 8
    FileNameInformation,            // 9
    FileRenameInformation,          // 10
    FileLinkInformation,            // 11
    FileNamesInformation,           // 12
    FileDispositionInformation,     // 13
    FilePositionInformation,        // 14 wdm
    FileFullEaInformation,          // 15
    FileModeInformation,            // 16
    FileAlignmentInformation,       // 17
    FileAllInformation,             // 18
    FileAllocationInformation,      // 19
    FileEndOfFileInformation,       // 20 wdm
    FileAlternateNameInformation,   // 21
    FileStreamInformation,          // 22
    FilePipeInformation,            // 23
    FilePipeLocalInformation,       // 24
    FilePipeRemoteInformation,      // 25
    FileMailslotQueryInformation,   // 26
    FileMailslotSetInformation,     // 27
    FileCompressionInformation,     // 28
    FileObjectIdInformation,        // 29
    FileCompletionInformation,      // 30
    FileMoveClusterInformation,     // 31
    FileQuotaInformation,           // 32
    FileReparsePointInformation,    // 33
    FileNetworkOpenInformation,     // 34
    FileAttributeTagInformation,    // 35
    FileTrackingInformation,        // 36
    FileIdBothDirectoryInformation, // 37
    FileIdFullDirectoryInformation, // 38
    FileValidDataLengthInformation, // 39
    FileShortNameInformation,       // 40
    FileMaximumInformation
} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;

//
////注册表查询操作结构
//
typedef enum _KEY_INFORMATION_CLASS {
    KeyBasicInformation,
    KeyNodeInformation,
    KeyFullInformation,
    KeyNameInformation,
    KeyCachedInformation,
    KeyFlagsInformation
} KEY_INFORMATION_CLASS;

typedef struct _KEY_BASIC_INFORMATION {
  LARGE_INTEGER LastWriteTime;
  ULONG  TitleIndex;
  ULONG  NameLength;
  WCHAR  Name[1];  //  Variable-length string
} KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION;

typedef enum _KEY_VALUE_INFORMATION_CLASS {
    KeyValueBasicInformation,
    KeyValueFullInformation,
    KeyValuePartialInformation,
    KeyValueFullInformationAlign64,
    KeyValuePartialInformationAlign64
} KEY_VALUE_INFORMATION_CLASS;

typedef struct _KEY_VALUE_BASIC_INFORMATION {
    ULONG   TitleIndex;
    ULONG   Type;
    ULONG   NameLength;
    WCHAR   Name[1];            // Variable size
} KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION;

typedef struct _KEY_VALUE_PARTIAL_INFORMATION {
	ULONG  TitleIndex;
	ULONG  Type;
	ULONG  DataLength;
	UCHAR  Data[1];  //  Variable size
} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;

typedef struct _KEY_FULL_INFORMATION {
	LARGE_INTEGER  LastWriteTime;
	ULONG  TitleIndex;
	ULONG  ClassOffset;
	ULONG  ClassLength;
	ULONG  SubKeys;
	ULONG  MaxNameLen;
	ULONG  MaxClassLen;
	ULONG  Values;
	ULONG  MaxValueNameLen;
	ULONG  MaxValueDataLen;
	WCHAR  Class[1];
} KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION;

typedef struct _KEY_VALUE_FULL_INFORMATION {
	ULONG  TitleIndex;
	ULONG  Type;
	ULONG  DataOffset;
	ULONG  DataLength;
	ULONG  NameLength;
	WCHAR  Name[1];  //  Variable size
} KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION;

//
////导出函数
//

/////////////////////////////////////////////////////////////////////
////IsdGetVersion
//
//目的:获取运行中的Icesword程序版本
//
//参数:
//  Version 
//    [out] 成功后返回版本号,如1.06版就返回0x106. 
//
//返回值:成功则返回TRUE.
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsdGetVersion(DWORD *Version);

/////////////////////////////////////////////////////////////////////
////IsdGetIceProcId
//
//目的:获取运行中的Icesword进程PID
//
//参数:无 
//
//返回值:成功则返回PID.
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) DWORD IsdGetIceProcId();

/////////////////////////////////////////////////////////////////////
////IsConnectServer
//
//目的:是否已经连接到IceSword进程
//
//参数:无 
//
//返回值:已连接则返回TRUE.
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsConnectServer();

/////////////////////////////////////////////////////////////////////
////ConnectAndCall
//
//目的:连接IceSword进程并获取初始参数
//
//参数:无 
//
//返回值:成功则返回TRUE.
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL ConnectAndCall();

/////////////////////////////////////////////////////////////////////
////IsdEnumProcesses
//
//目的:枚举进程
//
//参数:
//  lpidProcess
//    [out] 用于保存返回值的缓冲. 
//  cb
//    [in] 缓冲大小.
//  cbNeeded
//    [out] 实际返回缓冲大小.
//
//返回值:成功则返回TRUE.
//
//备注:1、它与系统PSAPI的EnumProcesses几乎一样使用,就不多说了.
//      注意因为0号Idle进程始终不变,返回值就省略了,所以进程总数
//      应该加一.
//      2、它返回的PID包含状态Deleting的进程,请用IsProcessDeleting
//      判断是不是该状态(返回TRUE则是).
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsdEnumProcesses(
                                            DWORD *lpidProcess, 
                                            DWORD cb, 
                                            DWORD *cbNeeded);

/////////////////////////////////////////////////////////////////////
////IsProcessDeleting
//
//目的:判断进程状态是否为Deleting
//
//参数:
//  Pid
//    [in] 用于保存返回值的缓冲. 
//
//返回值:是Deleting状态进程则返回TRUE.
//
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsProcessDeleting(DWORD Pid);

/////////////////////////////////////////////////////////////////////
////IsdEnumProcessModules
//
//目的:枚举进程模块
//
//参数:
//  Pid
//    [in] 进程PID
//  lphModule
//    [out] 用于保存返回值的缓冲. 
//  cb
//    [in] 缓冲大小.
//  lpcbNeeded
//    [out] 实际返回缓冲大小.
//
//返回值:成功则返回TRUE.
//
//备注:它与系统PSAPI的EnumProcessModules几乎一样使用,注意第一个参
//      数不同,这里是Pid.
/////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllimport) BOOL IsdEnumProcessModules(
                                            DWORD Pid, 
                                            HMODULE *lphModule, 
                                            DWORD cb, 
                                            LPDWORD lpcbNeeded);

/////////////////////////////////////////////////////////////////////
////IsdQueryProcessFileName
//
//目的:由进程PID获取进程文件路径名
//
//参数:
//  Pid
//    [in] 进程PID
//  FileName

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -