PHP实现office中宏的提取

本文介绍了一段使用PHP代码实现调用外部工具(OfficeMalScanner)来检查文件安全性的代码示例。代码中定义了文件路径、类型和工具路径,并根据不同文件类型执行相应的扫描操作。此外,还提供了对文件夹内特定文件的进一步处理,以排除不相关文件并显示包含宏的文件内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其实是通过调用外部工具实现,外部工具为 OfficeMalScanner下载地址

php代码如下:

<?php
$path = "e:\\php\\malware.xls"; 	//待判断文件位置
$type = "bin"; 						//bin为常见二进制格式,xml为xml格式
$officescanner = "e:\\officemalscanner\\officemalscanner.exe"; //officemalscanner.exe 所在路径
if($type == "bin") {
	exec("$officescanner $path info");		//常见二进制格式文件
}
else {
	exec("$officescanner $path scan brute");//xml格式的文件
}

$dir = "$path-macros";

if(!file_exists($dir)||!is_dir($dir)){
		echo "the file don not include macro!";
	}
else {
	$dirList=array();
	$dir=opendir($dir);
	$i=0;
	while($file=readdir($dir)){
		if($file!=='.'&&$file!=='..'){
			$dirList[$i]=$file;
			$i++;
		};
	};
	$num = $i;
	closedir($dir);

	for($i=0;$i<$num;$i++) {
		//echo $dirList[$i];
		if(preg_match('/^((?!Sheet).)*$/',$dirList[$i]) && preg_match("/^((?!ThisDocument).)*$/",$dirList[$i])) {
			//排除其他文件
			$text = "$path-macros\\$dirList[$i]";
			$result = file_get_contents($text, "r");
			echo $result; //宏内容
		}
	}
}
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值