Live data from Hacker News

Bringing a decade old vector editor back to life

github.com

61–70 of 89 posts

Re: Bringing a decade old vector editor back to life

#61

This is really cool, and certainly a solid example of why the legislation is moronic. However, isn't this a violation of DMCA's (and similar legislation worldwide) "software lock" circumvention laws? > It's not pretty, but this is probably the first time anyone's been able to use Plasma at all in the better part of a decade. It seems that Wollay removed a critical UI file (for the sheet which artwork exists on) from…

What do you mean by the "(and similar legislation worldwide)" ? DMCA is a USA-specific limitation that goes way beyond what the rest of the world has; USA has had some success pushing something like that to a few other countries through transatlantic trade treaties, but as far as I understand, most of the world does not have DMCA-like legislation; it's not universal in the way that Berne convention is. For example, E…

DanBC's comment contains useful information. The EU issued a Copyright Directive, thus all member states were told to implement compatible laws.

As pertains to Latvia specifically (I apologise if my Github HN username assumption is inaccurate), then the relevant laws are implemented under "Copyright Law, Chapter XI, Section 68".

We also still have laws in Australia that permit reverse engineering for the purpose of interoperability. This is what I meant above where I wrote:

> To clarify, none of the reverse engineering stuff is the issue.

The problem is these laws are superseded when circumvention of technological measures pertaining to copy protection is involved.

Re: Bringing a decade old vector editor back to life

#62
post #12

I've reverse engineered a number of content encryption schemes. It's always a ton of fun, and you get to see the large amount of psychological warfare at play at the higher tiers. A very common trick that I've seen in a lot of Japanese games, for offline material, is to combine a hashing system and encryption. That is, the game will attempt to load "main.script", which is a custom bytecode scripting language. The fil…

Indeed, it's often more fun than playing the game itself; but then again, I'm someone who has been taking things apart since I was very young (and not surprisingly, got into trouble a few times for it...) I suspect RE is something that's closer to what those in the other sciences do, i.e. analysis and thinking more about how/why things are the way they are, rather than what they can build; which is why not a lot of d…

Just trying to read a mathematical paper is like RE. You could take the approach that you try to follow every step and pause until you have the full specification, but that would take months. And more importantly, it's unlikely that you are willing or able to just do that one paper over the course of 6 months.

Or, like people do in RE, you fall back to things you know (OP knew hex, decimal and binary before he encountered the reflected codes he talks about) and you try to force the paper through your personal veil. I guess when people reverse engineer hardware you follow the routes you took (maybe taking months) the first time you took something apart.

Usually, it makes sense to do so because the reason why you read the paper in the first place is because you think that it has some connection with your own work.

In Quantum Mechanics circles, many authors have different mathematical backgrounds, so just translating what they are doing and thinking is already RE. A good example of this is logical semantics: There are countless flavours of how to write logic down, each with their own symbols and motivations. I would prefer if any logic that you end up with is the internal logic of a category, but analogously this would be like Apple forcing everyone to use their hardware connector pins.

A paper usually does have a path that is chosen by the author, but the RE component is inevitable if you want the paper to be in context with your own reasearch. Otherwise I guess it would be more like a class or university module, where you are following along, but you don't really have an intention of building on the subject matter in your own time. Science also has the disadvantage to newcomers that you don't know how much has already been done, and hence you are forced to have endless lectures to just bring you up to speed.

Re: Bringing a decade old vector editor back to life

#63
post #59

Earlier quoted context omitted.

It is not. Coroutines are a much more fundamental feature. They can be used to implement cooperative multitasking, and since that is such a common use case, they have gotten confused with the concept of cooperative multitasking. Actual coroutines are a lot more flexible and interesting than just cooperative multitasking, though.

Erm, I'm pretty sure I can implement coroutines using cooperative multitasking. Also, the other way around. So I'd say they're equivalent in that sense.

Cooperative multitasking usually involves a scheduler. Coroutines are called explicitly, which you can't do through a scheduler.

Re: Bringing a decade old vector editor back to life

#64

Earlier quoted context omitted.

It's amazing what people can accomplish... Gives me hope that old video games will one day receive the same treatment. Way too many of them lost online multiplayer after the game company moved on.

Unfortunately, this is only possible because the obfuscation used is just weak obfuscation. Once you throw real public-key encryption into the game, which is what any competent company trying to avoid cloned servers should be doing, there is no way to create alternate servers just from game data. You need to at the very least patch the game and change the key.

I'm not sure the parent comment is necessarily going for a patchless solution, and as you say, by the time you have got far enough with reverse engineering for the particular type of encryption to matter, you can always just patch the executable to bypass it altogether. (In fact by halfway down the article the author had done exactly that.)

Besides, I'm not even convinced that "any competent company" would bother with public/private key cryptography given that it makes little difference to them how exactly their copy protection is broken.

The bigger problem for the parent commenter is if actual game logic is executing on the server, which is probably the case for online multiplayer games.

Re: Bringing a decade old vector editor back to life

#65
post #41

Earlier quoted context omitted.

>synchronization points are explicit Hmmm, I'd have just called it cooperative threading/multitasking then. Or do you think that would be wrong?

Coroutines and cooperative threading/multitasking are indeed threading. I assume they meant to say that it was neither preemptive nor parallel, which makes it somewhat limited. Some people think a system has to be one or both of those to be called threading.

For me, and for a vast majority of people I'd say, the word "threading" in common parlance implies pre-emptive scheduling with implicit synchronization points.

Re: Bringing a decade old vector editor back to life

#67

Earlier quoted context omitted.

The real reason is that open source software completely eliminates the need for reverse engineering. RE only makes sense when you don't have access to the source code. Doing things like private server emulation for an MMORPG might sound cool but the reality is that half the game content exists server side. You're not able to invest enough resources to rebuild the original experience and even if you could why not spen…

There's many MMOs that now officially only exist as memory, either shut down or altered in such a way that they aren't the same games anymore. Some people don't want to make their own game, they want to play the game they used to with friends/family years ago that is now unavailable. The amount of community effort put into some private servers is impressive. I wouldn't spend my own time doing it, but I'm glad there a…

I just find that more disappointing because the copyright holder is positioned to be able to open-source or public-domain-dedicate the material but they don't for various reasons and it rots on a backup drive somewhere or gets lost, and now unnecessary duplication of effort must occur to recreate it.

Often it seems rather paradoxical in nature because the main reason they don't open-source it is that they're waiting for a time in the future when the demand rises and it will be worth something again, and yet the increased demand only happens because of the efforts of reverse engineers keeping the community alive. It's almost always impossible for the reverse engineers to legally get paid for this work too. The only hopes for that is either for the copyright holders to raise enough money and decide to hire them, or to do an anonymous patreon and hope it doesn't attract the wrong kind of attention.

Re: Bringing a decade old vector editor back to life

#70

Earlier quoted context omitted.

Pure speculation, but it's quite possible that it was written in Delphi (the last iteration of Borland's Turbo Pascal lineage), which had a fast single-pass compiler that did very little optimization. Delphi was very popular in Germany in the late 1990s and early 2000s.

Delphi makes things worse because the code it generates is incredibly ugly. The code listings use the C++ std and it looks straightforward so presumably it is just good old C++.

It could equally be C++Builder. Back in those dates, the C++ compiler used a similar backend to Delphi - it was derived from Delphi's originally, since the two products interop and you can use both languages in one app. Today's C++Builder uses LLVM.
Post reply on HN