diff --git a/internal/literals/xor_seed.go b/internal/literals/xor_seed.go index 8812ccb..8d1ff81 100644 --- a/internal/literals/xor_seed.go +++ b/internal/literals/xor_seed.go @@ -19,9 +19,11 @@ func (x xorSeed) obfuscate(data []byte) *ast.BlockStmt { seed := preSeed[0] originalSeed := seed + op := genRandOperator() + var callExpr *ast.CallExpr for i, b := range data { - encB := b ^ seed + encB := evalOperator(op, b, seed) seed += encB if i == 0 { @@ -95,11 +97,7 @@ func (x xorSeed) obfuscate(data []byte) *ast.BlockStmt { Lhs: []ast.Expr{ah.Ident("data")}, Tok: token.ASSIGN, Rhs: []ast.Expr{ - ah.CallExpr(ah.Ident("append"), ah.Ident("data"), &ast.BinaryExpr{ - X: ah.Ident("x"), - Op: token.XOR, - Y: ah.Ident("seed"), - }), + ah.CallExpr(ah.Ident("append"), ah.Ident("data"), getReversedOperator(op, ah.Ident("x"), ah.Ident("seed"))), }, }, &ast.AssignStmt{