From dfe0c75f1434552d7be0db1dd0a91f276214f3b4 Mon Sep 17 00:00:00 2001 From: j4k0xb <55899582+j4k0xb@users.noreply.github.com> Date: Wed, 3 Jan 2024 18:24:09 +0100 Subject: [PATCH] refactor --- .../src/deobfuscate/control-flow-object.ts | 30 +++++++------------ 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/packages/webcrack/src/deobfuscate/control-flow-object.ts b/packages/webcrack/src/deobfuscate/control-flow-object.ts index 983f0348..11a5eb0f 100644 --- a/packages/webcrack/src/deobfuscate/control-flow-object.ts +++ b/packages/webcrack/src/deobfuscate/control-flow-object.ts @@ -105,28 +105,18 @@ export default { ); const anyMemberAccess = constMemberExpression(m.identifier(), propertyName); - const deadBranchMatcher = m.or( - m.ifStatement( - m.or( - m.callExpression(anyMemberAccess, [anyMemberAccess, anyMemberAccess]), - m.binaryExpression( - m.or('===', '!=='), - m.stringLiteral(), - m.stringLiteral(), - ), - ), - ), - m.conditionalExpression( - m.or( - m.callExpression(anyMemberAccess, [anyMemberAccess, anyMemberAccess]), - m.binaryExpression( - m.or('===', '!=='), - m.stringLiteral(), - m.stringLiteral(), - ), - ), + const deadBranchTest = m.or( + m.callExpression(anyMemberAccess, [anyMemberAccess, anyMemberAccess]), + m.binaryExpression( + m.or('===', '!=='), + m.stringLiteral(), + m.stringLiteral(), ), ); + const deadBranchMatcher = m.or( + m.ifStatement(deadBranchTest), + m.conditionalExpression(deadBranchTest), + ); function isConstantBinding(binding: Binding) { // Workaround because sometimes babel treats the VariableDeclarator/binding itself as a violation