Hmm good job!
good luck
This is a discussion on RedProtect within the Development forums, part of the Java Based (Odin) category; RedProtect will be a new feature for my server RedMS. Yes I am Mikey the original RMS owner(Youtube up RedMS, ...
RedProtect will be a new feature for my server RedMS. Yes I am Mikey the original RMS owner(Youtube up RedMS, if you don't know).
Features:
Packet editing detection(Detects all winsock & MapleStory hooks)
Memory editing(VirtualQueryEx(); is my hero!)
Dll injection(:3 I'll keep this a secret)
Hook detection(Detects hooks)
Everything is controlled by the server, the whole module is virtualized and heavily encrypted. The server will send random heartbeats at random time, and will require a heartbeat response back to continue to play the server.
Everything is done... I just need to include timestamps on packets. Be sure to keep an eye on this thread :)
This is the response handler I've coded... I'm keeping the clientside response as a secret.
Code:package net.sf.odinms.client.anticheat; import java.util.Arrays; import net.sf.odinms.client.MapleClient; import net.sf.odinms.net.AbstractMaplePacketHandler; import net.sf.odinms.server.maps.MapleMapObjectType; import net.sf.odinms.tools.MaplePacketCreator; import net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor; import net.sf.odinms.net.channel.*; public class AntiHackHandler extends AbstractMaplePacketHandler{ @Override /* * [FC 00] [HackCode] * HackCode = 1 Byte * * HackCodes: - * 0x0 - Heartbeat * 0x1 - Packet editor detected * 0x2 - Memory edit detected * 0x3 - Undefined dll injected * 0x4 - Hook was rewrote * 0x5 - Unspecified error */ public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { byte hackCode = slea.readByte(); ChannelServer cserv = c.getChannelServer(); try{ switch(hackCode){ case 0x0: if(!c.getPlayer().isChecked()) c.getPlayer().setChecked( true ); break; case 0x1: //Packet Editor detected c.getPlayer().ban("[RedProtect]Packet Editor", true); cserv.getWorldInterface().broadcastMessage("[RedProtect]", MaplePacketCreator.serverNotice(9, c.getPlayer().getName() + "has been banned for trace of packet editing").getBytes()); c.getSession().close(); break; case 0x2: //Memory edit detected c.getPlayer().ban("[RedProtect]Memory editing", true); cserv.getWorldInterface().broadcastMessage("[RedProtect]", MaplePacketCreator.serverNotice(9, c.getPlayer().getName() + "has been banned for trace of memory editing").getBytes()); c.getSession().close(); break; case 0x3: //Undefined dll injected //c.getPlayer().ban("[RedProtect]Dll injection", true); //cserv.getWorldInterface().broadcastMessage("[RedProtect]", MaplePacketCreator.serverNotice(6, c.getPlayer().getName() + "has been banned for trace of a dll injected").getBytes()); c.getSession().close(); break; case 0x4: //Hook was rewrote c.getPlayer().ban("[RedProtect]Hook rewrote", true); cserv.getWorldInterface().broadcastMessage("[RedProtect]", MaplePacketCreator.serverNotice(9, c.getPlayer().getName() + "has been banned for trace of rewriting a hook").getBytes()); c.getSession().close(); break; case 0x5: //Unspecified error c.getSession().close(); break; default: //This should never be reached c.getSession().close(); break; } } catch(Exception e){ } } }
Hmm good job!
good luck
good luck with this, sounds promising ^_^
Vi3t Pride 4life
RaGeZoNeR FTW~~!!
[youtubevid]Xeje_pp_NyA[/youtubevid]
I've implemented timestamps on the packets.
RedMS will be back by the summer, stay tune :)
i hope you release this to the public ^_^
Vi3t Pride 4life
RaGeZoNeR FTW~~!!
[youtubevid]Xeje_pp_NyA[/youtubevid]
If you aren't releasing this, there's no need fir this dev thread. The rules state not to show off. Just pointing that out.