Live data from Hacker News

Bringing a decade old vector editor back to life

github.com

71–80 of 89 posts

Re: Bringing a decade old vector editor back to life

#71

Earlier quoted context omitted.

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 i…

True, I had missed the Information Society Directive which adds the restrictions on circumventing effective technological measures. The big problem is in the interaction between these parts of copyright law and the other parts which limit the copyrights; so even if you have the right to do something yourself, then the distribution of these "circumvention measures" is prohibited by this. Sad.

Re: Bringing a decade old vector editor back to life

#72
post #28

Whoa, this editor was quite amazing! If you have two minutes, watch the "Photo Texturing" and "Photo Editing" demonstrations: https://youtu.be/bCWX3BNT1H0?t=150

I guess you could emulate the "Photo Texturing" functionality in something like Blender with UV Unwrapping? Will give it a go later. The "Image Warping" I'm pretty sure you can do in Photoshop these days tho'.

I've achieved a similar effect with Krita's warp tool and 'transform layers' (which let you treat a transformation as a filter layer so you can still edit the un-transformed version), but it's clearly not a use-case the developers intended and therefore is nowhere near as smooth to use.

Re: Bringing a decade old vector editor back to life

#73
post #59

Earlier quoted context omitted.

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.

Now you're really just making claims about implementation details. That doesn't make one concept more "fundamental" or "flexible" than the other, while "interesting" is just a subjective judgement.

Re: Bringing a decade old vector editor back to life

#74

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

Borland had a C++ compiler too, but it was never nearly as popular as the Pascal-based Delphi.

Re: Bringing a decade old vector editor back to life

#76
post #59

Earlier quoted context omitted.

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.

With coroutines, your program logic itself is the scheduler.

Re: Bringing a decade old vector editor back to life

#77

Earlier quoted context omitted.

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 wit…

Blizzard (I suspect) did exactly this with the original Warcraft III.

To play on an emulated Battle.net server you had to apply a patch to the client .exe or it would refuse to connect.

I remember chatting with one of the emulator developers on IRC and they said it was practically impossible to reverse engineer the key, so that sounded to me like public/private key encryption.

I suspect Blizzard reasoned that it made the emulated servers less legitimate and that people uncomfortable downloading "cracks" would be put off. It didn't have to be fool proof, just raise the bar high enough to encourage more sales.

Re: Bringing a decade old vector editor back to life

#78
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…

>a lot of Japanese games What kind of games are we talking about? Computer games or mobile ones?

Some Japanese arcade games are known to have byzantine content protection schemes meant to prevent cabinet bootlegging. There's been a lot written about Capcom's CPS-2 and CPS-3 systems in particular.

Re: Bringing a decade old vector editor back to life

#79

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…

I always suggest RE researchers to operate under pseudonyms and never attach patches to their personal identities, especially if the patch is classified as a circumvention device under the DMCA. While some people may want to use their personal acts to challenge the DMCA itself, but in the majority of cases, it's not the case, the goal is simply getting the job done, so avoiding unnecessary troubles is more important. Use a pseudonym, and they cannot fight ghosts.

Re: Bringing a decade old vector editor back to life

#80

Earlier quoted context omitted.

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 wit…

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

Yes. I used to play on unofficial MMORPG servers back in the day. People reverse-engineered the network protocol and created an open source game server. It didn't have all the features of the official game but it ran fine and could be freely modded. I used to host one of these on my own home computer... Traditionally the official game client is used but some games even have custom clients!

Examples:

https://github.com/opentibia/server

https://github.com/otland/forgottenserver

https://www.wireshark.org/docs/dfref/t/tibia.html

Post reply on HN