ÿØÿà JFIF H H ÿÛ C GIF89;
| System: Linux host57.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 Current Path : /opt/cpanel/ea-wappspector/src/Matchers/ |
| Current File : //opt/cpanel/ea-wappspector/src/Matchers/DotNet.php |
<?php
namespace Plesk\Wappspector\Matchers;
use League\Flysystem\Filesystem;
use League\Flysystem\FilesystemException;
use League\Flysystem\StorageAttributes;
use Plesk\Wappspector\MatchResult\DotNet as MatchResult;
use Plesk\Wappspector\MatchResult\EmptyMatchResult;
use Plesk\Wappspector\MatchResult\MatchResultInterface;
class DotNet implements MatcherInterface
{
use UpLevelMatcherTrait;
private const HEX_SIGNATURE = '4d5a';
/**
* @throws FilesystemException
*/
public function doMatch(Filesystem $fs, string $path): MatchResultInterface
{
foreach ($fs->listContents($path) as $item) {
/** @var StorageAttributes $item */
if (!$item->isFile() || !str_ends_with($item->path(), '.dll')) {
continue;
}
$handle = $fs->readStream($item->path());
$hex = bin2hex(fread($handle, 4));
if (str_contains($hex, self::HEX_SIGNATURE)) {
return new MatchResult($path);
}
}
return new EmptyMatchResult();
}
}