Programista on 3:05 PM 07/28/2024: Hello.
Can I ask for some direction? I understood that the entered key is used in this code:
mov ecx,13
lodsb
rol al,cl
add ebx,eax
But then I get a division by zero exception and I hit the ud2 instruction and I can't find the place where this entered key is checked.
Have a nice day.
Shurafen on 7:43 AM 07/31/2024: Hi!
"div eax" and "ud2" cause an exception. There is a SEH setup before executing these instructions (NOTE: xor dword ptr ss:[esp], 0xFFBFCEAA
Shurafen on 7:45 AM 07/31/2024: Hi!
"div eax" and "ud2" cause an exception. There is a SEH setup before executing these instructions (NOTE: xor dword ptr ss:[esp], 0xFFBFCEAA == pointer setup). After executing my exception handler execution returns to the next instruction after exception. Few antidebug features are present: hardware bp and software bp tests.
Hope this helps :)
nignog on 8:25 PM 08/21/2024: fuck, wasnt able to do it, can anyone throw a clue, cuz i have no idea.
Shurafen on 7:04 PM 08/26/2024: Hello)
Have a look at silnice.00403338: add ebx, eax
shr ebx, 10
mov edx, eax
...
[in, eax] = unpackDWORD
unpackDWORD is generated from Unlock Code. unpackDWORD is used to unpack locked data, which is verified later. If you struggle with it I can help with a c++ code to bruteforce all possible unpackDWORD values)
Shurafen on 7:08 PM 08/26/2024: Anyways here is the code:
! This is not a final keygen, you still have to figure out key checkum calculations !
!!! SPOILERS !!!
#include
#include
#include
#include
#include
const int packedDataSize = 182;
const uint32_t chksum = 0x00003A7E;
unsigned char packedData[182] = {
0xFE, 0x42, 0x04, 0x1C, 0x7C, 0xFC, 0xFE, 0x02, 0x9D, 0x7A, 0x7C, 0xFC,
0xAA, 0xF9, 0xFC, 0xFC, 0xFC, 0x66, 0x9F, 0x91, 0x6E, 0x99, 0x7A, 0x85,
0x83, 0x95, 0x7A, 0x85, 0x6A, 0x9F, 0x91, 0x87, 0x3A, 0xFC, 0x8B, 0xDF,
0xC3, 0x2E, 0xC1, 0xA3, 0x3C, 0xD3, 0xBB, 0xA5, 0xA3, 0x3C, 0xAB, 0xC5,
0x3A, 0x3C, 0x85, 0xAD, 0xBB, 0xC5, 0x2E, 0xC7, 0x3C, 0xBB, 0x3C, 0xA7,
0xDF, 0xDF, 0xD5, 0x3C, 0xA1, 0xBB, 0xA7, 0xC5, 0x2A, 0x12, 0xE8, 0x85,
0xAD, 0xAB, 0xC7, 0x3C, 0xAB, 0xC7, 0x3C, 0xB9, 0xA3, 0xAB, 0xD1, 0xAF,
0x3C, 0xA3, 0xCD, 0xA3, 0xA7, 0xC3, 0xC5, 0xA3, 0xA5, 0x3C, 0xA1, 0xD9,
0xDF, 0xD3, 0x3C, 0x50, 0xDD, 0xD9, 0xDF, 0xC5, 0xA3, 0xA7, 0xC5, 0x3C,
0xC7, 0xA3, 0xA7, 0xC5, 0xAB, 0xDF, 0xD1, 0x3C, 0x48, 0x2A, 0xFC, 0x71,
0x72, 0x42, 0x7C, 0xFC, 0xA9, 0x7C, 0x81, 0xE7, 0x61, 0x1A, 0x81, 0xA9,
0xFC, 0xFE, 0x02, 0x04, 0x7A, 0x7C, 0xFC, 0xA9, 0xFC, 0xFE, 0x02, 0xE5,
0x7C, 0x7C, 0xFC, 0x7F, 0xE8, 0x38, 0x7C, 0xFC, 0x5D, 0xAA, 0x29, 0x4D,
0x05, 0x06, 0xFC, 0xFC, 0x57, 0xAD, 0x4B, 0x5A, 0x7C, 0xFC, 0xA9, 0x3C,
0xA9, 0xE4, 0xAD, 0xFC, 0x3C, 0x7C, 0xFC, 0xFE, 0x02, 0x15, 0x7C, 0x7C,
0xFC, 0x67
};
uint32_t unpack(uint32_t key) {
uint32_t unpackedSum = 0;
unsigned char Dkey[4] = {
(unsigned char) (key 24), (unsigned char) (key 24),
(unsigned char) (key 24), (unsigned char) (key 24)
};
for (int i = 0; i
Shurafen on 7:11 PM 08/26/2024: Well Well...
Here is the code as HEX data, paste it in HEX editor and save as main.cpp :)
23 69 6E 63 6C 75 64 65 20 3C 73 74 64 69 6F 2E 68 3E 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 73 74 64 6C 69 62 2E 68 3E 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 73 74 64 69 6E 74 2E 68 3E 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 78 38 36 69 6E 74 72 69 6E 2E 68 3E 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 63 6F 6E 69 6F 2E 68 3E 0D 0A 0D 0A 63 6F 6E 73 74 20 69 6E 74 20 20 20 20 20 20 70 61 63 6B 65 64 44 61 74 61 53 69 7A 65 20 3D 20 31 38 32 3B 0D 0A 63 6F 6E 73 74 20 75 69 6E 74 33 32 5F 74 20 63 68 6B 73 75 6D 20 20 20 20 20 20 20 20 20 3D 20 30 78 30 30 30 30 33 41 37 45 3B 0D 0A 0D 0A 75 6E 73 69 67 6E 65 64 20 63 68 61 72 20 70 61 63 6B 65 64 44 61 74 61 5B 31 38 32 5D 20 3D 20 7B 0D 0A 09 30 78 46 45 2C 20 30 78 34 32 2C 20 30 78 30 34 2C 20 30 78 31 43 2C 20 30 78 37 43 2C 20 30 78 46 43 2C 20 30 78 46 45 2C 20 30 78 30 32 2C 20 30 78 39 44 2C 20 30 78 37 41 2C 20 30 78 37 43 2C 20 30 78 46 43 2C 0D 0A 09 30 78 41 41 2C 20 30 78 46 39 2C 20 30 78 46 43 2C 20 30 78 46 43 2C 20 30 78 46 43 2C 20 30 78 36 36 2C 20 30 78 39 46 2C 20 30 78 39 31 2C 20 30 78 36 45 2C 20 30 78 39 39 2C 20 30 78 37 41 2C 20 30 78 38 35 2C 0D 0A 09 30 78 38 33 2C 20 30 78 39 35 2C 20 30 78 37 41 2C 20 30 78 38 35 2C 20 30 78 36 41 2C 20 30 78 39 46 2C 20 30 78 39 31 2C 20 30 78 38 37 2C 20 30 78 33 41 2C 20 30 78 46 43 2C 20 30 78 38 42 2C 20 30 78 44 46 2C 0D 0A 09 30 78 43 33 2C 20 30 78 32 45 2C 20 30 78 43 31 2C 20 30 78 41 33 2C 20 30 78 33 43 2C 20 30 78 44 33 2C 20 30 78 42 42 2C 20 30 78 41 35 2C 20 30 78 41 33 2C 20 30 78 33 43 2C 20 30 78 41 42 2C 20 30 78 43 35 2C 0D 0A 09 30 78 33 41 2C 20 30 78 33 43 2C 20 30 78 38 35 2C 20 30 78 41 44 2C 20 30 78 42 42 2C 20 30 78 43 35 2C 20 30 78 32 45 2C 20 30 78 43 37 2C 20 30 78 33 43 2C 20 30 78 42 42 2C 20 30 78 33 43 2C 20 30 78 41 37 2C 0D 0A 09 30 78 44 46 2C 20 30 78 44 46 2C 20 30 78 44 35 2C 20 30 78 33 43 2C 20 30 78 41 31 2C 20 30 78 42 42 2C 20 30 78 41 37 2C 20 30 78 43 35 2C 20 30 78 32 41 2C 20 30 78 31 32 2C 20 30 78 45 38 2C 20 30 78 38 35 2C 0D 0A 09 30 78 41 44 2C 20 30 78 41 42 2C 20 30 78 43 37 2C 20 30 78 33 43 2C 20 30 78 41 42 2C 20 30 78 43 37 2C 20 30 78 33 43 2C 20 30 78 42 39 2C 20 30 78 41 33 2C 20 30 78 41 42 2C 20 30 78 44 31 2C 20 30 78 41 46 2C 0D 0A 09 30 78 33 43 2C 20 30 78 41 33 2C 20 30 78 43 44 2C 20 30 78 41 33 2C 20 30 78 41 37 2C 20 30 78 43 33 2C 20 30 78 43 35 2C 20 30 78 41 33 2C 20 30 78 41 35 2C 20 30 78 33 43 2C 20 30 78 41 31 2C 20 30 78 44 39 2C 0D 0A 09 30 78 44 46 2C 20 30 78 44 33 2C 20 30 78 33 43 2C 20 30 78 35 30 2C 20 30 78 44 44 2C 20 30 78 44 39 2C 20 30 78 44 46 2C 20 30 78 43 35 2C 20 30 78 41 33 2C 20 30 78 41 37 2C 20 30 78 43 35 2C 20 30 78 33 43 2C 0D 0A 09 30 78 43 37 2C 20 30 78 41 33 2C 20 30 78 41 37 2C 20 30 78 43 35 2C 20 30 78 41 42 2C 20 30 78 44 46 2C 20 30 78 44 31 2C 20 30 78 33 43 2C 20 30 78 34 38 2C 20 30 78 32 41 2C 20 30 78 46 43 2C 20 30 78 37 31 2C 0D 0A 09 30 78 37 32 2C 20 30 78 34 32 2C 20 30 78 37 43 2C 20 30 78 46 43 2C 20 30 78 41 39 2C 20 30 78 37 43 2C 20 30 78 38 31 2C 20 30 78 45 37 2C 20 30 78 36 31 2C 20 30 78 31 41 2C 20 30 78 38 31 2C 20 30 78 41 39 2C 0D 0A 09 30 78 46 43 2C 20 30 78 46 45 2C 20 30 78 30 32 2C 20 30 78 30 34 2C 20 30 78 37 41 2C 20 30 78 37 43 2C 20 30 78 46 43 2C 20 30 78 41 39 2C 20 30 78 46 43 2C 20 30 78 46 45 2C 20 30 78 30 32 2C 20 30 78 45 35 2C 0D 0A 09 30 78 37 43 2C 20 30 78 37 43 2C 20 30 78 46 43 2C 20 30 78 37 46 2C 20 30 78 45 38 2C 20 30 78 33 38 2C 20 30 78 37 43 2C 20 30 78 46 43 2C 20 30 78 35 44 2C 20 30 78 41 41 2C 20 30 78 32 39 2C 20 30 78 34 44 2C 0D 0A 09 30 78 30 35 2C 20 30 78 30 36 2C 20 30 78 46 43 2C 20 30 78 46 43 2C 20 30 78 35 37 2C 20 30 78 41 44 2C 20 30 78 34 42 2C 20 30 78 35 41 2C 20 30 78 37 43 2C 20 30 78 46 43 2C 20 30 78 41 39 2C 20 30 78 33 43 2C 0D 0A 09 30 78 41 39 2C 20 30 78 45 34 2C 20 30 78 41 44 2C 20 30 78 46 43 2C 20 30 78 33 43 2C 20 30 78 37 43 2C 20 30 78 46 43 2C 20 30 78 46 45 2C 20 30 78 30 32 2C 20 30 78 31 35 2C 20 30 78 37 43 2C 20 30 78 37 43 2C 0D 0A 09 30 78 46 43 2C 20 30 78 36 37 0D 0A 7D 3B 0D 0A 0D 0A 75 69 6E 74 33 32 5F 74 20 75 6E 70 61 63 6B 28 75 69 6E 74 33 32 5F 74 20 6B 65 79 29 20 7B 0D 0A 20 20 20 20 75 69 6E 74 33 32 5F 74 20 75 6E 70 61 63 6B 65 64 53 75 6D 20 20 3D 20 30 3B 0D 0A 20 20 20 20 75 6E 73 69 67 6E 65 64 20 63 68 61 72 20 44 6B 65 79 5B 34 5D 20 3D 20 7B 0D 0A 20 20 20 20 20 20 20 20 28 75 6E 73 69 67 6E 65 64 20 63 68 61 72 29 20 28 6B 65 79 20 3E 3E 20 32 34 29 2C 20 20 20 20 20 20 20 28 75 6E 73 69 67 6E 65 64 20 63 68 61 72 29 20 28 6B 65 79 20 3C 3C 20 38 20 3E 3E 20 32 34 29 2C 0D 0A 20 20 20 20 20 20 20 20 28 75 6E 73 69 67 6E 65 64 20 63 68 61 72 29 20 28 6B 65 79 20 3C 3C 20 31 36 20 3E 3E 20 32 34 29 2C 20 28 75 6E 73 69 67 6E 65 64 20 63 68 61 72 29 20 28 6B 65 79 20 3C 3C 20 32 34 20 3E 3E 20 32 34 29 0D 0A 20 20 20 20 7D 3B 0D 0A 0D 0A 20 20 20 20 66 6F 72 20 28 69 6E 74 20 69 20 3D 20 30 3B 20 69 20 3C 20 70 61 63 6B 65 64 44 61 74 61 53 69 7A 65 3B 20 69 2B 2B 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 75 6E 73 69 67 6E 65 64 20 63 68 61 72 20 75 6E 70 61 63 6B 65 64 42 79 74 65 20 3D 20 70 61 63 6B 65 64 44 61 74 61 5B 69 5D 3B 0D 0A 0D 0A 20 20 20 20 20 20 20 20 75 6E 70 61 63 6B 65 64 42 79 74 65 20 20 3D 20 5F 5F 72 6F 6C 62 28 75 6E 70 61 63 6B 65 64 42 79 74 65 2C 20 44 6B 65 79 5B 33 5D 29 3B 0D 0A 20 20 20 20 20 20 20 20 75 6E 70 61 63 6B 65 64 42 79 74 65 20 2B 3D 20 44 6B 65 79 5B 32 5D 3B 0D 0A 20 20 20 20 20 20 20 20 75 6E 70 61 63 6B 65 64 42 79 74 65 20 5E 3D 20 44 6B 65 79 5B 31 5D 3B 0D 0A 20 20 20 20 20 20 20 20 75 6E 70 61 63 6B 65 64 42 79 74 65 20 2B 3D 20 44 6B 65 79 5B 30 5D 3B 0D 0A 0D 0A 20 20 20 20 20 20 20 20 75 6E 70 61 63 6B 65 64 53 75 6D 20 2B 3D 20 75 6E 70 61 63 6B 65 64 42 79 74 65 3B 0D 0A 20 20 20 20 7D 0D 0A 0D 0A 20 20 20 20 72 65 74 75 72 6E 20 75 6E 70 61 63 6B 65 64 53 75 6D 3B 0D 0A 7D 0D 0A 0D 0A 69 6E 74 20 6D 61 69 6E 28 29 20 7B 0D 0A 20 20 20 20 66 6F 72 20 28 75 69 6E 74 33 32 5F 74 20 69 20 3D 20 30 3B 20 69 20 3C 3D 20 30 78 46 46 46 46 46 46 46 46 3B 20 69 2B 2B 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 69 66 20 28 75 6E 70 61 63 6B 28 69 29 20 3D 3D 20 63 68 6B 73 75 6D 29 20 70 72 69 6E 74 66 28 22 30 78 25 2E 30 38 58 5C 6E 22 2C 20 69 29 3B 0D 0A 20 20 20 20 7D 0D 0A 0D 0A 20 20 20 20 70 72 69 6E 74 66 28 22 44 4F 4E 45 21 5C 6E 22 29 3B 0D 0A 20 20 20 20 67 65 74 63 68 28 29 3B 0D 0A 20 20 20 20 72 65 74 75 72 6E 20 30 3B 0D 0A 7D 0D 0A