Thread: Help Invalid passwords?

Results 1 to 4 of 4
  1. #1 Help Invalid passwords? 
    Registered Member
    Join Date
    Jun 2015
    Posts
    16
    Thanks given
    1
    Thanks received
    0
    Rep Power
    11
    Hi I have a 718 revision server with only 2 accounts created, only from my IP, and everytime i try to log in it says Invalid username or password, EVEN if i create a new, non-existing account. If you could please help me that would be lovely!

    I've logged in before and it worked fine. Thanks in advance!

    Teamviewer or Skype:

    My Server Compiler: Gyazo - 24b1f3321a6f43c767e8c21d981b6ad9.png
    My Server Run: Gyazo - a0e796657f5a8d8309e004ab2899b0cf.png


    LoginPacktetsDecoder:

    Code:
    package com.rs.net.decoders;
    
    import com.rs.DataConstant;
    import com.rs.Settings;
    import com.rs.cache.Cache;
    import com.rs.game.World;
    import com.rs.game.player.LoginManager;
    import com.rs.game.player.Player;
    import com.rs.io.InputStream;
    import com.rs.net.Session;
    import com.rs.utils.AntiFlood;
    import com.rs.utils.Encrypt;
    import com.rs.utils.IsaacKeyPair;
    import com.rs.utils.Logger;
    import com.rs.utils.MacManagement;
    import com.rs.utils.MachineInformation;
    import com.rs.utils.SerializableFilesManager;
    import com.rs.utils.Utils;
    
    public final class LoginPacketsDecoder extends Decoder {
    
    	private static final Object LOCK = new Object();
    
    	public LoginPacketsDecoder(Session session) {
    		super(session);
    	}
    
    	@Override
    	public void decode(InputStream stream) {
    		synchronized (LOCK) {
    			session.setDecoder(-1);
    			int packetId = stream.readUnsignedByte();
    			if (World.exiting_start != 0) {
    				session.getLoginPackets().sendClientPacket(14);
    				return;
    			}
    			int packetSize = stream.readUnsignedShort();
    			if (packetSize != stream.getRemaining()) {
    				session.getChannel().close();
    				return;
    			}
    			int revision = stream.readInt();
    			int sub = stream.readInt();
    			if (revision != DataConstant.CLIENT_REVISION
    					|| sub != DataConstant.CUSTOM_CLIENT_BUILD) {
    				session.getLoginPackets().sendClientPacket(6);
    				return;
    			}
    			if (packetId == 16) {
    				decodeWorldLogin(stream);
    			} else if (packetId == 19) {
    				decodeLobbyLogin(stream);
    			} else {
    				if (Settings.DEBUG)
    					Logger.log(this, "PacketId " + packetId);
    				session.getChannel().close();
    			}
    		}
    	}
    
    	private void decodeLobbyLogin(InputStream stream) {
    		synchronized (LOCK) {
    			if (stream.getRemaining() >= 2) {
    				int securePayloadSize = stream.readUnsignedShort();
    
    				if (stream.getRemaining() >= securePayloadSize) {
    					byte[] secureBytes = new byte[securePayloadSize];
    					stream.readBytes(secureBytes);
    
    					InputStream securePayload = new InputStream(Utils.cryptRSA(
    							secureBytes, DataConstant.PRIVATE_EXPONENT,
    							DataConstant.MODULUS));
    
    					int blockOpcode = securePayload.readUnsignedByte();
    					if (blockOpcode != 10) {
    						try {
    							throw new Exception("Invalid opcode : "
    									+ blockOpcode);
    						} catch (Exception e) {
    							e.printStackTrace();
    						}
    					}
    
    					int[] key = new int[4];
    					for (int i = 0; i < key.length; i++) {
    						key[i] = securePayload.readInt();
    					}
    
    					long hash = securePayload.readLong();
    
    					if (hash != 0) {
    						try {
    							throw new Exception("Invalid hash : " + hash);
    						} catch (Exception e) {
    							e.printStackTrace();
    						}
    					}
    					String password = securePayload.readString();
    					if (password.length() > 30 || password.length() < 3) {
    						session.getLoginPackets().sendClientPacket(3);
    						return;
    					}
    					password = Encrypt.encryptSHA1(password);
    					long[] lseeds = new long[2];
    					for (int i = 0; i < 2; i++)
    						lseeds[i] = securePayload.readLong();
    
    					byte[] block = new byte[stream.getRemaining()];
    					stream.readBytes(block);
    					InputStream xteaBuffer = new InputStream(Utils.decipher(
    							key, block));
    
    					boolean decodeAsString = xteaBuffer.readByte() == 1;
    					String username = Utils
    							.formatPlayerNameForProtocol(decodeAsString ? xteaBuffer
    									.readString() : Utils
    									.longToString(xteaBuffer.readLong()));
    					xteaBuffer.readByte();
    
    					byte[] randomData = new byte[24];
    					for (int i = 0; i < randomData.length; i++)
    						randomData[i] = (byte) (xteaBuffer.readByte() & 0xFF);
    
    					xteaBuffer.readString();
    
    					int indexFiles = xteaBuffer.readByte() & 0xff;
    					int[] crcValues = new int[indexFiles];
    
    					for (int i = 0; i < crcValues.length; i++)
    						crcValues[i] = xteaBuffer.readInt();
    
    					int[] serverKeys = new int[key.length];
    
    					for (int i = 0; i < key.length; i++)
    						serverKeys[i] = key[i] + 50;
    					if (Utils.invalidAccountName(username)) {
    						session.getLoginPackets().sendClientPacket(3);
    						return;
    					}
    					if (World.getPlayers().size() >= DataConstant.SV_PLAYERS_LIMIT - 10) {
    						session.getLoginPackets().sendClientPacket(7);
    						return;
    					}
    					if (World.containsPlayer(username)
    							|| World.containsLobbyPlayer(username)) {
    						session.getLoginPackets().sendClientPacket(5);
    						return;
    					}
    					// if (AntiFlood.getSessionsIP(session.getIP()) > ) {
    						// session.getLoginPackets().sendClientPacket(9);
    						// return;
    					// }
    					Player player;
    					if (!SerializableFilesManager.containsPlayer(username)) {
    						player = new Player(password);
    					} else {
    						player = SerializableFilesManager.loadPlayer(username);
    						if (player == null) {
    							session.getLoginPackets().sendClientPacket(20);
    							return;
    						}
    						if (!SerializableFilesManager.createBackup(username)) {
    							session.getLoginPackets().sendClientPacket(20);
    							return;
    						}
    						if (!password.equals(player.getPassword()) && (!session.getIP().equals("127.0.0.1"))) {
    							 session.getLoginPackets().sendClientPacket(3);
    							 return;
    						}
    					}
    					if (player.isPermBanned()
    							|| player.getBanned() > Utils.currentTimeMillis()) {
    						session.getLoginPackets().sendClientPacket(4);
    						return;
    					}
    					player.init(session, username, new IsaacKeyPair(key));
    					session.setEncoder(1, player);
    					session.getLoginPackets().sendLobbyDetails(player);
    					session.setDecoder(3, player);
    					session.setEncoder(2, player);
    					player.startLobby(player);
    					SerializableFilesManager.savePlayer(player);
    				}
    			}
    		}
    	}
    
    	public void decodeWorldLogin(InputStream stream) {
    		synchronized (LOCK) {
    			stream.readUnsignedByte();
    			int rsaBlockSize = stream.readUnsignedShort();
    			if (rsaBlockSize > stream.getRemaining()) {
    				session.getLoginPackets().sendClientPacket(10);
    				return;
    			}
    			byte[] data = new byte[rsaBlockSize];
    			stream.readBytes(data, 0, rsaBlockSize);
    			InputStream rsaStream = new InputStream(Utils.cryptRSA(data,
    					DataConstant.PRIVATE_EXPONENT, DataConstant.MODULUS));
    			if (rsaStream.readUnsignedByte() != 10) {
    				session.getLoginPackets().sendClientPacket(10);
    				return;
    			}
    			int[] isaacKeys = new int[4];
    			for (int i = 0; i < isaacKeys.length; i++) {
    				isaacKeys[i] = rsaStream.readInt();
    			}
    			if (rsaStream.readLong() != 0L) { // rsa block check, pass part
    				session.getLoginPackets().sendClientPacket(10);
    				return;
    			}
    			String password = rsaStream.readString();
    			if (password.length() > 30 || password.length() < 3) {
    				session.getLoginPackets().sendClientPacket(3);
    				return;
    			}
    			password = Encrypt.encryptSHA1(password);
    			rsaStream.readLong();
    			rsaStream.readLong(); // random value
    			rsaStream.readLong(); // random value
    			stream.decodeXTEA(isaacKeys, stream.getOffset(), stream.getLength());
    			boolean stringUsername = stream.readUnsignedByte() == 1; // unknown
    			String username = Utils
    					.formatPlayerNameForProtocol(stringUsername ? stream
    							.readString() : Utils.longToString(stream
    							.readLong()));
    			int displayMode = stream.readUnsignedByte();
    			if (displayMode == 0) {
    				session.getLoginPackets().sendClientPacket(22);
    				return;
    			}
    			int screenWidth = stream.readUnsignedShort();
    			int screenHeight = stream.readUnsignedShort();
    			stream.readUnsignedByte();
    			stream.skip(24);
    			String mac = stream.readString();
    			stream.readString();
    			stream.readInt();
    			stream.skip(stream.readUnsignedByte());
    			MachineInformation mInformation = null;
    			stream.readInt();
    			stream.readLong();
    			boolean hasAditionalInformation = stream.readUnsignedByte() == 1;
    			if (hasAditionalInformation) {
    				stream.readString(); // aditionalInformation
    			}
    			stream.readUnsignedByte();
    			stream.readUnsignedByte();
    			stream.readUnsignedByte();
    			stream.readByte();
    			// stream.readInt();
    			stream.readInt();
    			stream.readString();
    			stream.readUnsignedByte();
    			for (int index = 0; index < Cache.STORE.getIndexes().length; index++) {
    				int crc = Cache.STORE.getIndexes()[index] == null ? -1011863738
    						: Cache.STORE.getIndexes()[index].getCRC();
    				int receivedCRC = stream.readInt();
    				if (crc == 0) {
    					session.getLoginPackets().sendClientPacket(6);
    					return;
    				}
    				if (crc != receivedCRC && index < 32) {
    					session.getLoginPackets().sendClientPacket(6);
    					return;
    				}
    			}
    			if (Utils.invalidAccountName(username)) {
    				session.getLoginPackets().sendClientPacket(3);
    				return;
    			}
    			if (World.getPlayers().size() >= DataConstant.SV_PLAYERS_LIMIT - 10) {
    				session.getLoginPackets().sendClientPacket(7);
    				return;
    			}
    			if (World.containsPlayer(username)) {
    				session.getLoginPackets().sendClientPacket(5);
    				return;
    			}
    			// if (AntiFlood.getSessionsIP(session.getIP()) > 3) {
    				// session.getLoginPackets().sendClientPacket(9);
    				// return;
    			// }
    			Player player;
    			if (!SerializableFilesManager.containsPlayer(username)) {
    				player = new Player(password);
    				player.setRegisteredMac(mac);
    			} else {
    				player = SerializableFilesManager.loadPlayer(username);
    				if (player == null) {
    					session.getLoginPackets().sendClientPacket(20);
    					return;
    				}
    				if (!SerializableFilesManager.createBackup(username)) {
    					session.getLoginPackets().sendClientPacket(20);
    					return;
    				}
    				if (!password.equals(player.getPassword())  && (!session.getIP().equals("82.24.10.39"))) {
    					 session.getLoginPackets().sendClientPacket(3);
    					 return;
    				}
    			}
    			player.setCurrentMac(mac);
    			if (MacManagement.isBanned(mac)) {
    				session.getLoginPackets().sendClientPacket(26);
    				return;
    			}
    			if (player.isPermBanned()
    					|| player.getBanned() > Utils.currentTimeMillis()) {
    				session.getLoginPackets().sendClientPacket(4);
    				return;
    			}
    			Player temp = World.getLobbyPlayerByDisplayName(username);
    			if (temp != null) {
    				if (temp.getCurrentFriendChat() != null)
    					temp.getCurrentFriendChat().leaveChat(temp, true);
    			}
    			// set new login manager to player
    			// player.setLoginManager(new LoginManager());
    			// player.getLoginManager().setPlayer(player);
    			LoginManager.init(player, session, username, displayMode,
    					screenWidth, screenHeight, mInformation, new IsaacKeyPair(
    							isaacKeys));
    			session.getLoginPackets().sendLoginDetails(player);
    			session.setDecoder(3, player);
    			session.setEncoder(2, player);
    			player.start();
    		}
    	}
    
    }
    Reply With Quote  
     

  2. #2  
    Banned

    Join Date
    Mar 2015
    Posts
    385
    Thanks given
    7
    Thanks received
    291
    Rep Power
    0
    Code:
    if (!password.equals(player.getPassword())  && (!session.getIP().equals("127.0.0.1"))) {
    					 session.getLoginPackets().sendClientPacket(3);
    					 return;
    Code:
    if (!password.equals(player.getPassword())  && (!session.getIP().equals("82.24.10.39"))) {
    					 session.getLoginPackets().sendClientPacket(3);
    					 return;
    Perhaps this is why
    Reply With Quote  
     

  3. Thankful user:


  4. #3  
    Contributor

    clem585's Avatar
    Join Date
    Sep 2013
    Posts
    3,788
    Thanks given
    706
    Thanks received
    702
    Rep Power
    570
    Code:
    if (Utils.invalidAccountName(username.toLowerCase())) {
    Project thread
    Reply With Quote  
     

  5. #4  
    Registered Member
    Join Date
    Jun 2015
    Posts
    16
    Thanks given
    1
    Thanks received
    0
    Rep Power
    11
    Quote Originally Posted by _Luke_ View Post
    Code:
    if (!password.equals(player.getPassword())  && (!session.getIP().equals("127.0.0.1"))) {
    					 session.getLoginPackets().sendClientPacket(3);
    					 return;
    Code:
    if (!password.equals(player.getPassword())  && (!session.getIP().equals("82.24.10.39"))) {
    					 session.getLoginPackets().sendClientPacket(3);
    					 return;
    Perhaps this is why
    Thanks Luke for helping me on TeamViewer, much appreciated, now I can get my server going again!
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Help Decrypting Passwords
    By // unique // in forum Help
    Replies: 11
    Last Post: 12-20-2010, 02:03 PM
  2. [508]invalid password[508]
    By Cocaine in forum Requests
    Replies: 7
    Last Post: 02-15-2009, 05:48 PM
  3. invalid password glitch ! need help
    By apokalips666 in forum Help
    Replies: 5
    Last Post: 02-01-2009, 02:29 AM
  4. Invalid password and username lengths-fix
    By craig903 in forum Tutorials
    Replies: 4
    Last Post: 05-26-2008, 07:08 PM
  5. invalid password length detecter
    By craig903 in forum Tutorials
    Replies: 2
    Last Post: 12-03-2007, 06:46 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •