O fracasuras é uma estrutura poderosa e flexível para o World of Warcraft, que permite exibir gráficos altamente personalizáveis na tela para indicar buffs, debuffs e uma série de tipos semelhantes de informação. Originalmente, era para ser um substituto leve para as auras de energia, mas agora incorpora muitos recursos que o Power Auras não, enquanto ainda permanece mais eficiente e fácil de usar.
Auras criadas podem ser exportadas e compartilhadas por toda a rede. Mas há um problema: tudo o que você recebe é uma string codificada, que é costumada ser importada no Addon de Fraques. Essa sequência codificada pode conter código personalizado que pode destruir sua experiência de jogo roubando ouro de seu personagem, enviando spam para outros jogadores, etc.
O decodificador de fracos é uma classe PHP que oferece a capacidade de converter essas cordas em um formato legível humano. É principalmente um porto do código Lua de Fraqueuras que faz literalmente o mesmo.
Exigir este pacote, com compositor, no diretório raiz do seu projeto:
$ composer require softcreatr/weakauras-decoderDecodifica uma corda de fraqueza codificada em uma matriz.
<?php
require " vendor/autoload.php " ;
use SoftCreatR WeakAuras Decoder ;
// Encoded WeakAuras string
$ encoded = ' d0JPcaGAjrTlPQETKQoTspMsnxvmBsomvDtPITPG(Mc8xPq7KuyVODtL9lj5NsLgMqzCsbxwvdvurdwsLHtQ6GcXPev4ykY5i ' .
' LwOKqxxWIfvLLlYdfvXtjwgPYZLyIIQ0uHAYumDWIKsnkjbptH8ojr2Ou0xfQ2SIA7IsFwLMLOsnnPkFxkzKsknwrLmArX4LK ' .
' 6KskUfPORjKoVc1Hevv3Ms(nK5eXu8etGsHIU(r7prXIIHIHykMTOx5hJ)Qbk1(kfQQ6IJskt(P4THn7Jt79(PoiZtn0CkgfV ' .
' nSixHykfWNaIPuqbNHsno4tZE7)eXy66kN4VV(iHKVC68M1FeuWzkN8GA1bHw3Tp6EPyqnwqbNH5JaL1TaXumOgTdfazXksXo ' .
' uaKfLCQ8JfuWzAUQVcTRXbFA2B)NteJPRRCoXFF9rcjF5C68M1Fock4mLZjUh(uEti99r3B7C3wAMR25OseiqXSLkhC2WM9P4 ' .
' vkkRHsTVsHQQU4OKYqP1AGmSzdJInkAmTt6AyymTd0QJZA2BafiT37NiMsjdQvxhLsguRUUi2WM9jqXfSWP9E)uHAmrjZV3ma ' .
' BoCq0OJ02BymT6MgeD0qoRzpTuuiVHykGx9oqhXuSckyjMabkGx9oGykwbfSetGafZopV2bfmMykwbfSetGaLK3(jMIvqblXe ' .
' iqjHupXuSckyjMabk6ZQh8Q3betXkOGLyceOSUBcf0tmfRGcwIjqGYS3gwKJykwbfSetGabkP)UihES(Nc8vdeOKLAm1t3ebs ' ;
// Perform decode
$ decoded = Decoder:: decodeAura ( $ encoded );
// Print the result
var_dump ( $ decoded [ 0 ]);Dumps Codes Lua personalizados em uma matriz.
<?php
require " vendor/autoload.php " ;
use SoftCreatR WeakAuras Decoder ;
// Encoded WeakAuras string
$ encoded = ' d0JPcaGAjrTlPQETKQoTspMsnxvmBsomvDtPITPG(Mc8xPq7KuyVODtL9lj5NsLgMqzCsbxwvdvurdwsLHtQ6GcXPev4ykY5i ' .
' LwOKqxxWIfvLLlYdfvXtjwgPYZLyIIQ0uHAYumDWIKsnkjbptH8ojr2Ou0xfQ2SIA7IsFwLMLOsnnPkFxkzKsknwrLmArX4LK ' .
' 6KskUfPORjKoVc1Hevv3Ms(nK5eXu8etGsHIU(r7prXIIHIHykMTOx5hJ)Qbk1(kfQQ6IJskt(P4THn7Jt79(PoiZtn0CkgfV ' .
' nSixHykfWNaIPuqbNHsno4tZE7)eXy66kN4VV(iHKVC68M1FeuWzkN8GA1bHw3Tp6EPyqnwqbNH5JaL1TaXumOgTdfazXksXo ' .
' uaKfLCQ8JfuWzAUQVcTRXbFA2B)NteJPRRCoXFF9rcjF5C68M1Fock4mLZjUh(uEti99r3B7C3wAMR25OseiqXSLkhC2WM9P4 ' .
' vkkRHsTVsHQQU4OKYqP1AGmSzdJInkAmTt6AyymTd0QJZA2BafiT37NiMsjdQvxhLsguRUUi2WM9jqXfSWP9E)uHAmrjZV3ma ' .
' BoCq0OJ02BymT6MgeD0qoRzpTuuiVHykGx9oqhXuSckyjMabkGx9oGykwbfSetGafZopV2bfmMykwbfSetGaLK3(jMIvqblXe ' .
' iqjHupXuSckyjMabk6ZQh8Q3betXkOGLyceOSUBcf0tmfRGcwIjqGYS3gwKJykwbfSetGabkP)UihES(Nc8vdeOKLAm1t3ebs ' ;
// Perform decode
$ decoded = Decoder:: decodeAura ( $ encoded );
$ decoded = $ decoded [ 0 ];
// "Danger keys" are used to identify custom code
$ dangerKeys = [
' custom ' , ' customDuration ' , ' customName ' ,
' customIcon ' , ' customTexture ' , ' customStacks ' ,
' translateFunc ' , ' alphaFunc ' , ' scaleFunc ' ,
' rotateFunc ' , ' colorFunc ' , ' customText '
];
// Perform some magic
$ luaCodes = [];
foreach ( $ dangerKeys as $ k ) {
$ customizations = Decoder:: dumpLuaCode ( $ decoded , $ k );
foreach ( $ customizations as $ customization ) {
$ customization [ ' value ' ] = trim ( $ customization [ ' value ' ]);
if (! empty ( $ customization [ ' value ' ])) {
$ luaCodes [] = $ customization ;
}
}
}
// Print the result
echo " Decoded string: nn" ;
var_dump ( $ decoded );
echo "nn Custom code (if there is any): nn" ;
var_dump ( $ luaCodes );Software livre, inferno, sim!