You would need to ask Darky for the answer, but he isn't here usually. I believe the ini file connects to the server in order to check the keys however.
Does anyone know how Darky's Key Changer/Checker actually checks the keys you put in?
In the config file I see this:
So I'm assume he sends some sort of request to the server, asking if the key is legit.Code:BEServer = 81.0.236.117 BEServer_Port = 2324
Then again for if it is banned.
Anyone know how to request these from the BE server?
You would need to ask Darky for the answer, but he isn't here usually. I believe the ini file connects to the server in order to check the keys however.
MPGH Staff History:
Minion: 02-12-2013 - 6-28-2013
Former Staff: 6-28-2013 - 7-14-2014
Minion: 7-14-2014 - 1-3-2015
Minion+: 1-3-2015 - 6-1-2015
Moderator: 6-1-2015 - 10-2-2016
Global Moderator: 10-2-2016 - Current
Current Sections:
DayZ Mod & Standalone Hacks & Cheats
BattleOn Games Hacks, Cheats & Trainers
Minecraft Hacks
Other Semi-Popular First Person Shooter Hacks
Blackshot Hacks & Cheats
Need For Speed World Hacks
Other First Person Shooter Hacks
CounterStrike: Global Offensive Hacks
Garry's Mod Hacks & Cheats
Donating:
If you want to donate money to me I take Bitcoin & Paypal, PM me for either of these if you're interested and thanks.
Top Donators: (Awesome People)
FanticSteal $75.00
smurf_master $58.00 <- Best DayZ Gear Seller
Fujiyama $25.00
[MPGH]Black $10.00
[MPGH]Hova $10.00
xJudgez $4.54
[MPGH]Normen's Sheep $3.50
eminemlover $1.50
Brony?
https://www.mpgh.net/forum/groups/1728-mpgh-bronies.html
Thanks for the information, I will try and look into this a bit further. Very interesting stuff to me.
If anyone else can give any hints or anything as to how this COULD be done, I'd appreciate it!
I've been messing with Darkys Key Changer trying to figure it out. To check if its banned or not banned it sends the key in BEGuid form to 81.0.236.117 and that server replies with nothing or the global ban+number. I don't fully understand how it checks if the key is valid yet. What I know is it sends information to 69.10.30.248 on port 29910 that server then replies with stuff telling you if the keys valid or not. That's all I know. I'm not sure exactly what it sends to 69.10.30.248, I think its encrypted or somethin :\
disabilitor (02-23-2013),fragrantparrot (02-22-2013)
Foobs (02-23-2013)
Foobs (02-23-2013)
Any tips for a beginner on how exactly this works? =)
You're correct it what exactly it returns is Global Ban and the first 6 digits of BEGuid. So that number is unique to each cd key.
I couldnt work out what it was sending either. I tested with 1 invalid cd key and 1 vaild cd key (00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 and C6-B4-5F-F6-28-DB-54-89-1F-58-83-21-4B-04-CE)
I also followed the packets when it was a keycheck and then did a whois on 69.10.30.248 and it returned as IGN Entertainment ?
Mega wtf when i saw that.
Video Games, Wikis, Cheats, Walkthroughs, Reviews, News & Videos - IGN
IP Address Lookup - Whois by IP Address | Whois.net
The only thing I have noticed is that when a key is valid it will return a packet of a length between 92 and 93. When the key is invalid it will return a packet of a length between 114 and 116.
disabilitor (02-23-2013),Distraught (02-23-2013),Foobs (02-23-2013)
Very good work guys! Thanks a lot. I haven't really had the time to go through this in the past week, so thank you for sharing! I will try and see if I can dig up anything else this weekend.
Foobs (02-23-2013)
Yea I sat there for a good couple hours studying the packets trying different keys invalid and valid, checking the same key multiple times to find the similarities in the packets. For each key there was a constant string that was the same in all packets sent to check for validity. Each key had a different string that was constant, and I really got stuck when the length of the string changed depending on the key. I just couldn't pin-point what it was sending.
And I also did a look-up of the IP although it didn't know who it belonged to. Just that it was U.S. based.
I did some googling and found darky's original post on another cheating forum to see if he had sad anything about it. The only thing of use he said was that it contacts the master-server to check if its valid.(not all that use-full)
I'm working on a program that will randomly generate keys and auto check them so you can just leave it running in the background. So far it generates possible keys(1mil in under 30 seconds), can convert cd-keys to Guid and BEGuid at the same time, and checks to see if a CD-Key is banned and if so tells you the ban #. I would release it but I need to add a bunch of fail-safes so if people type PENIS(for-example) as a key it'll tell em that's not a valid input.
disabilitor (02-23-2013)
disabilitor (02-23-2013)
Awesome information overload.
<3 You guys when you actually help.
Once the Java version is closer to finished and we actually know how to check for validation I'll probably contact you.
Although I'm not really sure we need a vb.net version. This is pretty easy to use, and it'll be even easier then it is now when it's done.
Sends 4 characters + the BEGuid.
CD-Key = XXXX-XXXXX-XXXXX-XXXXX-XXXXX ----> md5 ---> = Game Guid ----> md5 ---> BEGuid
I'm not a pro-programmer, I really don't even know all that much Java :P. I just use google and have a good understanding
of programming.
Yea that'd be cool. As of right now I think it's pretty decent, the code is there it's just not as optimized as it should be. Also everything is out of order because of the GUI builder I used. Basically what's left to do is figure out that key validation and make it noob-friendly.Code:btnBanCheck.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String s = BEGuidInput.getText(); MessageDigest m; try { m = MessageDigest.getInstance("MD5"); m.update(s.getBytes(),0,s.length()); ready = (new BigInteger(1,m.digest()).toString(16)); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } String s2 = "BE" + ready; MessageDigest m2; try { m2 = MessageDigest.getInstance("MD5"); m2.update(s2.getBytes(),0,s2.length()); BEGuidSend = (new BigInteger(1,m2.digest()).toString(16)); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } DatagramSocket socket = null; try { InetAddress host = InetAddress.getByName("81.0.236.117"); int port = Integer.parseInt("2324"); socket = new DatagramSocket(); byte [] data = ("s a "+ BEGuidSend).getBytes(); DatagramPacket packet = new DatagramPacket( data, data.length, host, port ); socket.send( packet ); socket.setSoTimeout(Integer.parseInt(timeout.getText())); packet.setData( new byte[PACKETSIZE] ); socket.receive( packet ); if (new String(packet.getData()).indexOf("Global") >=0) { checkResult.setText("This key ha" + new String(packet.getData())+"." ); } else { checkResult.setText("This key is clean."); } } catch( Exception e ) { checkResult.setText( "Timeout" ); } finally { if( socket != null ) socket.close(); } } });
Last edited by Foobs; 02-23-2013 at 10:40 PM.
disabilitor (02-23-2013)