Skip to content

Commit 127947a

Browse files
authored
Fix HideAccessTransformer
1 parent 8ab6965 commit 127947a

File tree

1 file changed

+53
-48
lines changed

1 file changed

+53
-48
lines changed

src/main/java/com/javadeobfuscator/deobfuscator/transformers/stringer/HideAccessObfuscationTransformer.java

Lines changed: 53 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -589,52 +589,57 @@ private String getPrimitiveFromClass(String clazz) {
589589
}
590590

591591
private class MyInterpreter extends BasicInterpreter
592-
{
593-
@Override
594-
public BasicValue newValue(final Type type)
595-
{
596-
if(type == null)
597-
return new BasicValue(Type.getType("Ljava/lang/Object;"));
598-
switch(type.getSort())
599-
{
600-
case Type.VOID:
601-
return null;
602-
case Type.BOOLEAN:
603-
case Type.CHAR:
604-
case Type.BYTE:
605-
case Type.SHORT:
606-
case Type.INT:
607-
return BasicValue.INT_VALUE;
608-
case Type.FLOAT:
609-
return BasicValue.FLOAT_VALUE;
610-
case Type.LONG:
611-
return BasicValue.LONG_VALUE;
612-
case Type.DOUBLE:
613-
return BasicValue.DOUBLE_VALUE;
614-
case Type.ARRAY:
615-
case Type.OBJECT:
616-
return new BasicValue(type);
617-
default:
618-
throw new Error("Internal error");
619-
}
620-
}
621-
622-
@Override
623-
public BasicValue binaryOperation(final AbstractInsnNode insn,
624-
final BasicValue value1, final BasicValue value2)
625-
throws AnalyzerException
626-
{
627-
if(insn.getOpcode() == Opcodes.AALOAD)
628-
return new BasicValue(value1.getType().getElementType());
629-
return super.binaryOperation(insn, value1, value2);
630-
}
631-
632-
@Override
633-
public BasicValue merge(final BasicValue v, final BasicValue w)
634-
{
635-
if(!v.equals(w))
636-
return new BasicValue(Type.getType("Ljava/lang/Object;"));
637-
return v;
638-
}
639-
}
592+
{
593+
public MyInterpreter()
594+
{
595+
super(Opcodes.ASM8);
596+
}
597+
598+
@Override
599+
public BasicValue newValue(final Type type)
600+
{
601+
if(type == null)
602+
return new BasicValue(Type.getType("Ljava/lang/Object;"));
603+
switch(type.getSort())
604+
{
605+
case Type.VOID:
606+
return null;
607+
case Type.BOOLEAN:
608+
case Type.CHAR:
609+
case Type.BYTE:
610+
case Type.SHORT:
611+
case Type.INT:
612+
return BasicValue.INT_VALUE;
613+
case Type.FLOAT:
614+
return BasicValue.FLOAT_VALUE;
615+
case Type.LONG:
616+
return BasicValue.LONG_VALUE;
617+
case Type.DOUBLE:
618+
return BasicValue.DOUBLE_VALUE;
619+
case Type.ARRAY:
620+
case Type.OBJECT:
621+
return new BasicValue(type);
622+
default:
623+
throw new Error("Internal error");
624+
}
625+
}
626+
627+
@Override
628+
public BasicValue binaryOperation(final AbstractInsnNode insn,
629+
final BasicValue value1, final BasicValue value2)
630+
throws AnalyzerException
631+
{
632+
if(insn.getOpcode() == Opcodes.AALOAD)
633+
return new BasicValue(value1.getType().getElementType());
634+
return super.binaryOperation(insn, value1, value2);
635+
}
636+
637+
@Override
638+
public BasicValue merge(final BasicValue v, final BasicValue w)
639+
{
640+
if(!v.equals(w))
641+
return new BasicValue(Type.getType("Ljava/lang/Object;"));
642+
return v;
643+
}
644+
}
640645
}

0 commit comments

Comments
 (0)