Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ByteBuffer rsa_buffer = getRSABlock(buffer);
- int[] xtea = new int[] { rsa_buffer.getInt(), rsa_buffer.getInt(), rsa_buffer.getInt(), rsa_buffer.getInt() };
- long var1 = rsa_buffer.getLong();
- int auth_type = rsa_buffer.get();
- System.out.println("var1 = " + var1);
- switch (auth_type) {
- case 0:
- case 3:
- int code = ByteBufferUtils.getTriByte(rsa_buffer);
- rsa_buffer.position(rsa_buffer.position() + 1);
- break;
- case 1:
- rsa_buffer.position(rsa_buffer.position() + 4);
- break;
- case 2:
- rsa_buffer.getInt();
- // rsa_buffer.position(rsa_buffer.position() + 4);
- break;
- }
- int var2 = rsa_buffer.get();
- System.out.println("var2 = " + var2);
- String password = ByteBufferUtils.getString(rsa_buffer);
- System.out.println("password: " + password);
- ByteBuffer xtea_buffer = XTEACryption.decrypt(buffer, xtea);
- String username = ByteBufferUtils.getString(xtea_buffer);
- System.out.println("username: " + username);
- int displaySetting = xtea_buffer.get();
- int windowMode = (displaySetting >> 1) + 1;
- boolean lowMem = (displaySetting & 0xFF) == 1;
- int width = xtea_buffer.getShort();
- System.out.println("width: " + width);
- int height = xtea_buffer.getShort();
- System.out.println("height: " + height);
- xtea_buffer.position(xtea_buffer.position() + 24);
- String sessionToken1 = ByteBufferUtils.getString(xtea_buffer);
- int affiliateID = xtea_buffer.getInt();
- xtea_buffer.get(); // machine info opcode 6
- xtea_buffer.get(); // os type
- xtea_buffer.get(); // 64 bit
- xtea_buffer.get(); // os version
- xtea_buffer.get(); // vendor
- xtea_buffer.get(); // major
- xtea_buffer.get(); // minor
- xtea_buffer.get(); // patch
- xtea_buffer.get(); // some flag
- xtea_buffer.getShort(); // max memory
- xtea_buffer.get();
- xtea_buffer.get();
- xtea_buffer.getShort();
- xtea_buffer.getShort();
- ByteBufferUtils.getJagString(xtea_buffer);
- ByteBufferUtils.getJagString(xtea_buffer);
- ByteBufferUtils.getJagString(xtea_buffer);
- ByteBufferUtils.getJagString(xtea_buffer);
- xtea_buffer.get();
- xtea_buffer.getShort();
- ByteBufferUtils.getJagString(xtea_buffer);
- ByteBufferUtils.getJagString(xtea_buffer);
- xtea_buffer.get();
- xtea_buffer.get();
- xtea_buffer.getInt();
- xtea_buffer.getInt();
- xtea_buffer.getInt();
- xtea_buffer.getInt();
- int sessionToken2 = xtea_buffer.get();
- int crcBlock = xtea_buffer.getInt();
- final int[] clientCRC = new int[18];
- final int[] serverCRC = new int[18];
- for (int i = 0; i < 18; i++) {
- clientCRC[i] = xtea_buffer.getInt();
- serverCRC[i] = Cache.getIndexes()[i] == null ? 0 : Cache.getIndexes()[i].getInformation().getInformationContainer().getCrc();
- }
- System.err.println("Client CRC: " + Arrays.toString(clientCRC));
- System.err.println("Server CRC: " + Arrays.toString(serverCRC));
- ISAACCipher inCipher = new ISAACCipher(xtea);
- for (int i = 0; i < 4; i++) {
- xtea[i] += 50;
- }
- ISAACCipher outCipher = new ISAACCipher(xtea);
- session.setIsaacPair(new ISAACPair(inCipher, outCipher));
- final PlayerDetails details = new PlayerDetails(username, null, session);
- details.setClientInfo(new ClientInfo(windowMode, width, height));
- final ByteBuffer b = xtea_buffer;
- TaskExecutor.executeSQL(new Runnable() {
- @Override
- public void run() {
- try {
- Response response = PlayerSQLManager.getCredentialResponse(details, username, password);
- if (response != Response.SUCCESSFUL) {
- session.write(response, true);
- return;
- }
- login(details, username, password, session, b, opcode);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement