-
-
使用SetupIterateCabinet函数导出.cap文件
-
发表于:
2013-5-26 14:59
5987
-
使用SetupIterateCabinet函数导出.cap文件
#include <Windows.h>
#include <Stdio.h>
#include <Tchar.h>
#include <Setupapi.h>
#pragma comment(lib, "Setupapi.lib")
UINT CALLBACK MsgHandler(
PVOID Context,
UINT Notification,
UINT_PTR Param1,
UINT_PTR Param2
)
{
switch(Notification)
{
case SPFILENOTIFY_FILEINCABINET://在cabinet里查找每个文件,返回FILEOP_SKIP跳过它、FILEOP_DOIT导出文件
{
PFILE_IN_CABINET_INFO pFileInCabinetInfo = (PFILE_IN_CABINET_INFO)Param1;
LPTSTR pCabinetFile = (LPTSTR)Param2;
LPTSTR pDir = (LPTSTR)Context;
TCHAR szFile[MAX_PATH];
lstrcpy(szFile, pDir);
lstrcat(szFile, _T("\\"));
lstrcat(szFile, pFileInCabinetInfo->NameInCabinet);
lstrcpy(pFileInCabinetInfo->FullTargetName, szFile);//将导出的文件路径到FullTargetName里
}
return FILEOP_DOIT;
case SPFILENOTIFY_FILEEXTRACTED://从cabinet导出文件
{
PFILEPATHS pFilePathInfo = (PFILEPATHS)Param1;
}
return NO_ERROR;
default:
return NO_ERROR;
}
}
int _tmain(int argc, TCHAR *argv[])
{
CreateDirectory(_T("C:\\123"), NULL);
SetupIterateCabinet(_T("C:\\123.cap"), 0, MsgHandler, _T("C:\\123"));
return 0;
}
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法