Skip to main content
GameDev.net gamedev.net
🔒 Locked

Pattern recognition

Started by Wildcorn Dec 16, 2002 at 11:22 PM 1 replies 700+ views
Original Post
Wildcorn
Wildcorn
Well I''m design a little program for ... well pretty much data mining. I''ll explain where my ideas coming from so you can see what it is more clearly. Well I was thinking about NWN (never winter nights) and how it won''t work on lan unless you have two individual CD keys. Then I remembered there is a tool that generates CD keys for you (I do own the game by the way) However the problem with the CD keys is they don''t work online. So how can that be? CD keys that will work for singleplayer but not online? Obviously the online CD keys have another limitation on them... something that isn''t part of the single player key (thus protecting online gameplay and keeping the secret of the cd keys secret). So my question is: Does anyone have any NWN Cd keys they can give me? ... I''m kidding... really. Back to the problem, I''m also aware that you can make a CD key generater by reverse engineering the game and doing the opposite of what its checking for... basically building a key to work off those conditions. However thats probably pretty difficult and doing that doesn''t teach me anything about AI (which I love!), so heres what I''m trying to do. Create an AI that would use inductive reasoning to find similarities between data sets. heres my ''game plan'' thus far: DEFINITIONS SET: A group of symbols, aka a number of similar pictures, names of 16 hobbits, 3 lines of C++ code. GROUPING: One piece on input data can (and will be) broken down into many many symbols. The grouping is all of the symbols that are generated off of one set. SPECFIC GROUPING: If we take one piece of data and turn it into one symbol, that would be SPECIFIC GROUP 1. Theres 1 symbol at this level. If we take all of that data and split it into two groups, that would be SPECIFIC GROUP 2. There are many ways to split the input into two groups. Take alternating sets, split it down the middle, etc. All of the symbols that result from spliting the input into two groups is part of SPECIFIC GROUP 2. Just ass all of the possible symbols that emerge from splitting the input into 3 groups are part of SPECIFIC GROUP 3 SYMBOL: Any set or individual piece of data that can be stored in binary on a computer. A string of digits, a single letter, a picture are all SYMBOLS. For example, if I had the number series 1466734, that would be (initially) one symbol. RULES: If in a set, theres founds to be certain operations on symbols that give a consistant result ALL the time (aka length of symbol is always 4, or theres always a semicolon at the end) then this is output as a rule. Rules are basically trends with 100% probability. TRENDS: If in a set, theres found to be an semi-consistancy, then this is expresed as a trend with a probability. aka: Theres a 90% chance the SYMBOL contains no letters. What my program would do is input a number of such symbols, and analize the patterns. It would look at each symbol and compare them with a given set of opeartions it can preform on them. It would then tally up the frequency that each operation came out with a given result. To summarize these operations we have LENGTH -> length of the symbol in bytes CRC -> Some kind of checksum, I''m not certain what CRC checksum is... ADDITION -> Addition of a symbol with another symbol from its specific group SUBTRACTION -> similar to addition, but with subtraction! MULTIPLICATION DIVISION Then theres the XOR sets XOR1ADDITION -> The XOR of the first added to the second XOR1SUBTRACTION XOR1MULTIPLICATION XOR1DIVISION XOR2ADDITION -> The XOR of the second added to the first XOR2SUBTRACTION XOR2MULTIPLICATION XOR2DIVISION XORXORADDITION -> The XOR of the second added to the XOR of the first XORXORSUBTRACTION XORXORMULTIPLICATION XORXORDIVISION So basically what you end up with (after a very very long time) is a huge series of data (which I''d probably need to have stored in a database, because there wouldn''t be enough memory...) Then once you had that data you''d need to compare all of the variables for each stage, with all other data at each stage, and then compare the data modifiers with all other data, and all other data modifiers. AKA you check everything against everything else. So after the month or so THAT takes the program would ideally be able to spit out a series of RULES and TRENDS that were created from the input. Most trends would be below 50% and would be omited from the output. Does this seem like a plausible idea? Any comments or suggestions? Also any links on inductive reasoning would be much appreciated. As a final word, based on the time to analyze the data, I think I would create a simple program to generate very simple data strings that follow simple rules, then I''d have this program try to find that pattern, or another pattern that works just as well.
Stilton
Stilton
I will admit I didn''t quite follow your proposal for pattern recognition here, but;

Are you sure that the CD key doesn''t work online because of a key limitation? I''ve never played NWN, but I know from other games faked keys quite often don''t work online because they have been blocked, or because someone else is using that key etc (Q3A being a classic example)

Also, if the hashing algorithm is written correctly for the NWN CD keys, then there won''t be any pattern to recognise. That''s the idea of encryption; if there were patterns to recognise then they''d be easy to crack. New encryption is really only susceptable to brute-force attacks (trying every combination until you get a hit) - in theory the encyption should look completely random. As should the a hashed key.

As I say I didn''t really get your method here, so you may have addressed these issues.
Wildcorn
Wildcorn
Well actually I don''t know a whole lot about the CD-key, I just know that what works for single player (fake key) won''t work for multiplayer. Even if you use some generator program and make the CD key with it (so its likely new).

The weird thing is, I made a cd-key, and took it online, while my brother took ours and went online, but then backed out of our lan game. I just loggged off (without actually joining any game) and then when I checked back, that new CD-key was invalid. So I don''t know what to think.

I later found out by adding bioware to the windows host file, I can get around the whole CD-check for lan, but I still want to try pattern recognition on something.


As for brute force, thats basically what mine is, try comparing every aspect with everything else, with permuations, with powers of permutations, with this with that...

Apparently my method is very similar to some published articles I found. Neat.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.