Advertisement
Guest User

Untitled

a guest
Aug 26th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.60 KB | None | 0 0
  1. ByteBuffer rsa_buffer = getRSABlock(buffer);
  2.  
  3. int[] xtea = new int[] { rsa_buffer.getInt(), rsa_buffer.getInt(), rsa_buffer.getInt(), rsa_buffer.getInt() };
  4. long var1 = rsa_buffer.getLong();
  5. int auth_type = rsa_buffer.get();
  6.  
  7. System.out.println("var1 = " + var1);
  8.  
  9. switch (auth_type) {
  10. case 0:
  11. case 3:
  12. int code = ByteBufferUtils.getTriByte(rsa_buffer);
  13. rsa_buffer.position(rsa_buffer.position() + 1);
  14. break;
  15. case 1:
  16. rsa_buffer.position(rsa_buffer.position() + 4);
  17. break;
  18. case 2:
  19. rsa_buffer.getInt();
  20. // rsa_buffer.position(rsa_buffer.position() + 4);
  21. break;
  22. }
  23.  
  24. int var2 = rsa_buffer.get();
  25.  
  26. System.out.println("var2 = " + var2);
  27.  
  28. String password = ByteBufferUtils.getString(rsa_buffer);
  29.  
  30. System.out.println("password: " + password);
  31.  
  32. ByteBuffer xtea_buffer = XTEACryption.decrypt(buffer, xtea);
  33.  
  34. String username = ByteBufferUtils.getString(xtea_buffer);
  35.  
  36. System.out.println("username: " + username);
  37.  
  38. int displaySetting = xtea_buffer.get();
  39.  
  40. int windowMode = (displaySetting >> 1) + 1;
  41.  
  42. boolean lowMem = (displaySetting & 0xFF) == 1;
  43.  
  44. int width = xtea_buffer.getShort();
  45.  
  46. System.out.println("width: " + width);
  47.  
  48. int height = xtea_buffer.getShort();
  49.  
  50. System.out.println("height: " + height);
  51.  
  52. xtea_buffer.position(xtea_buffer.position() + 24);
  53.  
  54. String sessionToken1 = ByteBufferUtils.getString(xtea_buffer);
  55.  
  56. int affiliateID = xtea_buffer.getInt();
  57.  
  58. xtea_buffer.get(); // machine info opcode 6
  59. xtea_buffer.get(); // os type
  60. xtea_buffer.get(); // 64 bit
  61. xtea_buffer.get(); // os version
  62. xtea_buffer.get(); // vendor
  63. xtea_buffer.get(); // major
  64. xtea_buffer.get(); // minor
  65. xtea_buffer.get(); // patch
  66. xtea_buffer.get(); // some flag
  67. xtea_buffer.getShort(); // max memory
  68. xtea_buffer.get();
  69. xtea_buffer.get();
  70. xtea_buffer.getShort();
  71. xtea_buffer.getShort();
  72. ByteBufferUtils.getJagString(xtea_buffer);
  73. ByteBufferUtils.getJagString(xtea_buffer);
  74. ByteBufferUtils.getJagString(xtea_buffer);
  75. ByteBufferUtils.getJagString(xtea_buffer);
  76. xtea_buffer.get();
  77. xtea_buffer.getShort();
  78. ByteBufferUtils.getJagString(xtea_buffer);
  79. ByteBufferUtils.getJagString(xtea_buffer);
  80. xtea_buffer.get();
  81. xtea_buffer.get();
  82. xtea_buffer.getInt();
  83. xtea_buffer.getInt();
  84. xtea_buffer.getInt();
  85. xtea_buffer.getInt();
  86. int sessionToken2 = xtea_buffer.get();
  87. int crcBlock = xtea_buffer.getInt();
  88. final int[] clientCRC = new int[18];
  89. final int[] serverCRC = new int[18];
  90. for (int i = 0; i < 18; i++) {
  91. clientCRC[i] = xtea_buffer.getInt();
  92. serverCRC[i] = Cache.getIndexes()[i] == null ? 0 : Cache.getIndexes()[i].getInformation().getInformationContainer().getCrc();
  93. }
  94. System.err.println("Client CRC: " + Arrays.toString(clientCRC));
  95. System.err.println("Server CRC: " + Arrays.toString(serverCRC));
  96. ISAACCipher inCipher = new ISAACCipher(xtea);
  97. for (int i = 0; i < 4; i++) {
  98. xtea[i] += 50;
  99. }
  100. ISAACCipher outCipher = new ISAACCipher(xtea);
  101. session.setIsaacPair(new ISAACPair(inCipher, outCipher));
  102. final PlayerDetails details = new PlayerDetails(username, null, session);
  103. details.setClientInfo(new ClientInfo(windowMode, width, height));
  104. final ByteBuffer b = xtea_buffer;
  105. TaskExecutor.executeSQL(new Runnable() {
  106. @Override
  107. public void run() {
  108. try {
  109. Response response = PlayerSQLManager.getCredentialResponse(details, username, password);
  110. if (response != Response.SUCCESSFUL) {
  111. session.write(response, true);
  112. return;
  113. }
  114. login(details, username, password, session, b, opcode);
  115. } catch (SQLException e) {
  116. e.printStackTrace();
  117. }
  118. }
  119. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement