Jump to content
Tuts 4 You

Blackett


Go to solution Solved by 14yoKID,

Recommended Posts

Posted

Blackett


The real goal is to make a keygen capable of generating infinite valid combinations of name and keys. 

Btw, also a valid serial is appreciated :)

The only protection used is renaming.

Good luck!

@kao Long time no see 🧐


 

Posted

Btw, here is a little hint:

 

hint.png

Posted

No one willing to try this challenge?

Another hint: 

"Erjey" is the equality relation..

"Tuts4you" is the greater than or equal relation..

  • Thanks 1
  • 2 weeks later...
  • 4 years later...
  • Solution
Posted (edited)

Hi! I took a look at it and shame that no one tried to solve it,here is my approach.

Basic things i pulled:

All four keys must differ.

If any two keys are the same string, it shows “All keys must be different.”

No key can contain "0@0".
If you type a key like "0@0@something", it rejects it.

“Erjey” can be used at most once, and if it appears, the fourth chunk of that key must be less than 6.
That is, if a key has the substring "erjey", its format is X@Y@erjey@W, and W<6W < 6W<6.

The third chunk in each key can be one of three strings:

  • erjey
  • kao
  • tuts4you

If you use something else, you get badboy error message.

2.2. Internally, a Linear Solver

Digging deeper, i discovered a set of classes (d, e, j, etc.) that build a system of linear equations or inequalities. Each key of the form 

X@Y@{erjey|kao|tuts4you}@W

is taken to mean X⋅x+Y⋅yRELWX , where the “relation” REL depends on the keyword:

  • erjey → equality (=).
  • kao → some inequality (≥ or ≤) depending on puzzle logic.
  • tuts4you → the other inequality.

From hints in the code and trial tests, we saw that:

erjey is effectively “=”.

For this puzzle’s code, kao ended up being “≥” and tuts4you was “≤” (the code flips them).

Finally, after the solver ensures a feasible solution for (x, y), it calculates an “objective value” from the Name field, which must also be in the format A@B (two doubles). The code uses: objective=A×x+B×y

 

If that objective is exactly 44 000, it shows:

MessageBox.Show("Valid combination!");

That is the central condition:

Ax+By=44000.

3. Constructing a Solution

To guarantee the solver yields 44,000, we needed to pick (x, y) and (A,B) so that:

A×x+B×y=44000.

Additionally, we had exactly four constraints (the “Keys”) to pin down x and y.

3.1. The Simplest Trick: Set x=y

One common approach: force x=y=c for some integer c < 6 (because the puzzle disallows “erjey@W” if W >= 6). Then we just need:

(A+B)×c=44000 then this becomes A+B = 44000 / c

Hence, pick any c in [1..5], and pick A + B = 44000 / c.

3.3. Example Name

Then to satisfy (A+B) c=44000, choose a Name that splits as A@B with A+B=44000/c. For instance:

Let c = 4. Then A+B must be 11000.

We pick A = 5500 and B = 5500.

So Name = "5500@5500".

3.4. Putting It All Together

Spoiler

Name: 5500@5500

Key1: 1@0@erjey@4

Key2: 0@1@kao@4

Key3: 0@1@tuts4you@4

Key4: 1@-1@tuts4you@0

And if im right and if this is the keygen you have asked for :

keygen.py

Edited by 14yoKID
  • Like 3
  • Thanks 2

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...