@Test @Ignore public void testRun() throws IOException { PacketWriteDeobfuscator pw = new PacketWriteDeobfuscator(); pw.run(group); }
@Override public void run(ClassGroup group) { rw = new RWOpcodeFinder(group); rw.find(); Execution e = new Execution(group); e.addExecutionVisitor(this::visit); e.populateInitialMethods(); e.run(); end(); opcodeReplacer.run(group, writes.values()); int count = 0; int writesCount = 0; for (PacketWrite write : writes.values()) { if (write.writes.isEmpty()) { continue; } insert(group, write); ++count; writesCount += write.writes.size(); } logger.info("Converted buffer write methods for {} opcodes ({} writes)", count, writesCount); }
PacketWriteDeobfuscator implements Deobfuscator { @Override public void run(ClassGroup group) { rw = new RWOpcodeFinder(group); rw.find(); Execution e = new Execution(group); e.addExecutionVisitor(this::visit); e.populateInitialMethods(); e.run(); end(); opcodeReplacer.run(group, writes.values()); int count = 0; int writesCount = 0; for (PacketWrite write : writes.values()) { if (write.writes.isEmpty()) { continue; } insert(group, write); ++count; writesCount += write.writes.size(); } logger.info("Converted buffer write methods for {} opcodes ({} writes)", count, writesCount); } }
PacketWriteDeobfuscator implements Deobfuscator { @Override public void run(ClassGroup group) { rw = new RWOpcodeFinder(group); rw.find(); Execution e = new Execution(group); e.addExecutionVisitor(this::visit); e.populateInitialMethods(); e.run(); end(); opcodeReplacer.run(group, writes.values()); int count = 0; int writesCount = 0; for (PacketWrite write : writes.values()) { if (write.writes.isEmpty()) { continue; } insert(group, write); ++count; writesCount += write.writes.size(); } logger.info("Converted buffer write methods for {} opcodes ({} writes)", count, writesCount); }  }
PacketWriteDeobfuscator implements Deobfuscator { @Override public void run(ClassGroup group) { rw = new RWOpcodeFinder(group); rw.find(); Execution e = new Execution(group); e.addExecutionVisitor(this::visit); e.populateInitialMethods(); e.run(); end(); opcodeReplacer.run(group, writes.values()); int count = 0; int writesCount = 0; for (PacketWrite write : writes.values()) { if (write.writes.isEmpty()) { continue; } insert(group, write); ++count; writesCount += write.writes.size(); } logger.info("Converted buffer write methods for {} opcodes ({} writes)", count, writesCount); }  void visit(InstructionContext ctx); @Override void run(ClassGroup group); }
PacketWriteDeobfuscator implements Deobfuscator { @Override public void run(ClassGroup group) { rw = new RWOpcodeFinder(group); rw.find(); Execution e = new Execution(group); e.addExecutionVisitor(this::visit); e.populateInitialMethods(); e.run(); end(); opcodeReplacer.run(group, writes.values()); int count = 0; int writesCount = 0; for (PacketWrite write : writes.values()) { if (write.writes.isEmpty()) { continue; } insert(group, write); ++count; writesCount += write.writes.size(); } logger.info("Converted buffer write methods for {} opcodes ({} writes)", count, writesCount); }  void visit(InstructionContext ctx); @Override void run(ClassGroup group);  }