[-] mjhelto@lemm.ee 1 points 2 months ago

Right? Shortsightedness is a problem everywhere. And their calculations are not gonna work out for them. Sure, raise the price of goods and services today, who's gonna buy them if no one has any money cause they're syphoning off and propelling us to the bottom. I'm convinced the ultra wealthy stopped mentally growing at age 7-10.

Take that Ken Griffith guy, the one who had to get bailed out by other ultra wealthy a-holes in 2020 during the GameStop meme-time. He just spent like $44 million on a stegosaurus skeleton that the company was going to try to sell for like $3-$7 million. Dudes atrocious with money and predictions it seems. He's like a wealthier Tim Poole.

[-] mjhelto@lemm.ee 1 points 3 months ago

No, I have not seen it. I've heard good things about it, though.

[-] mjhelto@lemm.ee 1 points 3 months ago

I think the time I couldn't escape was a white dwarf, which I didn't realize was so much more dangerous than normal neutron stars. As for Mitterand Hollow, no, I have not been there, but there was a list of places to see, which I had managed about half the list before I moved on to a new goal. I had an expedition to the galactic core in progress when I lost interest in playing. It was just taking too long to scan for planets and get surface info for the ones that yielded the most data/money. I should pick it back up, here, and see if I can complete my journey.

[-] mjhelto@lemm.ee 1 points 5 months ago

There's also this video from Kurzgesagt (at the 7:56 mark), which oddly enough came up in a playlist and had data that was relevant to a conversation on Lemmy. Of course, the date of the video doesn't accurately portray what is truly happening, as your figures are obviously newer. I stand corrected.

For the record, I wasn't doggin' on Germany. It's one of the European countries I really want to visit before I log out of life. I took German 101+ in JH/HS, though that was almost 2-decades ago by now. I hope you can see, now, why I had the thoughts I did about Germany's energy foresight. Take it easy!

^holy ~shit ^I'm ~high~^~^

[-] mjhelto@lemm.ee 1 points 10 months ago

Came to lemmy to ask about this. I suddenly see the overlay of "Activation Windows." I'm using a key from Windows 7 Ultimate. Fuck Microsoft, thanks for making me finally pull the trigger on Linux, ya fuck wads.

[-] mjhelto@lemm.ee 1 points 10 months ago* (last edited 10 months ago)

How bout a third? Aqua Teen Hunger Force movies!

[-] mjhelto@lemm.ee 1 points 10 months ago

The New System

As Ambrosia's Matt Slot explains, the old system continued to allow a lot of piracy, so in the early 2000's they decided to switch to a more challenging registration system. This new method was based on polynomial hashing and included a timestamp so that codes could be expired and renewed. Ambrosia now had better control over code distribution, but they assumed their renewal server would never be shut down...

They also took more aggressive steps to reduce key sharing. The registration app checks against a list of blacklisted codes, and if found to be using one, the number of licenses is internally perturbed so that subsequent calculations fail. To combat tampering, your own information can get locally blacklisted in a similar manner if too many failed attempts occur, at least until the license file is deleted. Furthermore, the app attempts to verify the system time via a remote time server to minimize registration by changing the computer's clock.

You can disable the internet connection, set the clock back, and enter codes. There's also a renewal bot for EV: Nova. But let us look at the algorithm more closely.

64-bit Codes

The first noticeable difference is that registration codes in v2 are now 12 digits, containing both letters and numbers. This is due to a move from a 32-bit internal code to a 64-bit one. Rather than add an ASCII offset to hex digits, every letter or number in a new registration code has a direct mapping to a chunk of 5 bits. Using 5 bits per digit supports up to 32 values, or almost all letters of the alphabet and digits up to 9 (O, I, 0, and 1 were excluded given their visual similarities).

The resulting 64 bits (really only 60 because the upper 4 are unused: 12 digits * 5 bits each = 60) are a combination of two other hashes XOR'd together. This is a notable change from v1 because it only used the registration code to verify against the hashing algorithm. Only the licensee name, number of copies, and game name were really used. In v2, the registration code is itself a hash which contains important information like a code's timestamp.

Two Hashes

To extract such information from the registration code, we must reverse the XOR operation and split out the two hashes which were combined. Fortunately, XOR is reversible, and we can compute one of the hashes. The first hash, which I'll call the userkey, is actually quite similar to v1's algorithm. It loops through the licensee name, adding the ASCII value, number of copies, and shifting bits. This is repeated with the game name. An important change is including multiplication by a factor based on the string size.

The second hash, which I'll call the basekey, is the secret sauce of v2; it's what you pay Ambrosia to generate when registering a product. It is not computed by the registration app, but there are several properties by which it must be validated.

The chart below visualizes the relationships among the various hashes, using the well-known "Barbara Kloeppel" code for EV: Nova.

TEXTCODE:
------------------
| L4B5-9HJ5-P3NB |
------------------                    HASH1 (userkey):
	|                             calculated from licensee name,
        |                             copies, and game name
BINCODE:                              ----------------------
5 bits per character,             /-> | 0x0902f8932acce305 |
plus factors & rotations         /    ----------------------
----------------------          /
| 0x0008ecc1c2ee5e00 |   <-- XOR
----------------------          \
	                         \    ----------------------
	                          \-> | 0x090a1452e822bd05 |
	                              ----------------------
	                              HASH2 (basekey):
	                              generated by Ambrosia,
	                              extracted via XOR
[-] mjhelto@lemm.ee 1 points 10 months ago* (last edited 10 months ago)

I make no claim to this info, nor do I understand it, nor do I take responsibility for its use. As linked, I got this from a reddit post about the company and copy/pasted it into Obsidian so I'd have it. The code blocks are as close to the original as I cared to fiddle with. This is all greek to me but there are Python scripts linked, which may help you generate a key that works to register EV. Good luck!

Note: I had to split this into multiple posts cause it was not wanting to post the entire thing in one reply.


Ambrosia and Registration (Site)

Now that Ambrosia is gone, new registrations are no longer possible, and due to their expiring codes, using legitimate license keys has become difficult. We may hope to see a few of their games revived in the future but at present, only the original releases are available. Perhaps this case study on Ambrosia's registration algorithms will be useful to some.

The Old System

In their earliest days, ASW didn't require registration, but they eventually began locking core features away behind codes. All of their classic titles use the original algorithm by Andrew Welch.

Given a licensee name, number of copies, and game name, the code generator runs through two loops. The first loop iterates over each letter of the capitalized licensee name, adding the ASCII representation of that letter with the number of copies and then rotating the resulting bits. The second loop repeats that operation, only using the game's name instead of the license holder's name.

Beginning with Mars Rising, later games added a step to these loops: XOR the current code with the common hex string $DEADBEEF. However, the rest of the algorithm remained essentially unchanged.

The resulting 32 bits are converted into a text registration code by adding the ASCII offset of $41 to each hex digit. This maps the 32-bit string into 8 characters, but due to the limit of a hex digit to only encode 16 values, codes only contain letters from the first 16 of the alphabet.

The following chart shows an example using a well-known hacked code for Slithereens.

			Iteration 1 ('A' in ANONYMOUS)
Name: Anonymous             Code = $0 + $41
Number: 100 (hex: $64)  ->        << 6             ... -> Code = $FD53 FFA0
Game: Slithereens                 + $64
                                  ^ $DEAD BEEF
                                  >> 1

Add $41 to each digit:                                      Registration
-> $41 + $F = $50 = P    ->      Reverse string        ->   ------------
   $41 + $D = $4E = N                                       | AKPPDFNP |
   ...                                                      ------------

Here is a Python implementation of the v1 system: aswreg_v1.py

Once you have the bit-string module installed via sudo pip install bitstring, you can test the output yourself with python aswreg_v1.py "Anonymous" 100 "Slithereens".

[-] mjhelto@lemm.ee 1 points 1 year ago

This doesn't help. Just like some medications can't be taken by certain types of people, it's not outside the realm of possibilities that someone's experience is different than the norm or different than your own. We should be helping, educating, and loving the experience, not denigrating those who have experiences outside of our own or expectations.

I implore you take time to consider the person's experience, and how yours may not be the only one, before insulting them for theirs. Nothing but love and kindness your way. Be well!

[-] mjhelto@lemm.ee 1 points 1 year ago

All it's missing is the queen alien!

[-] mjhelto@lemm.ee 1 points 1 year ago* (last edited 1 year ago)

Man, a sitting president in prison would be almost the perfect embodiment of American symbolism. Only thing to make it more so would be if he was in prison for shooting up an elementary school while holding a Bible and screaming "USA USA" from a mobility scooter, all while the police gave him a standing occasion from atop the back of a choked-out black man.

Man, as a veteran of that same country, this whole situation makes me wonder what it was for... I'm waiting for all of this to make sense.

view more: ‹ prev next ›

mjhelto

joined 1 year ago