Qlipse

Newbie
Aug 22, 2016
23
16
From what I can see login info is stored in a login.data file, the problem is that the game encrypt the data with a "SystemInfo.deviceUniqueIdentifier" string, thats unique for each computer.

And the same deviceUniqueIdentifier is used to decrypt the data again.So even if we copy the login.data file, it will not work, unless ofcause we can get the deviceUniqueIdentifier string too ... in that case we could maybe make something work.
 

jaques

Member
Aug 11, 2016
252
375


Windows Standalone: returns a hash from the concatenation of strings taken from Computer System Hardware Classes ( ):
Win32_BaseBoard::SerialNumber
Win32_BIOS::SerialNumber
Win32_Processor::UniqueId
Win32_DiskDrive::SerialNumber
Win32_OperatingSystem::SerialNumber
 

BadBananaGames

Newbie
Game Developer
Oct 17, 2016
41
63
From what I can see login info is stored in a login.data file, the problem is that the game encrypt the data with a "SystemInfo.deviceUniqueIdentifier" string, thats unique for each computer.

And the same deviceUniqueIdentifier is used to decrypt the data again.So even if we copy the login.data file, it will not work, unless ofcause we can get the deviceUniqueIdentifier string too ... in that case we could maybe make something work.
It seems that unique machine number is obtained by loginRequest.machineKey = SystemInfo.deviceUniqueIdentifier;
So, why not to hardcode loginRequest.machineKey to a static key from the patreon?
 

Fabios

Active Member
Dec 31, 2016
515
268
Can somebody crack picture this will be better then crack game i think=)
 

ikaruga

Well-Known Member
Modder
Donor
Respected User
Aug 11, 2016
1,194
2,530
Can somebody crack picture this will be better then crack game i think=)
I'm starting from this side of the quest.
Just founded chere the code check for these .img file. Saw the call to get the code then the call who decrypt images.
It's just a XOR between each byte of the image file with a value stored as "key" un G object.
*PS : founded the way the system store and remove money (from buying). It may be so easy for me to change a - by a + (add omney when you buy things), but i'm not equiped in sofware to recompile the things ...
 

ikaruga

Well-Known Member
Modder
Donor
Respected User
Aug 11, 2016
1,194
2,530
Just found this too :

Code:
if (Input.GetKeyUp("d") && (Input.GetKey(KeyCode.LeftShift) & Input.GetKey(KeyCode.LeftControl)))
    {
        Debug.Log("debug mode");
=> Left Ctrl + Left shift + d key combo
Maybe worth a try with a full working game
 

ikaruga

Well-Known Member
Modder
Donor
Respected User
Aug 11, 2016
1,194
2,530
The key to decypher the images is created with
Code:
G.key = G.craftKey(11705, 9259);
And here the function

Code:
public static byte[] craftKey(int seed, int keysize)
{
    byte[] array = new byte[keysize];
    Random random = new Random(seed);
    random.NextBytes(array);
    return array;
}
And here the image loader :
Code:
// game
private void imageLoader()
{
    string text = global::GUI.load;
    int num = 1920;
    int num2 = 1080;
    global::GUI.load = string.Empty;
    if (!text.Contains(".jpg") & !text.Contains(".png"))
    {
        text += ".img";
    }
    string path = global::GUI.pathImages + text;
    try
    {
        UnityEngine.Object.DestroyImmediate(global::GUI.txt);
        UnityEngine.Object.DestroyImmediate(global::GUI.spr);
        global::GUI.txt = new Texture2D(num, num2);
        global::GUI.txt.filterMode = FilterMode.Trilinear;
        byte[] array = File.ReadAllBytes(path);
        byte[] key = G.key;
        if (text.Substring(0, 4) != "loc-")
        {
            key = G.craftKey(array.Length + text.Split(new char[]
            {
                '.'
            })[0].GetHashCode(), array.Length / global::GUI.iter);
        }
        array = G.code(array, key);
        global::GUI.txt.LoadImage(array);
        global::GUI.spr = Sprite.Create(global::GUI.txt, new Rect(0f, 0f, (float)num, (float)num2), new Vector2(0f, 0f), 100f);
        global::GUI.loadObj.GetComponent<Image>().sprite = global::GUI.spr;
    }
    catch (Exception ex)
    {
        Debug.Log(string.Concat(new string[]
        {
            "ERROR: game.imageLoader: can't find image `",
            global::GUI.pathImages,
            text,
            "`\n",
            ex.Message
        }));
    }
}
So maybe someone cand create a micro app who use theses codes to "generate" uncrypted images.
 
  • Like
Reactions: tobias

zeroedition

New Member
Mar 10, 2017
2
0
Just found this too :

Code:
[/QUOTE]

use [URL]http://www.irfanview.com/[/URL] this program for .img files
use this program for .img files
P.S. but its open only emo**.img files
 
Last edited:

cuddlepuddle

Newbie
Donor
Dec 22, 2016
42
178
You should run a spy during the installation/login process and see if and what game data is being fetched off online servers. The original download is likely useless without those files, unless of course no essential game data is downloaded during authentication.

Quote from the dev:


Going through all this trouble, he would be stupid not to make sure the required data is essential.

Once you have all the files, wrap it and send it off to one of the guys willing to have a crack at it (no pun intended) so your private credentials aren't shared.
Anybody got a good tutorial for doing this? I'm a software engineer so familiar with code but no experience with packet spying etc. stuff. (I only do Java backend shit for work)

If somebody posts one I'll take a crack at it tonight (won't be on my PC til then, sorry :/ )
 

booom313

Drama Queen
Modder
Donor
Game Developer
Sep 14, 2016
110
401
oops

sadly doesn't use the standart ispconfig pass of admin admin

use a vpn btw if you want to use that site
 
3.40 star(s) 107 Votes