echo094/decode-js

other: 字典的key如果是字符串 解混后不能保留引号

Closed this issue · 2 comments

Which plugin are you reporting a bug for?

obfuscator

Version of Node

v20.16.0

Input code

原始代码

// Generated by RPG Maker.
// Do not edit this file directly.
var $plugins =
[
{"name":"AltMenuScreen","status":false,"description":"","parameters":{}},
{"name":"AltSaveScreen","status":false,"description":"セーブ/ロード画面のレイアウトを変更します。","parameters":{}},
{"name":"ButtonPicture","status":false,"description":"ピクチャをクリック可能にします。","parameters":{}},
{"name":"VisualizeCollisionArea","status":false,"description":"当たり判定可視化 v1.2.0","parameters":{"IncludeEventsInCollisionArea":"false","CollisionAreaColor":"#ff0000aa","VisualizeKeyCode":"114"}},
{"name":"StateUpdate","status":false,"description":"更新可能ステート v1.1.1","parameters":{}},
{"name":"MenuCallCommonMZ","status":true,"description":"メニュー開閉の代わりにコモンイベント実装するプラグイン","parameters":{"CommonEventOpen":"1","CommonEventClose":"2","CommonEventSwitch":"100","EventMoveOk":"100"}},
{"name":"LL_StandingPicture","status":false,"description":"メッセージウィンドウ表示時に立ち絵を表示します。","parameters":{"sPictures":"[]","picture1Settings":"","transition":"1","foreFront":"false","picture2Settings":"","transition2":"1","foreFront2":"false","picture3Settings":"","transition3":"1","foreFront3":"false","picture4Settings":"","transition4":"1","foreFront4":"false","focusToneAdjust":"-96","catheBootPicture":"true"}},
{"name":"LL_VariableWindow","status":true,"description":"変数を画面にウィンドウで表示します。","parameters":{}},
{"name":"MKR_PlayerMoveForbid","status":true,"description":"(v1.0.5) プレイヤー移動禁止プラグイン","parameters":{"Default_Move_Flag":"1","Default_Menu_Flag":"false","Enter Flag":"true"}},
{"name":"MessagePosition","status":false,"description":"メッセージの位置調整プラグイン","parameters":{"x":"0","yTop":"0","yMiddle":"0","yBottom":"0","width":"0","height":"0","relative":"false","nameX":"0","nameY":"0"}}
];

ob混淆

function _0x3421(){var _0x434d10=['153702zVHUDK','LL_VariableWindow','4Xdtzoq','StateUpdate','AltSaveScreen','LL_StandingPicture','1103052Tnufzy','更新可能ステート\x20v1.1.1','メッセージの位置調整プラグイン','3219528uDbLTc','メッセージウィンドウ表示時に立ち絵を表示します。','766kDwilc','145356wtFhxT','(v1.0.5)\x20プレイヤー移動禁止プラグイン','20EePvSl','MessagePosition','true','AltMenuScreen','270XQLCJR','VisualizeCollisionArea','#ff0000aa','286lWCZQI','-96','231uRxEjD','false','197205LhGxUi','ButtonPicture','100','セーブ/ロード画面のレイアウトを変更します。','当たり判定可視化\x20v1.2.0','変数を画面にウィンドウで表示します。','3532683emsYtk','MenuCallCommonMZ'];_0x3421=function(){return _0x434d10;};return _0x3421();}function _0x1dea(_0x3d6c6d,_0x43d50c){var _0x264214=_0x3421();return _0x1dea=function(_0x14229a,_0x26aeac){_0x14229a=_0x14229a-(-0x9a2*-0x1+-0x1*-0x21a4+-0x2aaa);var _0x2a48a6=_0x264214[_0x14229a];return _0x2a48a6;},_0x1dea(_0x3d6c6d,_0x43d50c);}var _0x3f25bf=_0x1dea;(function(_0x4defc6,_0xf7d014){var _0x13ba2c=_0x1dea,_0x45316b=_0x4defc6();while(!![]){try{var _0x29515e=parseInt(_0x13ba2c(0xa9))/(-0x8c9+0x2*-0x1055+0x2974)*(-parseInt(_0x13ba2c(0xb3))/(0x181b+0xf*-0xe9+0xbf*-0xe))+parseInt(_0x13ba2c(0xb7))/(0xae1+-0x26e+-0x870)*(-parseInt(_0x13ba2c(0xa0))/(-0xb7b*0x3+0x30d+0x3*0xa78))+parseInt(_0x13ba2c(0xac))/(-0x1c3f+-0x1bd2+0x3816)*(-parseInt(_0x13ba2c(0xaa))/(-0x165c+-0x1e72+0x34d4))+-parseInt(_0x13ba2c(0x9c))/(0x409*0x6+-0x2*-0x133c+-0x175*0x2b)+-parseInt(_0x13ba2c(0xa7))/(0x1*-0x224e+0x722+0x1b34)+-parseInt(_0x13ba2c(0x9e))/(0x657+0xe78+-0x14c6)*(parseInt(_0x13ba2c(0xb0))/(0xded+0x583+0x2*-0x9b3))+-parseInt(_0x13ba2c(0xb5))/(-0x1*0x1567+0x39f+0x27*0x75)*(-parseInt(_0x13ba2c(0xa4))/(0x23af+0x15a5+-0xc*0x4c6));if(_0x29515e===_0xf7d014)break;else _0x45316b['push'](_0x45316b['shift']());}catch(_0x32691a){_0x45316b['push'](_0x45316b['shift']());}}}(_0x3421,-0x5d1d4+0xf72*-0x8e+0x12cfac));var $plugins=[{'name':_0x3f25bf(0xaf),'status':![],'description':'','parameters':{}},{'name':_0x3f25bf(0xa2),'status':![],'description':_0x3f25bf(0xba),'parameters':{}},{'name':_0x3f25bf(0xb8),'status':![],'description':'ピクチャをクリック可能にします。','parameters':{}},{'name':_0x3f25bf(0xb1),'status':![],'description':_0x3f25bf(0xbb),'parameters':{'IncludeEventsInCollisionArea':'false','CollisionAreaColor':_0x3f25bf(0xb2),'VisualizeKeyCode':'114'}},{'name':_0x3f25bf(0xa1),'status':![],'description':_0x3f25bf(0xa5),'parameters':{}},{'name':_0x3f25bf(0x9d),'status':!![],'description':'メニュー開閉の代わりにコモンイベント実装するプラグイン','parameters':{'CommonEventOpen':'1','CommonEventClose':'2','CommonEventSwitch':_0x3f25bf(0xb9),'EventMoveOk':'100'}},{'name':_0x3f25bf(0xa3),'status':![],'description':_0x3f25bf(0xa8),'parameters':{'sPictures':'[]','picture1Settings':'','transition':'1','foreFront':_0x3f25bf(0xb6),'picture2Settings':'','transition2':'1','foreFront2':_0x3f25bf(0xb6),'picture3Settings':'','transition3':'1','foreFront3':_0x3f25bf(0xb6),'picture4Settings':'','transition4':'1','foreFront4':_0x3f25bf(0xb6),'focusToneAdjust':_0x3f25bf(0xb4),'catheBootPicture':'true'}},{'name':_0x3f25bf(0x9f),'status':!![],'description':_0x3f25bf(0xbc),'parameters':{}},{'name':'MKR_PlayerMoveForbid','status':!![],'description':_0x3f25bf(0xab),'parameters':{'Default_Move_Flag':'1','Default_Menu_Flag':_0x3f25bf(0xb6),'Enter\x20Flag':_0x3f25bf(0xae)}},{'name':_0x3f25bf(0xad),'status':![],'description':_0x3f25bf(0xa6),'parameters':{'x':'0','yTop':'0','yMiddle':'0','yBottom':'0','width':'0','height':'0','relative':_0x3f25bf(0xb6),'nameX':'0','nameY':'0'}}];

解混代码

var $plugins = [{
  name: "AltMenuScreen",
  status: false,
  description: "",
  parameters: {}
}, {
  name: "AltSaveScreen",
  status: false,
  description: "セーブ/ロード画面のレイアウトを変更します。",
  parameters: {}
}, {
  name: "ButtonPicture",
  status: false,
  description: "ピクチャをクリック可能にします。",
  parameters: {}
}, {
  name: "VisualizeCollisionArea",
  status: false,
  description: "当たり判定可視化 v1.2.0",
  parameters: {
    IncludeEventsInCollisionArea: "false",
    CollisionAreaColor: "#ff0000aa",
    VisualizeKeyCode: "114"
  }
}, {
  name: "StateUpdate",
  status: false,
  description: "更新可能ステート v1.1.1",
  parameters: {}
}, {
  name: "MenuCallCommonMZ",
  status: true,
  description: "メニュー開閉の代わりにコモンイベント実装するプラグイン",
  parameters: {
    CommonEventOpen: "1",
    CommonEventClose: "2",
    CommonEventSwitch: "100",
    EventMoveOk: "100"
  }
}, {
  name: "LL_StandingPicture",
  status: false,
  description: "メッセージウィンドウ表示時に立ち絵を表示します。",
  parameters: {
    sPictures: "[]",
    picture1Settings: "",
    transition: "1",
    foreFront: "false",
    picture2Settings: "",
    transition2: "1",
    foreFront2: "false",
    picture3Settings: "",
    transition3: "1",
    foreFront3: "false",
    picture4Settings: "",
    transition4: "1",
    foreFront4: "false",
    focusToneAdjust: "-96",
    catheBootPicture: "true"
  }
}, {
  name: "LL_VariableWindow",
  status: true,
  description: "変数を画面にウィンドウで表示します。",
  parameters: {}
}, {
  name: "MKR_PlayerMoveForbid",
  status: true,
  description: "(v1.0.5) プレイヤー移動禁止プラグイン",
  parameters: {
    Default_Move_Flag: "1",
    Default_Menu_Flag: "false",
    "Enter Flag": "true"
  }
}, {
  name: "MessagePosition",
  status: false,
  description: "メッセージの位置調整プラグイン",
  parameters: {
    x: "0",
    yTop: "0",
    yMiddle: "0",
    yBottom: "0",
    width: "0",
    height: "0",
    relative: "false",
    nameX: "0",
    nameY: "0"
  }
}];

Additional context

跳过了“Delete unused variables”操作

Key如果是常规字符串,本来就无所谓有没有引号吧,不会影响功能。

你如果想保留,就把stringLiteralToIdentifier注释掉。

可能是因为rpg用的nodejs魔改过?反正识别不了不带引号的

你如果想保留,就把stringLiteralToIdentifier注释掉。

感谢,已解决