Jump to content
Tuts 4 You

[KEYGENME] Team IREC KeygenMe #3


Blue

Recommended Posts

Here's what you're doing? You perform actions with untreated memory into local variables. If the name more than the computer name, then what value will be taken from the array with the name of the computer when they are added?

Link to comment

If the author would have written everything correctly, then it's keygen:


#include <stdio.h>
#include <Windows.h>int main()
{
char szName[260] = {0};
char szCompName[260] = {0};
DWORD aName[128] = {0};
DWORD aCompName[128] = {0};
DWORD aSum[128] = {0}; printf("Name: ");
scanf("%s", szName); DWORD dwCompNameLen = 260;
GetComputerName(szCompName, &dwCompNameLen); int nLenOfName = lstrlen(szName);
for (int i = 0; i < nLenOfName; i++) {
aName[i] = szName[i] + 1;
} for (int i = 0; i < (int)dwCompNameLen - 1; i++) {
aCompName[i] = szCompName[i] - 2;
} for (int i = 0; i < nLenOfName; i++) {
aSum[i] = aName[i] - aCompName[i];
} int nSerial = aSum[9] + aSum[10];
nSerial = (nSerial + dwCompNameLen) * nLenOfName; printf("Serial: %d\n", nSerial); return 0;
}
too much math functions and floating point operation for my own preference. won't solve without bruting it. Also brute can take long time

Only because of this and decided to watch it. But was disappointed. :angry:

Edited by BoRoV
Link to comment

If the author would have written everything correctly, then it's keygen:


#include <stdio.h>
#include <Windows.h>int main()
{
char szName[260] = {0};
char szCompName[260] = {0};
DWORD aName[128] = {0};
DWORD aCompName[128] = {0};
DWORD aSum[128] = {0}; printf("Name: ");
scanf("%s", szName); DWORD dwCompNameLen = 260;
GetComputerName(szCompName, &dwCompNameLen); int nLenOfName = lstrlen(szName);
for (int i = 0; i < nLenOfName; i++) {
aName[i] = szName[i] + 1;
} for (int i = 0; i < (int)dwCompNameLen - 1; i++) {
aCompName[i] = szCompName[i] - 2;
} for (int i = 0; i < nLenOfName; i++) {
aSum[i] = aName[i] - aCompName[i];
} int nSerial = aSum[9] + aSum[10];
nSerial = (nSerial + dwCompNameLen) * nLenOfName; printf("Serial: %d\n", nSerial); return 0;
}

Only because of this and decided to watch it. But was disappointed. :angry:

Dear BoRoV as far the untreated memory considered,we have created this bug in this KGM.

By the soution by you is not working.And remember that this KGM can be solved,but some debugging and antidebugging trick needed.

And as you stated above that you are disappointed,we are sorry for that just wait for our KeygenMe 5.

I think you will surely enjoy that.

Thanks

Blue Indian

Admin,Team IREC

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...