- Joined
- Threads
- 1
- Posts
- 2
Hello,
While trying to crack exagear I ran onto a issue I cannot seem to solve so I hope the community might help me.
Disclaimer: I legally bought a licence, but since the developer has shut down support and the ability to buy new licences I have been left with no other options but the crack the application in order to use it.
To the problem:
Exagear upon activation will contact their activation server, send the activation key and the string from the file /sys/dev/block/179:0/device/cid and return a validation string.
I managed to intercept that communication, make a mock server, and redirect the activation process to mock server. Great, activation now always passes.
But upon starting exagear it will report that the licence key is not valid. It would seem that exagear upon staring takes the string from /sys/dev/block/179:0/device/cid, reconstructs the validation string and if they do not match, refuse to start. You are unable to change that since it is a system file (at least how much I know).
The string within /sys/dev/block/179:0/device/cid seems to be uniqe for every raspberry pi, so when the activation key is sent together with that string, a new string is generated based on these two parameters.
Based on the key and response, I can see that they are in base64, but cannot simply figure out what operation results with the final string. Can somebody give me a hand?
The client request:
skVersion: 0
uname_arch: armv7l
hwinfo: {
"hwInfoFormatName" : "sysfile",
"filePath" : "/sys/dev/block/179:0/device/cid",
"fileContent" : "035344534236344780e3c634f90139d5"
}
pk: VUJUTAAAAAC/igAAAAAAAIaBvdRFEBpgFVhpJyhW250QkCijZnL/3YKARQreDRhYdyxRzjqqsy0qykT4U4mVXsHjl9j0HtyUnCPWnsR86Mvtk57z8WYY62nnLraCl2MFdySsro+ccPy8utXyRgtC0dauAS6ZVnlbcxwNqhkZ8LQ7Y0IA3eKI53r5Hecesz1t
: undefined
The server response:
{
"status": "ok",
"result": "VUJUbAAAAADdVtNu29NJMrhMzGcrqldFAM1Sv7oFY2BEXXZtVILPjI9D91x+4BIi5vqJcz+kVgd00o3h5DxDBwx29f+o0lNiubq9zOngfQaIf/hVGZ1lczb4aYzbNQJWd2kgZ1WTzIbZVg=="
}
ONLY the "fileContent" will ever change on other machines, all other parameters stay the same on the request.
While trying to crack exagear I ran onto a issue I cannot seem to solve so I hope the community might help me.
Disclaimer: I legally bought a licence, but since the developer has shut down support and the ability to buy new licences I have been left with no other options but the crack the application in order to use it.
To the problem:
Exagear upon activation will contact their activation server, send the activation key and the string from the file /sys/dev/block/179:0/device/cid and return a validation string.
I managed to intercept that communication, make a mock server, and redirect the activation process to mock server. Great, activation now always passes.
But upon starting exagear it will report that the licence key is not valid. It would seem that exagear upon staring takes the string from /sys/dev/block/179:0/device/cid, reconstructs the validation string and if they do not match, refuse to start. You are unable to change that since it is a system file (at least how much I know).
The string within /sys/dev/block/179:0/device/cid seems to be uniqe for every raspberry pi, so when the activation key is sent together with that string, a new string is generated based on these two parameters.
Based on the key and response, I can see that they are in base64, but cannot simply figure out what operation results with the final string. Can somebody give me a hand?
The client request:
skVersion: 0
uname_arch: armv7l
hwinfo: {
"hwInfoFormatName" : "sysfile",
"filePath" : "/sys/dev/block/179:0/device/cid",
"fileContent" : "035344534236344780e3c634f90139d5"
}
pk: VUJUTAAAAAC/igAAAAAAAIaBvdRFEBpgFVhpJyhW250QkCijZnL/3YKARQreDRhYdyxRzjqqsy0qykT4U4mVXsHjl9j0HtyUnCPWnsR86Mvtk57z8WYY62nnLraCl2MFdySsro+ccPy8utXyRgtC0dauAS6ZVnlbcxwNqhkZ8LQ7Y0IA3eKI53r5Hecesz1t
: undefined
The server response:
{
"status": "ok",
"result": "VUJUbAAAAADdVtNu29NJMrhMzGcrqldFAM1Sv7oFY2BEXXZtVILPjI9D91x+4BIi5vqJcz+kVgd00o3h5DxDBwx29f+o0lNiubq9zOngfQaIf/hVGZ1lczb4aYzbNQJWd2kgZ1WTzIbZVg=="
}
ONLY the "fileContent" will ever change on other machines, all other parameters stay the same on the request.