Japanese English

PHP 難読化コードの復元・デコード

Wordpress 等でのPHPのマルウェア・ウィルス・改ざんコードをデコードして難読化をオンラインで解除し、
元の読みやすいコードに戻し解読できます。

※すべての難読化コードを解除できるわけではございませんのでご理解とご了承をお願いいたします。

下記のコードを難読化解除しました

<?php /* __________________________________________________ | Obfuscated by YAK Pro - Php Obfuscator 2.0.3 | | on 2023-10-31 14:25:56 | | GitHub: https://github.com/pk-fr/yakpro-po | |__________________________________________________| */ namespace Plugin\AmazonPayV2_42\Controller;use Eccube\Cont...



難読化されたPHPコード

<?php
/*   __________________________________________________
    |  Obfuscated by YAK Pro - Php Obfuscator  2.0.3   |
    |              on 2023-10-31 14:25:56              |
    |    GitHub: https://github.com/pk-fr/yakpro-po    |
    |__________________________________________________|
*/
namespace Plugin\AmazonPayV2_42\Controller;use Eccube\Controller\AbstractController;use Eccube\Repository\CustomerRepository;use Eccube\Repository\ClassCategoryRepository;use Eccube\Repository\ProductRepository;use Eccube\Repository\ProductClassRepository;use Eccube\Common\EccubeConfig;use Eccube\Service\CartService;use Eccube\Service\OrderHelper;use Eccube\Service\PurchaseFlow\PurchaseContext;use Eccube\Service\PurchaseFlow\PurchaseFlow;use Plugin\AmazonPayV2_42\Repository\ConfigRepository;use Plugin\AmazonPayV2_42\Service\AmazonOrderHelper;use Plugin\AmazonPayV2_42\Service\AmazonRequestService;use Plugin\AmazonPayV2_42\Service\AmazonIPNService;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\HttpFoundation\ParameterBag;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;class AmazonRedirectController extends AbstractController{private $sessionAmazonProfileKey = 'amazon_pay_v2.profile';private $sessionAmazonCheckoutSessionIdKey = 'amazon_pay_v2.checkout_session_id';private $sessionIsShippingRefresh = 'amazon_pay_v2.is_shipping_refresh';private $sessionAmazonLoginStateKey = 'amazon_pay_v2.amazon_login_state';protected $cartService;protected $configRepository;protected $amazonRequestService;protected $amazonIPNService;public function __construct(PurchaseFlow $cartPurchaseFlow, OrderHelper $orderHelper, CartService $cartService, CustomerRepository $customerRepository, ClassCategoryRepository $classCategoryRepository, ProductRepository $productRepository, ProductClassRepository $productClassRepository, ConfigRepository $configRepository, AmazonOrderHelper $amazonOrderHelper, AmazonRequestService $amazonRequestService, AmazonIPNService $amazonIPNService, ParameterBag $parameterBag, EccubeConfig $eccubeConfig, TokenStorageInterface $tokenStorage){goto MhIOW;IP0xd:$this->productClassRepository = $productClassRepository;goto xHuD6;ZC4Ux:$this->parameterBag = $parameterBag;goto uCkcD;KxIn1:$this->customerRepository = $customerRepository;goto mJA_u;Re7Ck:$this->amazonRequestService = $amazonRequestService;goto lm2X1;XiSHL:$this->Config = $configRepository->get();goto KJQ_W;mqTSu:$this->productRepository = $productRepository;goto IP0xd;lm2X1:$this->amazonIPNService = $amazonIPNService;goto ZC4Ux;sIEnB:$this->orderHelper = $orderHelper;goto EbtuW;EbtuW:$this->cartService = $cartService;goto KxIn1;uCkcD:$this->eccubeConfig = $eccubeConfig;goto CunWo;MhIOW:$this->purchaseFlow = $cartPurchaseFlow;goto sIEnB;xHuD6:$this->configRepository = $configRepository;goto l_jHr;l_jHr:$this->amazonOrderHelper = $amazonOrderHelper;goto Re7Ck;CunWo:$this->tokenStorage = $tokenStorage;goto XiSHL;mJA_u:$this->classCategoryRepository = $classCategoryRepository;goto mqTSu;KJQ_W:}    /**
     * @Route("/amazon_checkout_review", name="amazon_checkout_review")
     *
     * @param Request $request
     *
     * @return RedirectResponse
     */
public function amazonCheckoutReview(Request $request){goto BYEHy;zxfrf:$this->tokenStorage->setToken($token);goto z4G9h;Cf3fX:$this->entityManager->persist($Customer);goto QOPUP;sTAlp:if (!($this->isGranted('IS_AUTHENTICATED_FULLY') && $this->Config->getOrderCorrect() == $this->eccubeConfig['amazon_pay_v2']['toggle']['on'])) {goto cIuZ_;}goto rRmOW;x3VlZ:$arrFixName = $this->amazonOrderHelper->reviseName($Customer->getName01());goto yDk2T;D57lD:$kana02 = $Customer->getKana02();goto gG7FE;kiol0:if (!$revise_flg) {goto EExDn;}goto Cf3fX;EWCVX:Z7UKW:goto kiol0;oSe0v:$this->cartService->mergeFromPersistedCart();goto zFnBM;p8yPT:$kana01 = $Customer->getKana01();goto D57lD;izvEH:$Customer->setName01($arrFixName['name01'])->setName02($arrFixName['name02']);goto IAPr7;s9uYZ:if (!(!$this->isGranted('ROLE_USER') && $this->Config->getAutoLogin() == $this->eccubeConfig['amazon_pay_v2']['toggle']['on'] && ($Customer = $this->customerRepository->getNonWithdrawingCustomers(['v2_amazon_user_id' => $buyer->buyerId])))) {goto XYfyl;}goto r7J6C;uDvaB:$this->cartService->save();goto kjjae;RuryG:try {$checkoutSession = $this->amazonRequestService->getCheckoutSession($request->get('amazonCheckoutSessionId'));$buyer = $checkoutSession->buyer;} catch (\Exception $e) {return $this->redirectToRoute('shopping_error');}goto ZrY_W;zwSnm:EExDn:goto EGP1i;yDk2T:if (empty($arrFixName)) {goto fCxE5;}goto izvEH;UG4bK:KQR7u:goto uDvaB;z4G9h:$request->getSession()->migrate(true);goto oSe0v;rRmOW:$Customer = $this->getUser();goto eDVnk;kjjae:XYfyl:goto sTAlp;eDVnk:$revise_flg = false;goto Nl4t1;hjRlJ:jRArl:goto EWCVX;BYEHy:logs('amazon_pay_v2')->info('AmazonRedirect::amazonCheckoutReview start.');goto RuryG;kGhWX:$this->cartService->save();goto s9uYZ;zFnBM:foreach ($this->cartService->getCarts() as $Cart) {$this->purchaseFlow->validate($Cart, new PurchaseContext($Cart, $Customer[0]));qXef9:}goto UG4bK;Hj9wC:logs('amazon_pay_v2')->info('*** 会員情報 フリガナ補正 *** customer_id = ' . $Customer->getId());goto hjRlJ;NChrK:if (!(empty($name02) || $name02 == ' ')) {goto pz_rS;}goto x3VlZ;QOPUP:$this->entityManager->flush();goto zwSnm;MFFNU:$arrFixKana = $this->amazonOrderHelper->reviseKana($Customer->getName01(), $Customer->getName02(), $Customer->getEmail());goto sjXcD;N8AP7:logs('amazon_pay_v2')->info('*** 会員情報 名前補正 *** customer_id = ' . $Customer->getId());goto ph2tA;EGP1i:cIuZ_:goto IGwsv;Nl4t1:$name02 = $Customer->getName02();goto NChrK;M5IXS:$Customer->setKana01($arrFixKana['kana01'])->setKana02($arrFixKana['kana02']);goto WFui7;TnPmo:logs('amazon_pay_v2')->info('AmazonRedirect::index end.');goto WzzS5;nFc_r:pz_rS:goto p8yPT;ph2tA:fCxE5:goto nFc_r;sjXcD:if (empty($arrFixKana)) {goto jRArl;}goto M5IXS;IGwsv:$this->session->set($this->sessionAmazonProfileKey, serialize($buyer));goto HqLBk;hKDWt:$this->cartService->setPrimary($cartKey);goto kGhWX;r7J6C:$token = new UsernamePasswordToken($Customer[0], null, 'customer', ['ROLE_USER']);goto zxfrf;OUDg0:$this->session->set($this->sessionIsShippingRefresh, true);goto TnPmo;IAPr7:$revise_flg = true;goto N8AP7;HqLBk:$this->session->set($this->sessionAmazonCheckoutSessionIdKey, $request->get('amazonCheckoutSessionId'));goto OUDg0;WzzS5:return $this->redirectToRoute('amazon_pay_shopping', []);goto AVKyN;gG7FE:if (!((empty($kana01) || $kana01 === ' ') && (empty($kana02) || $kana02 === ' '))) {goto Z7UKW;}goto MFFNU;ZrY_W:$cartKey = $request->get('cart');goto hKDWt;WFui7:$revise_flg = true;goto Hj9wC;AVKyN:}    /**
     * @Route("/amazon_instant_payment_notifications", name="instant_payment_notifications")
     */
public function instantPaymentNotifications(Request $request){goto mWx2S;d8bby:Xv282:goto CRIrg;CRIrg:logs('amazon_pay_v2')->info('AmazonRedirect::instantPaymentNotifications end.');goto eo8iZ;eo8iZ:return new Response();goto leCI4;r8yQn:if (isset($content['Type']) && $content['Type'] == 'Notification') {goto m5tBd;}goto R2KUB;SXHYH:$this->amazonIPNService->mainProcess($arrParam);goto d8bby;mWx2S:logs('amazon_pay_v2')->info('AmazonRedirect::instantPaymentNotifications start.');goto lRs9F;FLagl:goto Xv282;goto A5VWM;ZeFuk:$arrParam = json_decode($content['Message'], true);goto SXHYH;Sb8R0:$content = json_decode($json, true);goto r8yQn;R2KUB:throw new \Exception('IPN Type Error.');goto FLagl;lRs9F:$json = $request->getContent();goto Sb8R0;A5VWM:m5tBd:goto ZeFuk;leCI4:}    /**
     * @Route("/mypage/login_with_amazon", name="login_with_amazon")
     */
public function loginWithAmazon(Request $request){goto E7n7E;pi2Gw:if (!($state !== $sessionState)) {goto tztX1;}goto I_BYW;yZJzF:$this->session->remove($this->sessionAmazonLoginStateKey);goto MGLen;Gkrga:return $this->redirectToRoute($route);goto rTrds;pnqgy:$sessionState = $this->session->get($this->sessionAmazonLoginStateKey);goto f1pIf;YyZHn:$route = 'homepage';goto OWr7F;I_BYW:$this->addError('amazon_pay_v2.front.error', 'amazon_pay_v2');goto TnlgN;E7n7E:logs('amazon_pay_v2')->info('AmazonRedirect::loginWithAmazon start.');goto YyZHn;amI5T:$state = $request->get('state');goto pnqgy;lKUc4:return $this->redirectToRoute($route);goto tzNOg;rTrds:tztX1:goto yZJzF;OWr7F:$buyerToken = $request->get('buyerToken');goto amI5T;MGLen:try {goto KO5P8;Dtvxb:$buyer = $this->amazonRequestService->getBuyer($request->get('buyerToken'));goto NbECa;JU8qW:$isLogin = $this->amazonRequestService->loginWithBuyerId($request, $buyerId);goto He2eg;moSMa:$this->addError('amazon_pay_v2.front_mypage_fail_to_login', 'amazon_pay_v2');goto mkIrd;mkIrd:$route = 'mypage_login';goto TpaId;He2eg:if ($isLogin) {goto S7EFc;}goto moSMa;NbECa:$buyerId = $buyer->buyerId;goto JU8qW;KO5P8:if ($this->isGranted('ROLE_USER')) {goto oLiFi;}goto Dtvxb;gr_Lq:oLiFi:goto E2GKk;TpaId:S7EFc:goto gr_Lq;E2GKk:} catch (\Exception $e) {goto Sm_Sh;tyw7Z:$route = 'mypage_login';goto da6j2;Sm_Sh:logs('amazon_pay_v2')->info($e->getMessage());goto swXrI;swXrI:$this->addError('amazon_pay_v2.front.error', 'amazon_pay_v2');goto tyw7Z;da6j2:}goto drL8X;IHr0w:throw new AccessDeniedHttpException('不正なアクセスです。');goto Zv_3O;drL8X:logs('amazon_pay_v2')->info('AmazonRedirect::loginWithAmazon end.');goto lKUc4;TnlgN:$route = 'mypage_login';goto Gkrga;Zv_3O:q5ozT:goto pi2Gw;f1pIf:if (!(!isset($buyerToken) || !isset($state))) {goto q5ozT;}goto IHr0w;tzNOg:}}

デコード(難読化解除)されたコード

<?php

/*   __________________________________________________
    |  Obfuscated by YAK Pro - Php Obfuscator  2.0.3   |
    |              on 2023-10-31 14:25:56              |
    |    GitHub: https://github.com/pk-fr/yakpro-po    |
    |__________________________________________________|
*/
namespace Plugin\AmazonPayV2_42\Controller;

use Eccube\Controller\AbstractController;
use Eccube\Repository\CustomerRepository;
use Eccube\Repository\ClassCategoryRepository;
use Eccube\Repository\ProductRepository;
use Eccube\Repository\ProductClassRepository;
use Eccube\Common\EccubeConfig;
use Eccube\Service\CartService;
use Eccube\Service\OrderHelper;
use Eccube\Service\PurchaseFlow\PurchaseContext;
use Eccube\Service\PurchaseFlow\PurchaseFlow;
use Plugin\AmazonPayV2_42\Repository\ConfigRepository;
use Plugin\AmazonPayV2_42\Service\AmazonOrderHelper;
use Plugin\AmazonPayV2_42\Service\AmazonRequestService;
use Plugin\AmazonPayV2_42\Service\AmazonIPNService;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\ParameterBag;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
class AmazonRedirectController extends AbstractController
{
    private $sessionAmazonProfileKey = 'amazon_pay_v2.profile';
    private $sessionAmazonCheckoutSessionIdKey = 'amazon_pay_v2.checkout_session_id';
    private $sessionIsShippingRefresh = 'amazon_pay_v2.is_shipping_refresh';
    private $sessionAmazonLoginStateKey = 'amazon_pay_v2.amazon_login_state';
    protected $cartService;
    protected $configRepository;
    protected $amazonRequestService;
    protected $amazonIPNService;
    public function __construct(PurchaseFlow $cartPurchaseFlow, OrderHelper $orderHelper, CartService $cartService, CustomerRepository $customerRepository, ClassCategoryRepository $classCategoryRepository, ProductRepository $productRepository, ProductClassRepository $productClassRepository, ConfigRepository $configRepository, AmazonOrderHelper $amazonOrderHelper, AmazonRequestService $amazonRequestService, AmazonIPNService $amazonIPNService, ParameterBag $parameterBag, EccubeConfig $eccubeConfig, TokenStorageInterface $tokenStorage)
    {
        $this->purchaseFlow = $cartPurchaseFlow;
        $this->orderHelper = $orderHelper;
        $this->cartService = $cartService;
        $this->customerRepository = $customerRepository;
        $this->classCategoryRepository = $classCategoryRepository;
        $this->productRepository = $productRepository;
        $this->productClassRepository = $productClassRepository;
        $this->configRepository = $configRepository;
        $this->amazonOrderHelper = $amazonOrderHelper;
        $this->amazonRequestService = $amazonRequestService;
        $this->amazonIPNService = $amazonIPNService;
        $this->parameterBag = $parameterBag;
        $this->eccubeConfig = $eccubeConfig;
        $this->tokenStorage = $tokenStorage;
        $this->Config = $configRepository->get();
    }
    /**
     * @Route("/amazon_checkout_review", name="amazon_checkout_review")
     *
     * @param Request $request
     *
     * @return RedirectResponse
     */
    public function amazonCheckoutReview(Request $request)
    {
        logs('amazon_pay_v2')->info('AmazonRedirect::amazonCheckoutReview start.');
        try {
            $checkoutSession = $this->amazonRequestService->getCheckoutSession($request->get('amazonCheckoutSessionId'));
            $buyer = $checkoutSession->buyer;
        } catch (\Exception $e) {
            return $this->redirectToRoute('shopping_error');
        }
        $cartKey = $request->get('cart');
        $this->cartService->setPrimary($cartKey);
        $this->cartService->save();
        if (!(!$this->isGranted('ROLE_USER') && $this->Config->getAutoLogin() == $this->eccubeConfig['amazon_pay_v2']['toggle']['on'] && ($Customer = $this->customerRepository->getNonWithdrawingCustomers(['v2_amazon_user_id' => $buyer->buyerId])))) {
            goto XYfyl;
        }
        $token = new UsernamePasswordToken($Customer[0], null, 'customer', ['ROLE_USER']);
        $this->tokenStorage->setToken($token);
        $request->getSession()->migrate(true);
        $this->cartService->mergeFromPersistedCart();
        foreach ($this->cartService->getCarts() as $Cart) {
            $this->purchaseFlow->validate($Cart, new PurchaseContext($Cart, $Customer[0]));
        }
        $this->cartService->save();
        XYfyl:
        if (!($this->isGranted('IS_AUTHENTICATED_FULLY') && $this->Config->getOrderCorrect() == $this->eccubeConfig['amazon_pay_v2']['toggle']['on'])) {
            goto cIuZ_;
        }
        $Customer = $this->getUser();
        $revise_flg = false;
        $name02 = $Customer->getName02();
        if (!(empty($name02) || $name02 == ' ')) {
            goto pz_rS;
        }
        $arrFixName = $this->amazonOrderHelper->reviseName($Customer->getName01());
        if (empty($arrFixName)) {
            goto fCxE5;
        }
        $Customer->setName01($arrFixName['name01'])->setName02($arrFixName['name02']);
        $revise_flg = true;
        logs('amazon_pay_v2')->info('*** 会員情報 名前補正 *** customer_id = ' . $Customer->getId());
        fCxE5:
        pz_rS:
        $kana01 = $Customer->getKana01();
        $kana02 = $Customer->getKana02();
        if (!((empty($kana01) || $kana01 === ' ') && (empty($kana02) || $kana02 === ' '))) {
            goto Z7UKW;
        }
        $arrFixKana = $this->amazonOrderHelper->reviseKana($Customer->getName01(), $Customer->getName02(), $Customer->getEmail());
        if (empty($arrFixKana)) {
            goto jRArl;
        }
        $Customer->setKana01($arrFixKana['kana01'])->setKana02($arrFixKana['kana02']);
        $revise_flg = true;
        logs('amazon_pay_v2')->info('*** 会員情報 フリガナ補正 *** customer_id = ' . $Customer->getId());
        jRArl:
        Z7UKW:
        if (!$revise_flg) {
            goto EExDn;
        }
        $this->entityManager->persist($Customer);
        $this->entityManager->flush();
        EExDn:
        cIuZ_:
        $this->session->set($this->sessionAmazonProfileKey, serialize($buyer));
        $this->session->set($this->sessionAmazonCheckoutSessionIdKey, $request->get('amazonCheckoutSessionId'));
        $this->session->set($this->sessionIsShippingRefresh, true);
        logs('amazon_pay_v2')->info('AmazonRedirect::index end.');
        return $this->redirectToRoute('amazon_pay_shopping', []);
    }
    /**
     * @Route("/amazon_instant_payment_notifications", name="instant_payment_notifications")
     */
    public function instantPaymentNotifications(Request $request)
    {
        logs('amazon_pay_v2')->info('AmazonRedirect::instantPaymentNotifications start.');
        $json = $request->getContent();
        $content = json_decode($json, true);
        if (isset($content['Type']) && $content['Type'] == 'Notification') {
            $arrParam = json_decode($content['Message'], true);
            $this->amazonIPNService->mainProcess($arrParam);
            Xv282:
            logs('amazon_pay_v2')->info('AmazonRedirect::instantPaymentNotifications end.');
            return new Response();
        }
        throw new \Exception('IPN Type Error.');
    }
    /**
     * @Route("/mypage/login_with_amazon", name="login_with_amazon")
     */
    public function loginWithAmazon(Request $request)
    {
        logs('amazon_pay_v2')->info('AmazonRedirect::loginWithAmazon start.');
        $route = 'homepage';
        $buyerToken = $request->get('buyerToken');
        $state = $request->get('state');
        $sessionState = $this->session->get($this->sessionAmazonLoginStateKey);
        if (!(!isset($buyerToken) || !isset($state))) {
            if (!($state !== $sessionState)) {
                $this->session->remove($this->sessionAmazonLoginStateKey);
                try {
                    if ($this->isGranted('ROLE_USER')) {
                        goto oLiFi;
                    }
                    $buyer = $this->amazonRequestService->getBuyer($request->get('buyerToken'));
                    $buyerId = $buyer->buyerId;
                    $isLogin = $this->amazonRequestService->loginWithBuyerId($request, $buyerId);
                    if ($isLogin) {
                        goto S7EFc;
                    }
                    $this->addError('amazon_pay_v2.front_mypage_fail_to_login', 'amazon_pay_v2');
                    $route = 'mypage_login';
                    S7EFc:
                    oLiFi:
                } catch (\Exception $e) {
                    logs('amazon_pay_v2')->info($e->getMessage());
                    $this->addError('amazon_pay_v2.front.error', 'amazon_pay_v2');
                    $route = 'mypage_login';
                }
                logs('amazon_pay_v2')->info('AmazonRedirect::loginWithAmazon end.');
                return $this->redirectToRoute($route);
            }
            $this->addError('amazon_pay_v2.front.error', 'amazon_pay_v2');
            $route = 'mypage_login';
            return $this->redirectToRoute($route);
        }
        throw new AccessDeniedHttpException('不正なアクセスです。');
    }
}


■【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除]

■WordPress のマルウェア駆除、セキュリティー対策 カスタマイズや修正、引っ越し・復旧のご依頼承ります

(C)2019 ワードプレス ドクター All rights reserved.