-DD: Decimal value, multiply by 2 and convert this value to hex, that's your BINK id This is your DPCDLL.DL_ extracted to dpcdll.dll with 7z
Well, that's a good thing about doing something wrong, you learn something new. That's my goto Cool, now you know the basic's.
the private key in that code is not incorrect. As it was explained to me when I asked exactly the same question. Part of XP style product key algorithm involves a signature = r - y*k calculation, where r is the nonce, y is the signature scalar from the hash function and k is the private key and * is multiplication. The entire operation is (one way or another) performed modulo the order of the curve n. “However, there is a debate as old as Schnorr signatures themselves about how to actually do this step. One school believes that r - y * k is the correct way to do things; others do r + y * k, but save -k as the private key relative to the public key.” Given k = 0x85103E596B2435, -k (mod n) = 0x565B0DFF8496C8 and vice-versa.
I don't understand how to use this tool, for example, the pidgen file is placed there, and the software tab is empty
@wvv000 To give you a head start: When you start Elliptic Curve Tool it will make a Keysets folder with two subfolders. When you import resources from a pidgen/mso/pidca (containing valid BINK resources) you will get *.ks2 files in your Baseline subfolder. All curve parameters except the k and n value are listed. They are "easily" obtained doing https://forums.mydigitallife.net/posts/1870192 This is done once and is the base for creating a key for a spesific BINK. PID range is something you obtaine from, example, dpcdll.dll from your image. To validate a key, you must make a folder Pidgen side-by-side Keysets folder. Here you add a pidgen file, for Windows pidgen's you can use them as-is, with some limits. Pidgen from Win9x will not work so you need to transfer resourses, this is also true for mso. Pidgen should be named "PIDGEN-BINK xxx..x.dll", PIDGEN-BINK ID2C-2D.dll is excellent naming for those you uploaded. Lower hex value is retail, upper value is oem. Minor variations occure but this is the basic. This is a very valuable feature, but you don't need it for basic use. Very generic how-to, give it a try, i'm sure you appreciate it.
I might add, some (later) pidgen's, as an example may contain a blacklist. Validating a good key against a blaclisted will give you not valid in return. The thingy here is to "null" out the blacklisted PID range. Get the basic and we can focus on this later.
@un user - It's interesting that you mentioned umskt in step 3 above. That's pretty much what I have been doing, pulling data from the umskt "keys.json" file and feeding it into the EllipticCurveTool. It seems like a good way to get a feel for what the EllipticCurveTool does. Of course, I could just run the umskt.exe binary if I wanted to generate a key in a hurry. It seems the EllipticCurveTool discussed here is intended to be more of a research or education tool, rather than a general purpose key generator. Correct me if I'm wrong.