破解java Struts Web Application开发工具 scioworks Camino

类别:Java 点击:0 评论:0 推荐:

我很高兴向大家知会一声,scioworks Camino的基于Struts的Web Application开发工具已经可以破解了。因为Struts不错,我才想这样,目的只有一个,用来测试检验Struts。

这个工具使用注册码,并使用注册码进行日期判断。让我有点恼火的是,程序会想一个地址发送UDP包,不管怎样,我不希望这样的事情发生。

我想这个工具的破解有两种方式,

1, 认真钻研其算法,然后给出一个KeyGen程序。这种方式对程序本身不会有什么影响,但是研读算法比较费时间。

2, 改写程序控制,然后给出一个替代的class文件。这种方式因为改写了程序控制流程,需要特别小心,不小心的话,原来的程序就会崩溃。

这两种方式各有千秋,取决于你的兴趣所在。因为这个工具经过了代码优化以及别的处理,所以,改写代码稍嫌麻烦。

要做改写代码方式破解的话,你需要一个反编译工具,我推荐你使用jshrink,因为jad好像已经不再做下去了。(别说你还有好多反编译工具,错,大多使用jad Engine。)其次你需要了解一点java虚拟机规范,没有也行,那么你需要熟悉java语言,或者加上一些windows汇编语言知识。

我没有更多耐心所更多的东西。给出源代码,你爱谁谁去。

// Main.java; class file size 15569 bytes

package scioworks.camino;

/*
import BindingSchemaLoader;
import CaminoApp;
import CaminoModel;
import Config;
import ContextPathUtil;
import ExpressException;
import FileReadWriteException;
import InvalidResourceException;
import Main$CMon;
import Main$SMon;
import Navigatable;
import ParseException;
import StrutsSubApp;
*/
import com.jxml.quick.QDoc;
import scioworks.camino.event.ProjectReadyEvent;
import scioworks.camino.gui.LcPanel;
import scioworks.camino.io.DirtyStatusLookup;
import java.awt.Color;
import java.awt.Frame;
import java.io.File;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.TreeMap;
import javax.swing.JOptionPane;
import scioworks.camino.prjModel.CaminoProject;
import scioworks.camino.prjModel.SubApp;
import scioworks.aspen.BaseDialog;
import scioworks.aspen.HelpManager;
import scioworks.aspen.SwingUtil;
import scioworks.aspen.progress.ProgressListener;
import scioworks.common.io.FileUtil;
import scioworks.common.io.filemonitor.FileMonitor;
import scioworks.common.logging.Logger;
import scioworks.common.logging.LoggerFactory;
import scioworks.common.message.Message;
import scioworks.common.message.MessageCategory;
import scioworks.util.crypto.TransformerRev;
import scioworks.camino.strutsModel.Action;
import scioworks.camino.strutsModel.StrutsConfig;
import scioworks.camino.webdd.Servlet;
import scioworks.camino.webdd.ServletMapping;
import scioworks.camino.webdd.WebApp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.net.InetAddress;


class Main
implements
  CaminoModel
{
  final static private String _$159506 = "VGhlIGxpY2Vuc2UgaW5mb3JtYXRpb24gaXMgaW52YWxpZA==";
  final static private String _$115780 = "Q2FtaW5vIExpY2Vuc2UgSW5mbw==";
  final static private String _$159525 = "VHJpYWwgbGljZW5zZSBleHBpcmVzIGluIHswfSBkYXlz";
  final static private String _$159544 = "WW91ciB0cmlhbCBsaWNlbnNlIGhhcyBleHBpcmVkLiBWaXNpdCBodHRwOi8vd3d3LnNjaW93b3Jrcy5jb20gdG8gcHVyY2hhc2UgYSBsaWNlbnNlZCBjb3B5IG9mIFNjaW93b3JrcyBDYW1pbm8=";
  final static private String _$159561 = "VW5yZWdpc3RlcmVkIFRyaWFsIENvcHk=";
  final static private String _$159583 = "usitPzelhkTNlTcaSpAIIiuaalidM";
  final static private String _$159605 = "U3RhbmRhcmQ=";
  final static private String _$159621 = "RW50ZXJwcmlzZQ==";
  static private scioworks.common.logging.Logger _$3187 = scioworks.common.logging.LoggerFactory.getLogger(Main.class);
  // scioworks.common.logging.LoggerFactory.getLogger((class$scioworks$camino$Main == null) ? (class$scioworks$camino$Main = Main.class$("scioworks.camino.Main")) : class$scioworks$camino$Main);
  private int _$159639;
  private String _$159651;
  //private Main$CMon _$159668;
  //private Main$SMon _$159676;
  private int _$159680;
  private String _$59575;
  private long _$159700;
  private String _$59588;
  private String _$115870;
  private CaminoProject _$62680;
  private WebApp _$126484;
  private java.util.Map _$159711;


  public Main() throws InvalidResourceException {
    _$159639 = 12345;
    _$159651 = "230.10.10.11";
    //_$159668 = null;
    //_$159676 = null;
    _$159680 = 1;
    _$59575 = "";
    _$159700 = -1;
    _$59588 = "";
    _$115870 = "";
    _$62680 = null;
    _$126484 = null;
    _$159711 = new java.util.TreeMap();
    getLc(javax.swing.JOptionPane.getRootFrame(), true);
    _$3187.info("License Count = ".concat(String.valueOf(_$159680)));
    _$3187.info("Serial Number = ".concat(_$59575));
    _$115870 = _$159725();
    //_$159744();
    BindingSchemaLoader.getProjectBindingSchema();
    BindingSchemaLoader.getStrutsConfigBindingSchema();
    BindingSchemaLoader.getWebDDBindingSchema();
    scioworks.aspen.HelpManager.instance();
  }

  public java.util.List findGlobalForwardsByTarget(Navigatable n1) {
    ArrayList a2;
    Iterator i3;
    StrutsSubApp s4;
    List l5;
    a2 = new java.util.ArrayList();
    i3 = _$159711.values().iterator();
    while (i3.hasNext()) {
      s4 = (StrutsSubApp) i3.next();
      l5 = s4.getStrutsConfig().findGlobalForwardsByTarget(n1);
      a2.addAll(l5);
    }
    return a2;
  }

  public Navigatable findNavigatable(String s1) {
    Iterator i2;
    StrutsSubApp s3 = null;
    i2 = _$159711.values().iterator();
    {
      do {
        if (i2.hasNext()) {
          s3 = (StrutsSubApp) i2.next();
        }
      }
      while (s3.isInSubApp(s1) == false);
      return s3.findSubAppNavigatable(s3.makeSubAppRelative(s1));
    }
    //return null;
  }

  public Action findAction(String s1) {
    Iterator i2;
    StrutsSubApp s3 = null;
    i2 = _$159711.values().iterator();
    {
      do {
        if (i2.hasNext()) {
          s3 = (StrutsSubApp) i2.next();
        }
      }
      while (s3.isInSubApp(s1) == false);
      return s3.findSubAppAction(ContextPathUtil.makeSubAppRelative(s3.getPrefix(), s1));
    }
    //return null;
  }

  public CaminoProject getProject() {
    return _$62680;
  }

  public WebApp getWebApp() {
    return _$126484;
  }

  public StrutsSubApp getSubApp(String s1) {
    return (StrutsSubApp) _$159711.get(s1);
  }

  public java.util.Set getSubAppPrefixes() {
    return _$159711.keySet();
  }

  java.util.Map getAllSubApps() {
    return _$159711;
  }

  public void initNewProject(CaminoProject c1, scioworks.aspen.progress.ProgressListener p2) throws InvalidResourceException, ParseException, FileReadWriteException {
    _$62680 = c1;
    initProject(p2);
  }

  public void initProject(scioworks.aspen.progress.ProgressListener p1) throws InvalidResourceException, ParseException, FileReadWriteException {
    List l2;
    Iterator i3;
    String s4;
    String s5;
    _$62680.init(this, p1);
    _$159775(p1);
    verifyWebXml(p1);
    _$159711.clear();
    l2 = _$126484.getSubAppPrefixes();
    i3 = l2.iterator();
    while (i3.hasNext()) {
      s4 = (String) i3.next();
      if (_$62680.getSubApp(s4) != null) {
        _$159796(s4, p1);
        continue;
      }
      s5 = java.text.MessageFormat.format("SubApp \"{0}\" is not configured correctly in the project. Please correct it in Project Properties and reload the project.", new String []{s4});
      p1.showError(scioworks.common.message.MessageCategory.getCategory("Main"), s5);
    }
    ProjectReadyEvent.fire(this, true);
  }

  private void _$159796(String s1, scioworks.aspen.progress.ProgressListener p2) throws InvalidResourceException, ParseException, FileReadWriteException {
    StrutsSubApp s3;
    s3 = new StrutsSubApp(this, s1);
    _$159711.put(s1, s3);
    s3.load(p2);
  }

  public void loadProject(String s1, scioworks.aspen.progress.ProgressListener p2) throws InvalidResourceException, ParseException, FileReadWriteException {
    p2.setDescription("Loading project...");
    p2.notifyProgress(s1, 0);
    _$62680 = CaminoProject.load(s1, p2);
    initProject(p2);
  }

  private void _$159775(scioworks.aspen.progress.ProgressListener p1) throws InvalidResourceException, ParseException, FileReadWriteException {
    String s2;
    File f3;
    s2 = _$62680.getAbsoluteWebAppConfig();
  L164:
    {
      if (s2 != null) {
        f3 = scioworks.common.io.FileUtil.getAbsolutePath(_$62680.getFile().getParentFile(), s2);
        if (f3.isFile()) {
          p1.setDescription("Loading web.xml...");
          p1.notifyProgress(String.valueOf(new StringBuffer("web.xml '").append(s2).append("'")), 0);
          _$126484 = WebApp.load(_$62680, f3);
          break L164;
        }
        _$3187.error(String.valueOf(new StringBuffer("web.xml '").append(s2).append("' not found")));
        throw new FileReadWriteException("Web Deployment Descriptor", s2, 0, null);
      }
      _$3187.error("web.xml filename is empty.");
      throw new FileReadWriteException("Web Deployment Descriptor", s2, 0, null);
    }
  }

  public void clearProject() {
    CaminoApp.getInstance().getDirtyStatusLookup().clearDirtyAll();
    CaminoApp.getInstance().resetModelEventBroker();
    scioworks.common.io.filemonitor.FileMonitor.getInstance().unregisterAll();
    _$62680 = null;
    _$126484 = null;
    _$159711.clear();
    ProjectReadyEvent.fire(this, false);
  }

  public void saveProject() throws ParseException, FileReadWriteException, ExpressException, InvalidResourceException {
    Iterator i1;
    StrutsSubApp s2;
    _$126484.save();
    _$62680.save();
    i1 = _$159711.values().iterator();
    while (i1.hasNext()) {
      s2 = (StrutsSubApp) i1.next();
      s2.save();
    }
  }

  public void refreshProject(scioworks.aspen.progress.ProgressListener p1) {
    verifyWebXml(p1);
  }

  public void verifyWebXml(scioworks.aspen.progress.ProgressListener p1) {
    scioworks.common.message.Message o2;
    ServletMapping s3;
    String s5;
    o2 = null;
    if (_$126484.findServlet(_$62680.getActionServletName()) == null) {
      _$3187.warn(String.valueOf(new StringBuffer("ActionServlert ").append(_$62680.getActionServletName()).append(" not found")));
      o2 = _$159827(o2, p1);
      p1.showWarning(scioworks.common.message.MessageCategory.getCategory("Main"), String.valueOf(new StringBuffer("ActionServlet '").append(_$62680.getActionServletName()).append("' not found")), o2);
    }
    s3 = _$126484.findServletMapping(_$62680.getActionServletName());
    if (s3 == null) {
      _$3187.warn(String.valueOf(new StringBuffer("Servlet mapping for ").append(_$62680.getActionServletName()).append(" not found")));
      o2 = _$159827(o2, p1);
      p1.showWarning(scioworks.common.message.MessageCategory.getCategory("Main"), String.valueOf(new StringBuffer("Servlet mapping for servlet '").append(_$62680.getActionServletName()).append("' not found. Assume URI pattern for Actions = '").append("*.do").append("'.")), o2);
    }
    if ((s3 != null) && ((s3.getUrlExtension() == null) && (s3.getUrlPath() == null))) {
      o2 = _$159827(o2, p1);
      Object l4 = (s3.getRawUrlPattern() == null) ? "<null>" : s3.getRawUrlPattern();
      s5 = java.text.MessageFormat.format("URL Pattern \"{0}\" of the ActionServlet is invalid.", new Object[] {l4}        );
      _$3187.warn(s5);
      p1.showError(scioworks.common.message.MessageCategory.getCategory("Main"), s5, o2);
    }
  }

  public String getTitleMessage() {
    StringBuffer s1;
    s1 = new StringBuffer("Scioworks Camino ");
    s1.append(Config.getVersion());
    /*
    if ((_$159700 - ((long) 0)) != 0) {
      s1.append(" - ");
      s1.append(scioworks.util.crypto.TransformerRev.getInstance().simpleDecode("VW5yZWdpc3RlcmVkIFRyaWFsIENvcHk="));
      return s1.toString();
    }
    */
    s1.append("---破解 xy@2002-11-22");
    return s1.toString();
  }

  public int monitorStatus() {
    int i1 = 1;
    //i1 = _$159676.gc();
    //_$159676.slap();
    /*
    if (i1 >= _$159680) {
      return -(_$159680);
    }
    return _$159680;
    */
    return i1;
  }

  public int lp() {
    return _$159639;
  }

  public String lg() {
    return _$159651;
  }

  public int numOfLc() {
    return _$159680;
  }

  public String sn() {
    return _$59575;
  }

  String sk() {
    return _$115870;
  }

  public String ed(boolean b1) {
    if (_$59588.equals("E")) {
      if (b1) {
        return scioworks.util.crypto.TransformerRev.getInstance().simpleDecode("RW50ZXJwcmlzZQ==");
      }
      return _$59588;
    }
    if (b1) {
      return scioworks.util.crypto.TransformerRev.getInstance().simpleDecode("U3RhbmRhcmQ=");
    }
    return "S";
  }

  public boolean getLc(java.awt.Frame f1, boolean b2) {
    int i3;
    int i4;
    java.util.HashMap o5;
    String s6;
    String s7;
    String s8;
    int i7;
    LcPanel l10;
    BaseDialog b11 = null;
    int i12;
    i3 = 0;
    i4 = 1;
    o5 = null;
    s6 = Config.getLcKey();
    s7 = Config.getLcCompany();
    s8 = Config.getLcUser();
    {
      for (int i=0; i<1; i++) {
        if (i3 == 0) {
          if ((b2) && (_$159937(s8, s7, s6))) {
            i3 = 1;
            Config.setLcUser(s8);
            Config.setLcCompany(s7);
            Config.setLcKey(s6);
            Config.saveLicense();
            continue;
          }
          i7 = 1;
          o5 = new java.util.HashMap();
          o5.put("k", s6);
          o5.put("u", s8);
          o5.put("c", s7);
          l10 = new scioworks.camino.gui.LcPanel();
          l10.setModel(o5);
          b11 = new scioworks.aspen.BaseDialog(f1, scioworks.util.crypto.TransformerRev.getInstance().simpleDecode("Q2FtaW5vIExpY2Vuc2UgSW5mbw=="), true, l10, l10, true);
          try {
            if (i4 != 0) {
              i4 = 0;
              l10.setMessage(scioworks.util.crypto.TransformerRev.getInstance().simpleDecode("Q2FtaW5vIExpY2Vuc2UgSW5mbw=="),Color.black);
            }
            else {
              l10.setMessage(scioworks.util.crypto.TransformerRev.getInstance().simpleDecode("VGhlIGxpY2Vuc2UgaW5mb3JtYXRpb24gaXMgaW52YWxpZA=="), Color.red);
            }
            b11.show();
            if (b11.isOk()) {
              o5 = (java.util.HashMap) l10.getModel();
              s8 = o5.get("u").toString();
              s7 = o5.get("c").toString();
              s6 = o5.get("k").toString();
            }
            else {
              return true;
            }
            continue;
          }
          finally {
            break;
          }
        }
      }
      //l14 = throw l13;
      scioworks.aspen.SwingUtil.dispose(b11);
      return true;
    }
    //return true;
  }

  private String _$159954() {
    int[] i1;
    char[] c2;
    int i3;
    i1 = new int[] {6,10,24,18,13,28,21,20,5,2,11,23,16,19,4,26,8,0,3,14,1,7,12,22,9,27,17,15,25};
    c2 = new char[29];
    i3 = 0;
    while (i3 < "usitPzelhkTNlTcaSpAIIiuaalidM".length()) {
      c2[i1[i3]] = "usitPzelhkTNlTcaSpAIIiuaalidM".charAt(i3);
      i3++;
    }
    return new String(c2).concat(Config.getRelease());
  }

  private boolean _$159937(String s1, String s2, String s3) {
    String s4;
    String o5;
    String o6;
    String o7;
    String o8;
    String o9;
    StringTokenizer s10;
    int i12;
    boolean b1;
    s4 = scioworks.util.crypto.TransformerRev.getInstance().decrypt(s3, _$159954());
    if (s4 == null) {
      return false;
    }
    o5 = null;
    o6 = null;
    o7 = null;
    o8 = null;
    o9 = null;
    s10 = new java.util.StringTokenizer(s4, "|");
    try {
      o5 = s10.nextToken();
      o6 = s10.nextToken();
      o8 = s10.nextToken();
      o7 = s10.nextToken();
      o9 = s10.nextToken();
    }
    catch (NoSuchElementException n11) {

      return true;
    }
    try {
      _$159680 = Integer.parseInt(o6);
    }
    catch (NumberFormatException n2) {
      _$159680 = 1;
    }
    try {
      _$59575 = String.valueOf(new StringBuffer(s3.substring(8, 12)).append("-").append(o8).append("-").append(s3.substring(0, 4)));
    }
    catch (IndexOutOfBoundsException i1) {

      return true;
    }
    try {
      _$159700 = Long.parseLong(o7);
    }
    catch (NumberFormatException n1) {
      _$159700 = -1;
    }
    _$59588 = o9;
    b1 = scioworks.util.crypto.TransformerRev.getInstance().compare(o5, s1, s2);
    if ((b1) && ((_$159680 >= 0) && ((_$159700 - ((long) 0)) >= 0))) {
      return true;
    }
    return true;
  }

  /*
  private void _$159744() {
    double d1;
    long l2;
    Object[] o3;
    if ((_$159700 - ((long) 0)) == 0) {
      return;
    }
    d1 = (double) ((_$159700 - System.currentTimeMillis()) / ((long) 86400000));
    l2 = (long) Math.floor(d1);
    if (((l2 - ((long) 0)) >= 0) && ((l2 - ((long) 15)) <= 0)) {
      o3 = {new Long(l2 + ((long) 1))};
      javax.swing.JOptionPane.showMessageDialog(javax.swing.JOptionPane.getRootFrame(), java.text.MessageFormat.format(scioworks.util.crypto.TransformerRev.getInstance().simpleDecode("VHJpYWwgbGljZW5zZSBleHBpcmVzIGluIHswfSBkYXlz"), o3), scioworks.util.crypto.TransformerRev.getInstance().simpleDecode("Q2FtaW5vIExpY2Vuc2UgSW5mbw=="), 1);
    }
    else {
      javax.swing.JOptionPane.showMessageDialog(javax.swing.JOptionPane.getRootFrame(), scioworks.util.crypto.TransformerRev.getInstance().simpleDecode("WW91ciB0cmlhbCBsaWNlbnNlIGhhcyBleHBpcmVkLiBWaXNpdCBodHRwOi8vd3d3LnNjaW93b3Jrcy5jb20gdG8gcHVyY2hhc2UgYSBsaWNlbnNlZCBjb3B5IG9mIFNjaW93b3JrcyBDYW1pbm8="), scioworks.util.crypto.TransformerRev.getInstance().simpleDecode("Q2FtaW5vIExpY2Vuc2UgSW5mbw=="), 1);
      //System.exit(1);
    }
  }
  */
  private String _$159725() {
    String s1;
    int i2;
    InterruptedException i3;
    IOException i1;
    s1 = Long.toString(System.currentTimeMillis());
    i2 = _$159639 + 1;
    /*
    try {
      _$159676 = new Main$SMon(this, i2);
      _$159676.start();
      _$159668 = new Main$CMon(this, i2, Config.getLcKey(), s1, _$159639, _$159651);
      _$159668.start();
      try {
        Thread.sleep(500);
      }
      catch (i3) {
      }
    }
    catch (i1) {
    }
    */
    return s1;
  }

  private scioworks.common.message.Message _$159827(scioworks.common.message.Message m1, scioworks.aspen.progress.ProgressListener p2) {
    Message m2 = null;
    if (m1 == null) {
      m2 = p2.showWarning(scioworks.common.message.MessageCategory.getCategory("Main"), "Encounter problem parsing web.xml. Please correct the problem via the menu item Project|Web.xml Properties");
    }
    return m2;
  }

  static scioworks.common.logging.Logger access$0() {
    return _$3187;
  }

}

/*
class Main$CMon extends Thread
{
  private boolean _$160186;
  private int _$160198;
  private String _$160211;
  private String _$115870;
  private int _$159639;
  private String _$159651;

  public Main$CMon(Main m1, int i2, String s3, String s4, int i5, String s6) throws java.io.IOException {
    _$160186 = true;
    _$160186 = true;
    _$160198 = i2;
    _$160211 = s3;
    _$115870 = s4;
    _$159639 = i5;
    _$159651 = s6;
  }

  public void run() {
    java.net.MulticastSocket o1;
    InetAddress i2;
    int i3;
    java.net.DatagramSocket o4;
    byte[] b5;
    DatagramPacket d6;
    String s7;
    String s8;
    String s9;
    InetAddress i10;
    DatagramPacket d5;
    IOException i7;
    IOException i13;
    o1 = null;
    try {
      o1 = new java.net.MulticastSocket(_$159639);
      i2 = java.net.InetAddress.getByName(_$159651);
      o1.joinGroup(i2);
      i3 = _$160211.length();
      {
        for (;;) {
          if (_$160186) {
            o4 = null;
            try {
              b5 = new byte[256];
              d6 = new java.net.DatagramPacket(b5, b5.length);
              o1.receive(d6);
              s7 = new String(d6.getData());
              s8 = s7.substring(0, i3);
              if (s8.equals(_$160211) == false) {
                continue;
              }
              s9 = s7.substring(i3).trim();
              if (s9.equals(_$115870)) {
                continue;
              }
              if (Main.access$0().isDebug()) {
                Main.access$0().debug("Received req: ".concat(d6.getAddress().getHostAddress()));
              }
              i10 = d6.getAddress();
              d5 = new java.net.DatagramPacket(b5, b5.length, i10, _$160198);
              o4 = new java.net.DatagramSocket();
              o4.send(d5);
            }
            continue;
            catch (i7) {
              _$160186 = false;
            }
          }
        }
        finally {
          if (o4 != null) {
            o4.close();
          }
        }
      }
      o1.leaveGroup(i2);
    }
    catch (i13) {
    }
    finally {
      if (o1 != null) {
        o1.close();
      }
    }
  }
}
class Main$SMon extends Thread
{
  private boolean _$160186;
  private int _$160198;
  private int _$59562;

  public Main$SMon(Main m1, int i2) throws java.io.IOException {
    _$160186 = true;
    _$160198 = i2;
    _$59562 = 0;
  }

  public int gc() {
    return _$59562;
  }

  public void slap() {
    InetAddress i1;
    byte[] b2;
    DatagramPacket d3;
    DatagramSocket d4;
    IOException i4;
    _$160186 = false;
    try {
      i1 = java.net.InetAddress.getLocalHost();
      b2 = new byte[256];
      b2 = "KoL".getBytes();
      d3 = new java.net.DatagramPacket(b2, b2.length, i1, _$160198);
      d4 = new java.net.DatagramSocket();
      d4.send(d3);
    }
    catch (i4) {
      Main.access$0().warn("s/rmon not available");
    }
  }

  public void run() {
    java.net.DatagramSocket o1;
    byte[] b2;
    DatagramPacket d3;
    DatagramPacket d1;
    IOException i4;
    o1 = null;
    try {
      o1 = new java.net.DatagramSocket(_$160198);
      b2 = new byte[256];
      d3 = new java.net.DatagramPacket(b2, b2.length);
      d1 = new java.net.DatagramPacket(b2, b2.length);
      while (_$160186) {
        l5 = this;
        synchronized (l5) {
          o1.receive(d1);
          if (Main.access$0().isDebug()) {
            Main.access$0().debug("Ack: ".concat(d1.getAddress().getHostAddress()));
          }
          _$59562 = _$59562 + 1;
        }
        continue;
      }
    }
    catch (i4) {
      i4.printStackTrace();
    }
    finally {
      if (o1 != null) {
        o1.close();
      }
    }
  }
}

*/

本文地址:http://com.8s8s.com/it/it18122.htm