Hellow People I need help with some Caanoo Questions...

Started by Ariel Yust, February 21, 2011, 11:58:17 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Ariel Yust

Is it possible to some how run ipconfig in linux ?
if so the text in the window can be copied and filtered for the mac address :)
Play  **Zombies On My Grass**  !  >:}

Zip

Sorry for stupid question, but
if caanoo have'nt a wifi pen it have'nt a mac?

i know mac address is correlate to network interface card, im wrong?

FreeYourMind

Ohhh sheet, the serial number of my caanoo in no longer visible in the carcase, it's erased!!!
With the mac address is suficiemnt, it's easy to read, so, the problem it's the user need to execute the game one time to get a code to send back to us to register the game.

Ariel can you share your encript / decrypt system with us ? I send you a way to get the mac address and whe get the problem resolved.

FreeYourMind

Quote from: Zip on February 24, 2011, 04:37:04 PM
Ah,
mmm
in the file called wiz linux uboot or something like this,?
Teory is the file which change firmware it shoud read serial

I think the id from procesor can get from pollux files, i find them in uboot:


Example: mes_ecid.c

in u-boot-1.1.6/cpu/arm926ejs/pollux/prototype/module

Ariel Yust

well I can't share you the source-code because then I can't use the serials anymore =]

but I can tell you how to make your own serials, I made mine in couple of hours =]
and if you have a problem I will gladly help


there are many types of ways to make serials so each can do a unique set of his own
for example you can make a function that uses only an array of lets say 8 digits or more, or an unsigned integer.

but for our example lets use an unsigned integer:

so our function input -> (int serial,int some_factor) and output is an int unsigned result;
now lets create our first layer that we will use to mask our numbers...

layer1=12345678; //random numbers it is important that the decoder and coder will have the same variable numbers!
layer2=01030405; //more random numbers, create as many layers as you want

note that now you can XOR those layers with the "serial" variable and store it in "result"
in order to decode stuff with XOR you can just XOR again in the decoder it works you can try it =]

then you take "result" take out all the letters into an array of the same digit size.
then shift or/and swap the numbers in the directions/positions you choose... for example the most left digit swap places with the most right one...
just remember the order of the shifts/swaps you make so you could back flip it in the decoder!



in the decoder you do the same thing just the opposite! so copy paste and change the order
make sure you read the array in the correct way! because if in the coder you read from left to right
then in the decoder you will do the opposite most likely... so print each time you make an action to understand what's going on;

the coder is easier to make then the decoder in that sense =]

simple example:

int unsigned coder(int serial,double factor)
{
 int layer1=12345678;
 double layer2=45.0; // ".0" because its cos input is double
 int unsigned result;

 result=result^layer1;
 result+=(cos(layer2)*10000000); //the outcome of cos will be 0.70710678 so you can use those xxx numbers if you multiply =]
                                           //because we have 8 digits in result, multiply by 10000000 to make 70710678 now we use it
                                           

 result+=(cos(factor*factor)*10000000); //you can write anything here as long as it appears the same in the decoder
 return result;
}

int decoder(int unsigned result,double factor)
{
 int layer1=12345678;
 double layer2=45.0;
 int serial;

 result-=(cos(factor*factor)*10000000); //note

 
 result-=(cos(layer2)*10000000); //the outcome of cos will be 0.70710678 so you can use those xxx numbers if you multiply =]
                                           //because we have 8 digits in result, multiply by 10000000 to make 70710678 now we use it

 result=result^layer1;

 return result;
}

factor is just a variable that you can use to identify which game's code is it, so if you have more then one game
you can use the same system but with a factor that will change the serial slightly or complete as you wish =]
there is a lot of playing around here... so try and error is inevitable =]


also this code should work, so look at the pattern, see how something you wrote in the end of the Coder now you must write it at the start of your Decoder.
if it makes it easier for you, write both the functions in one function give it a number and see if after the coding and decoding phases - the number will stay the same.
if so then you can now split the function to the 2 functions you actually need.

*test on all the combination your going to have in order to see if everything is correct and working =]

I wrote it in C++ for testing my coding system but you can do it also with Bennu with the same struction =]
you should add more digits and try to shift and/or swap letters to make it more difficult to crack =]
my next task is to create a 12 digit coding system with letters =]

Hope this helps and I will keep more updates as I go.
Play  **Zombies On My Grass**  !  >:}


SplinterGU

Quote from: FreeYourMind on February 24, 2011, 06:07:51 PM
Ohhh sheet, the serial number of my caanoo in no longer visible in the carcase, it's erased!!!
With the mac address is suficiemnt, it's easy to read, so, the problem it's the user need to execute the game one time to get a code to send back to us to register the game.

Ariel can you share your encript / decrypt system with us ? I send you a way to get the mac address and whe get the problem resolved.

no man, If Ariel share his code with us, then his serial will be useless...

I said several times... you all must understand that the serial/encription/etc method for security stuff must be closed... this is the reason why bennugd don't have it.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

attention with cos function (or other trigonometric functions) it can return different result depending OS or C compiler version or CPU. I don't suggest use it.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Zip

i think an simple algoritm is good for what we need to do...

example
serial is
00000015 = x

the algoritm is
x*356+12/3

reg key is 1784 (0001784)

i think adding some other operathion is possible to see quickly how work algoritm?
i dont think...

u need to compare
serial and reg key
serial and reg key
serial and reg key

and working on it some day..

Ariel Yust

#84
@ZIP
your serial is easy to crack =]

the best way would be to add swapping and shifting of the digits also
and avoid a same pattern numbers

for instance:

15=0001784
16=0001902
17=0002021

2021-1902=119
1902-1784=118

we get different numbers because the integers eliminate the numbers after the decimal xxx.yyy = xxx;

so 18 would be [17]+119 or [17]+118 -->  0002021+119 or 0002021+118

which gives us:  

     18 = 0002140 or 0002139
     after checking 0002140  would be correct.

this is why your method wouldn't work.
doing the same trick on all the numbers makes it easier to crack them, as you can see
I need to find at least 2 legal serials to understand the pattern =]
the more the better...

you must do different shifts/swaps/changes so cracking it would be hard up to almost impossible.


btw

@Splinter

Thanks for pointing out the cos/sin thing... Then instead it would be wiser to store a specific digit.
its not very secured but it will work after all.



another method to decrypt your game (thank you Ecko for pointing it out to me yesterday) is to encrypt you game data
add the serial to your graphics and game data, so even if the user override your serial check using a third-party memory hacking program
he will be able to play with a 100% fully bugged and full of graphic artifacts and crash because that code wasn't translating our graphics and data files ;)

for instance try to change certain colors into each pixel of our graph
example : recolor all rgb(0,0,0) colored pixels to rgb(12,13,14);
swap and shift every pixel with another one in the same way ;)

now we have a pattern with all the pixels =]
and if you try to use the graph without decrypting when you load the fpg then you get jagged graphics :P
if you enjoy playing with pony poop looking graphics then be my guest and crack the game :D

Btw Coding the graphics you do only once!
its the program responsibility to decode your graphics and data files using the Unlocking Serial you have used =]
if that Serial will be correct then the correct math will apply to the decrypting serial that will decode your graphics =]
use the decrypting serial as digits that represent commands that are needed to be done in a certain order to fix the graphics ;)


I hope I was clear enough :P

@Free

so how do I read the mac address from the Caanoo?  8)
Play  **Zombies On My Grass**  !  >:}

Zip

Quote from: Ariel Yust on February 25, 2011, 01:52:11 PM
@ZIP
your serial is easy to crack =]

the best way would be to add swapping and shifting of the digits also
and avoid a same pattern numbers

for instance:

15=0001784
16=0001902
17=0002021

2021-1902=119
1902-1784=118

we get different numbers because the integers eliminate the numbers after the decimal xxx.yyy = xxx;

so 18 would be [17]+119 or [17]+118 -->  0002021+119 or 0002021+118

which gives us:  

     18 = 0002140 or 0002139
     after checking 0002140  would be correct.

this is why your method wouldn't work.
doing the same trick on all the numbers makes it easier to crack them, as you can see
I need to find at least 2 legal serials to understand the pattern =]
the more the better...

you must do different shifts/swaps/changes so cracking it would be hard up to almost impossible.

my was a very simple lol you won XD

ok i'm newbie at algoritm...  ::)

SplinterGU

Anyway... this thread must be considerate for theory porpuse only... anybody don't must use the algorithms descript here... because it's must be closed for secure reasons.

the method of encrypt data, we already use it (like it) with bomberlink for some graph that bomberlink want protect... but not whole graph need be encrypted... only portion of it or only each 2, 3, 4, or any pixels
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Ariel Yust

I will agree with you Splinter, not the whole graph must be encrypted, it will cost less work to decode smaller portions of a graph :)

anyway I'm waiting for FreeYourMind to post his way of reading the Caanoo Machine Address
I have little experience with Linux but I did have it before  :)

and then I will Order my Caanoo =]
would you guys recommend buying the Caanoo wifi dongle also ?
Play  **Zombies On My Grass**  !  >:}

Zip

for me is useless,
but if you wanna make a game whit wifi connection ::)

FreeYourMind

I need more tests, i'm not complete sure the file i read with this code is diferent in another Caanoo, tomorrow i say something about it.