Page 1 of 2

possible cheater?

Posted: Tue Feb 23, 2010 7:41 am
by qwerty13
L2J Revision 3953:
L2JDP Revision 7103:

I have flooded gs console with messages like this:

Code: Select all

Player Инквизитор reverted to base class. Possibly has tried a relogin exploit while subclassing.Could not restore classes for Инквизитор: com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: '1.7413527201E10' in column '3' is outside valid range for the datatype INTEGER.com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: '1.7413527201E10' in column '3' is outside valid range for the datatype INTEGER.	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)	at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)	at com.mysql.jdbc.Util.getInstance(Util.java:381)	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1024)	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:986)	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:981)	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)	at com.mysql.jdbc.ResultSetImpl.throwRangeException(ResultSetImpl.java:7970)	at com.mysql.jdbc.ResultSetImpl.parseIntAsDouble(ResultSetImpl.java:7199)	at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2702)	at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2813)	at com.mchange.v2.c3p0.impl.NewProxyResultSet.getInt(NewProxyResultSet.java:2573)	at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.restoreSubClassData(L2PcInstance.java:7566)	at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.restore(L2PcInstance.java:7373)	at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.load(L2PcInstance.java:1112)	at com.l2jserver.gameserver.network.L2GameClient.loadCharFromDisk(L2GameClient.java:496)	at com.l2jserver.gameserver.network.clientpackets.CharacterSelect.runImpl(CharacterSelect.java:92)	at com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:92)	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)	at java.lang.Thread.run(Thread.java:619)
I think player try to do a multi-profession? Somebody can help me to avoid this? Thanks.

Re: possible cheater?

Posted: Tue Feb 23, 2010 8:25 am
by _DS_
What in this line of your L2PcInstance ?
at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.restoreSubClassData(L2PcInstance.java:7566)

Re: possible cheater?

Posted: Tue Feb 23, 2010 8:32 am
by qwerty13
line 7566:

Code: Select all

subClass.setSp(rset.getInt("sp"));

Re: possible cheater?

Posted: Tue Feb 23, 2010 8:34 am
by _DS_
As you can see, he has huge SP value for one subclass, overflowing integer.
Possibly need to check backups and logs to find how it happens.

Re: possible cheater?

Posted: Tue Feb 23, 2010 8:44 am
by qwerty13
What exactly logs i am need to check? Can you help me with that?

Re: possible cheater?

Posted: Tue Feb 23, 2010 8:49 am
by _DS_
As you can see, 'sp' column is saved as integer:
storeCharSub():
statement.setInt(2, subClass.getSp());
so server technically can't save so big value (17413527201).

Check - as usual, any suspective things :)

Re: possible cheater?

Posted: Tue Feb 23, 2010 9:18 am
by denser
it can happen on hi-rate sp :) player killing and killing mobs, get SP and if is autoskilllearn - he cant spend it. so SP accumulates)
exit - SP rate must be low. or change to "long" in core.

Re: possible cheater?

Posted: Tue Feb 23, 2010 9:21 am
by _DS_
It cant happen on any rate, because sp stored in the integer variable.

Re: possible cheater?

Posted: Tue Feb 23, 2010 10:22 am
by qwerty13
I am check, for now this player have 683498966 SP. Yesterday this player have 677826066 SP.

Also founded new logs with another values:

Code: Select all

Could not restore classes for Инквизитор: com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: '9.180546785E9' in column '3' is outside valid range for the datatype INTEGER.com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: '9.180546785E9' in column '3' is outside valid range for the datatype INTEGER.	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)	at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)	at com.mysql.jdbc.Util.getInstance(Util.java:381)	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1024)	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:986)	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:981)	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)	at com.mysql.jdbc.ResultSetImpl.throwRangeException(ResultSetImpl.java:7970)	at com.mysql.jdbc.ResultSetImpl.parseIntAsDouble(ResultSetImpl.java:7199)	at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2702)	at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2813)	at com.mchange.v2.c3p0.impl.NewProxyResultSet.getInt(NewProxyResultSet.java:2573)	at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.restoreSubClassData(L2PcInstance.java:7566)	at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.restore(L2PcInstance.java:7373)	at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.load(L2PcInstance.java:1112)	at com.l2jserver.gameserver.network.L2GameClient.loadCharFromDisk(L2GameClient.java:496)	at com.l2jserver.gameserver.network.clientpackets.CharacterSelect.runImpl(CharacterSelect.java:92)	at com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:92)	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)	at java.lang.Thread.run(Thread.java:619)Could not restore char subclass info: com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: '1.7413527201E10' in column '2' is outside valid range for the datatype INTEGER.Could not restore classes for Инквизитор: com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: '1.7413527201E10' in column '3' is outside valid range for the datatype INTEGER.com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: '1.7413527201E10' in column '3' is outside valid range for the datatype INTEGER.	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)	at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)	at com.mysql.jdbc.Util.getInstance(Util.java:381)	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1024)	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:986)	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:981)	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)	at com.mysql.jdbc.ResultSetImpl.throwRangeException(ResultSetImpl.java:7970)	at com.mysql.jdbc.ResultSetImpl.parseIntAsDouble(ResultSetImpl.java:7199)	at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2702)	at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2813)	at com.mchange.v2.c3p0.impl.NewProxyResultSet.getInt(NewProxyResultSet.java:2573)	at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.restoreSubClassData(L2PcInstance.java:7566)	at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.restore(L2PcInstance.java:7373)	at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.load(L2PcInstance.java:1112)	at com.l2jserver.gameserver.network.L2GameClient.loadCharFromDisk(L2GameClient.java:496)	at com.l2jserver.gameserver.network.clientpackets.CharacterSelect.runImpl(CharacterSelect.java:92)	at com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:92)	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)	at java.lang.Thread.run(Thread.java:619)

Re: possible cheater?

Posted: Tue Feb 23, 2010 10:29 am
by momo61
so what exactly is happening ? I know you said this spams your console, but do you see any negative effects from it?

Re: possible cheater?

Posted: Tue Feb 23, 2010 10:37 am
by _DS_
qwerty13 wrote:I am check, for now this player have 683498966 SP. Yesterday this player have 677826066 SP.
Check not player SP, but this subclass SP.

Re: possible cheater?

Posted: Tue Feb 23, 2010 10:38 am
by qwerty13
This player have 1 subclass, that subclass 40 lvl with 0 SP.

Re: possible cheater?

Posted: Tue Feb 23, 2010 10:42 am
by _DS_
Can you try to move it on the different account and login by self ?

Re: possible cheater?

Posted: Tue Feb 23, 2010 10:43 am
by momo61
qwerty13 wrote:This player have 1 subclass, that subclass 40 lvl with 0 SP.
and is that a problem ? :O

Re: possible cheater?

Posted: Tue Feb 23, 2010 10:43 am
by _DS_
And run a check on the database, maybe tables are damaged.