📜 ⬆️ ⬇️

Software protection in 2025

OU! Today I finally got my new Unity Studio!

With a trembling hand, I unpack the contents of the package. Oh yeah! a small crystal, just something with a half-palm size, and everything on it: a processor, memory (sufficient for the maximum possible capabilities), a video processor, an audio processor, the program itself.

Moore's law is harsh and merciless: doubling the number of transistors on a plate every two years. It is thanks to the incessant development of Intel processors (and then NVidia, AMD, Samsung and others) managed to cram the contents of the system unit into one processor, after which the processor was no longer called a processor, but became a crystal, and its cost was reduced to such an extent that the idea itself crystal program.
')
I insert it into the panel of my computer: the crystal enters the slot and snaps into place, and an icon appears on the desktop. Everything! Installation completed! Now there are no long hours of waiting for something there ... Uninstallation is also simple - pull out the desired crystal in one of the 256 sockets. But this is a hard uninstall, soft - through the corresponding menu in the OS.

True, this is the fourth crystal of this, the 7th version of the Studio ... Well, what can you do, updates are not distributed on the Internet, they cannot. Just because of this situation: each processor with its own code base. That is, the MOV EAX, EDX command has an opcode not 8BC2, but ... no one knows which one. A set of opcodes is randomly determined at the factory when the plate is burned. And then the program is compiled for it.
Perfect protection! No one can write a virus if the assembler commands are different! I remember ten years ago there were languages ​​with their virtual machine ... And now, with # and java - compiled languages.

Well, in fact, what's the difference on which OS the user sits on, if the medium transmits only the window size to the program, and the input / output of the connected devices, and the program gives the ready-made picture? At the same time, all input / output APIs of any devices for any OS are strictly standardized and a step to the left, a step to the right - an escape is considered, and a jump in place is a provocation.
Yes, there are downsides - programs have to be sent by mail, and for development to order a "developer processor".

It is supplied separately from any development environment. By the way, the code table of assembler opcodes for a specific developer processor is requested by the development environment itself, and it is not possible to get it for study - encryption, security protocols, all that ... if the possibility of obtaining a code table from this development environment is proved - huge fines and freezing of production lots. But on the other hand, there is no need to fear that the source codes “will leak into the network” - what the hell is needed if the developer’s processor stands as a car?

I am one of the few who can afford a developer processor ... And that is because I’m doing the last good thing for programmers - web development.

Also, by the way a difficult thing. Any dynamics - is performed on the server side and is compiled. And the user can not transfer any active code. But the user can transfer all the mouse clicks and keyboard input ... Yes, yes, the servers had to become more powerful ... That is, now it’s just impossible to distinguish a website from a thin client. I remember how high the developers raised when our president issued such a decree!

And where to go? In the States, a similar decree was issued a year earlier ... But at least the network and servers cope with such a load ... and we have everything as always ...

Well still, all this nonsense of standardization did not reach programming languages! There were, there were attempts to name the 1C state language and ban the rest ... Thank God, 1C itself resisted - it will never catch up with all existing frameworks of all existing languages. Well, society has spoken ...

Another consolation is open source. True, he had to become paid. Not for individual libraries and frameworks, of course, but for individual programs and operating systems. Why did you have to? Because nobody can compile sorts for their operating system processor - there is no processor code table. And release of a crystal costs denezhek ... here also turn as they can. The same OpenOffice periodically arranges the collection of money for its release.

Upd: it is assumed that the processor's bit size at least does not decrease, but as the maximum increases. Those. the number of variants per opcode is 2 ^ 64 or more.
With the increase in the number of transistors on a chip, the performance does not necessarily increase: for example, the last Mafia “weighs” 42 gigabytes in the packed version - and all this must lie on the crystal. Those. built-in at least 1TB (we have the same future, right?) flash drive + xs how much RAM.

Upd2: I forgot to mention that each crystal is a completely self-contained system that does not have the function of accessing files on the internal drive. Those. you cannot copy a calculator, textures, or the desktop background sewn into the OS onto the flash drive. Also, you cannot copy your program to the crystal disk and run it from there. The only exception is the processor of the developer - he can save the compiled files to an external (with respect to the crystal) disk and execute them from there.

According to the results of the discussion, it turned out that 64bit per opcode is cracked in a reasonable time. So, I, by my will of the author, change the crystal width to 128bit and say that if an inoperative opcode is specified, the exception of a “goes attack” crystal processor is triggered. How the program will react on the chip is not known, but we will assume the worst option: in the case of a network attack, blocking the IP address, in the case of a local one, stopping the program and asking you to take / send the crystal to technical support.

Source: https://habr.com/ru/post/399781/


All Articles