You last visited: Today at 06:04
Advertisement
Fun & Cryptos
Discussion on Fun & Cryptos within the Conquer Online 2 forum part of the MMORPGs category.
05/08/2012, 00:11
#16
elite*gold: 0
Join Date: Nov 2009
Posts: 390
Received Thanks: 321
@Infamous:
There are no "elegant" solutions anyway, but it could be narrowed down even more, you just need the first 8 bytes and a few assumptions for it to work.
@Ultimation:
Yes, of course the code could've been optimized, but it wasn't intended to be efficient or even practical.
05/08/2012, 00:19
#17
elite*gold: 0
Join Date: Mar 2005
Posts: 1,425
Received Thanks: 1,565
#Bump 1st Keygen ME added.
Quote:
Originally Posted by
Nullable
@Infamous:
There are no "elegant" solutions anyway, but it could be narrowed down even more, you just need the first 8 bytes and a few assumptions for it to work.
@Ultimation:
Yes, of course the code could've been optimized, but it wasn't intended to be efficient or even practical.
Lets see if you can work your way through Keygen Me 1
05/08/2012, 01:14
#18
elite*gold: 28
Join Date: Jun 2010
Posts: 2,223
Received Thanks: 867
Next please.
Code:
static void Main(string[] args)
{
Console.WriteLine("Enter your name:");
string name = Console.ReadLine();
string key = "INVALIDSERIAL";
string serial = "";
for(int i =0;i < name.Length;i++)
{
byte b = (byte) name[i];
b ^= (byte) key[i%key.Length];
string p1 = b.ToString("X2");
string p2 = ((byte) b ^ name.Length).ToString("X2");
serial += p1 + p2 + '-';
}
serial = serial.Substring(0, serial.Length - 1);
Console.WriteLine("Your serial:"+serial);
Console.Read();
}
05/08/2012, 01:30
#19
elite*gold: 0
Join Date: Mar 2005
Posts: 1,425
Received Thanks: 1,565
#bump Keygen me #2 added
no one
?
05/09/2012, 04:21
#20
elite*gold: 20
Join Date: Jan 2008
Posts: 2,012
Received Thanks: 2,882
I don't have the time to attempt it right now. Too stressed, lol.
05/11/2012, 17:46
#21
elite*gold: 0
Join Date: Nov 2009
Posts: 390
Received Thanks: 321
I'll give it a try when I get enough free time on my hands. **** them finals..
11/11/2012, 19:51
#22
elite*gold: 28
Join Date: Jun 2010
Posts: 2,223
Received Thanks: 867
Noone else cracked number two yet?
#bump
11/12/2012, 04:48
#23
elite*gold: 0
Join Date: Feb 2012
Posts: 26
Received Thanks: 0
What is it,What does it mean?
11/12/2012, 04:55
#24
elite*gold: 0
Join Date: Jan 2008
Posts: 1,434
Received Thanks: 1,147
Quote:
Originally Posted by
_DreadNought_
Noone else cracked number two yet?
#bump
Checked rapidly through Olly with CrossOver (before it crashed
). Found probably the validation routine. But, I'm too busy to really check more. Maybe at some point.
Btw, would you like to crack one if I do one in C++ ?
Could help me to make it harder to crack ? (I haven't done it in C++ yet, but the base is in C#)
11/12/2012, 10:10
#25
elite*gold: 0
Join Date: Mar 2005
Posts: 1,425
Received Thanks: 1,565
yep, go for it
11/12/2012, 12:51
#26
elite*gold: 0
Join Date: Sep 2006
Posts: 774
Received Thanks: 8,576
My solution to Keygenme #2 (haven't tried #1, just assumed #2 was harder)
Code:
#include <windows.h>
#include <iostream>
#include <sstream>
#include <string>
#include <iomanip>
std::string GetHardDiskSerial(const std::string& driveLetter)
{
DWORD serialNumber;
GetVolumeInformation(driveLetter.c_str(), NULL, 522, &serialNumber, NULL, NULL, NULL, 0);
std::stringstream ss;
ss << std::hex << std::uppercase << serialNumber;
return ss.str();
}
std::string GenerateSerialNumber(const std::string& hardDiskSerial, const std::string& userName)
{
std::string hddSerial(1, 0);
hddSerial.append(hardDiskSerial);
const int nameLength = userName.length();
const int serialLength = hardDiskSerial.length();
std::ostringstream oss;
for (int i = 0; i < userName.length(); ++i)
{
int index = (i + 1) % serialLength;
int ch = userName[i] ^ hddSerial[index];
oss << std::uppercase << std::hex << std::setfill('0') << std::setw(2) << ch;
ch ^= nameLength;
oss << ch << (i == nameLength - 1 ? "" : "-");
}
return oss.str();
}
int main(int argc, char* argv[])
{
std::cout << GenerateSerialNumber(GetHardDiskSerial("C:\\"), "phize"); // 4441-5E5B-595C-3E3B-5752
return 0;
}
11/12/2012, 13:09
#27
elite*gold: 28
Join Date: Jun 2010
Posts: 2,223
Received Thanks: 867
Quote:
Originally Posted by
phize
My solution to Keygenme #2 (haven't tried #1, just assumed #2 was harder)
Code:
#include <windows.h>
#include <iostream>
#include <sstream>
#include <string>
#include <iomanip>
std::string GetHardDiskSerial(const std::string& driveLetter)
{
DWORD serialNumber;
GetVolumeInformation(driveLetter.c_str(), NULL, 522, &serialNumber, NULL, NULL, NULL, 0);
std::stringstream ss;
ss << std::hex << std::uppercase << serialNumber;
return ss.str();
}
std::string GenerateSerialNumber(const std::string& hardDiskSerial, const std::string& userName)
{
std::string hddSerial(1, 0);
hddSerial.append(hardDiskSerial);
const int nameLength = userName.length();
const int serialLength = hardDiskSerial.length();
std::ostringstream oss;
for (int i = 0; i < userName.length(); ++i)
{
int index = (i + 1) % serialLength;
int ch = userName[i] ^ hddSerial[index];
oss << std::uppercase << std::hex << std::setfill('0') << std::setw(2) << ch;
ch ^= nameLength;
oss << ch << (i == nameLength - 1 ? "" : "-");
}
return oss.str();
}
int main(int argc, char* argv[])
{
std::cout << GenerateSerialNumber(GetHardDiskSerial("C:\\"), "phize"); // 4441-5E5B-595C-3E3B-5752
return 0;
}
Not that I'm doubting you, Can you post a screenshot that it works?
On a side note, Try this one.
Rules: All the rules that Ultimation has for his Crackme's + NO Reflector, It's NOT protected, But using reflector makes it too easy try it without.
If you use reflector for it, you suck
Attached Files
CrackMe.rar
(2.3 KB, 5 views)
11/12/2012, 13:16
#28
elite*gold: 0
Join Date: Sep 2006
Posts: 774
Received Thanks: 8,576
Quote:
Originally Posted by
_DreadNought_
Not that I'm doubting you, Can you post a screenshot that it works?
It doesn't take input from the console though, but that's easy to add
11/12/2012, 13:22
#29
elite*gold: 0
Join Date: Mar 2005
Posts: 1,425
Received Thanks: 1,565
Very nice work, here is comes my 3rd one
#bump Keygenme 3 added
All times are GMT +2. The time now is 06:04 .