Adventurer #06: Обмен опытом: Методы защиты программного кода

┌─────────────═══════════════───────────┐  
╠─── Methods of Software Code Protection ───╣
└─────────────═══════════════───────────┘

Overview Article

At the moment, there are several methods of software code protection. I will list them.

1. Protection by Inversion with a Mask. (In common parlance - "KSORKA")
A widely known and used method. Often used with the register R as a mask and is characterized by rare uniformity, although genuine software masterpieces occasionally appear. It is minimally effective, although it often requires considerable time for cracking. A vivid example of use: the copier L-Copy (author: Laptev).

2. Protection using various "twists".
"Twist" - code written using specially convoluted algorithms to hide the direct address of launching a subroutine or to obfuscate the program itself. It features an unlimited number of variations but is used relatively rarely, as it is designed for a weak understanding of assembly language and programming principles. Currently, it is minimally effective. Examples are found everywhere, such as stack manipulations, conditional jumps, and "implicit" exits through the stack to the desired address.

3. Method using PI code or varieties of stitched code.
PI code - assembler for an abstract machine, a sort of intermediate stage between machine code and high-level language. Stitched code - a specific variant of the same PI code.
A very cool method of protection, generally similar to method 2, but exceptionally rarely used on Spectrum-class PCs. Disadvantage: "not weak" code size and lower performance compared to "clean" code. The effectiveness of the method is very high, and cracking it is only feasible for very experienced programmers. Example: any program compiled in Pascal, the Forth language. On the Spectrum, such code can be generated by the BLAST compiler (others generate "twists", see above).

4. Method using cryptographic algorithms and passwords.
A widely used method on powerful PCs and in various spy "agencies". Based on a variety of mathematical algorithms, the goal of which is to obtain a file from the original information block and the key array (password) through horrific calculations, which can only be decoded by someone who has that password. Cracking such a file can only be done after studying about forty kilograms of specialized mathematical literature, after which you can confidently offer your candidacy for the position of CIA director. Ineffective on the Spectrum, as the password cannot be shown to anyone except oneself; otherwise, the whole country will know it within a couple of days.

5. Method based on the use of IM2.
Unlike the above, I have not encountered it, so I explain theoretically. It is based on the "binding" of the main program and ISR (from English - "Interrupt Service Routine") to organize control (for example, to calculate a checksum) of the main program for external intrusions. This opens up a wide field for experimentation. For instance, one could organize data transfer through ISR from one data array to another or use ISR for dynamic coding of currently unused subroutines, etc. The complexity of the method lies in the need for deep processing and "binding" of the ISR algorithms and the program to avoid bugs and delays in program operation due to the aperiodic operation of ISR, associated with the difficulty of determining the time from DI to EI. A very promising and promising method.

It seems that all other options for software code protection are merely special cases of the above or their combinations. The use of undocumented Z80 commands is not included in the article for a trivial reason - they have recently become well known to everyone.

I would be glad to receive any information on information protection methods and cooperation in this area.
Shpinev Roman Evgenievich (SHRSOFT).

───────────────────────

Contents of the publication: Adventurer #06

  • Presentation
    This is an introduction novel for the game Return to Home 4, featuring space battles and a narrative about pilot Raifus navigating challenges in a military context.
  • Presentation
    The article presents K.KAV software's new game 'DEATH WORLDS: TORISTAG INVADERS RETURN TO HOME 5', a real-time strategy continuation of 'RTHЧ'. Players will battle against competitors on resource-rich planets while managing technology and military forces. The game's projected release is between late spring and summer of 1997.
  • System Software Updates for ZX Spectrum - Котов А.В.
    The article reviews various software updates and utilities for ZX Spectrum, highlighting their features, usability, and performance. It provides insight into programming tools, disk management, and database applications. The tone blends critique and personal experience to inform readers about the latest developments in Spectrum software.
  • Overview of ZX Spectrum Software
    The article provides a comprehensive overview of new software for ZX Spectrum, highlighting various games, their features, and recommendations for players.
  • Interface
    Discussion of the ZX Spectrum's interface issues and user frustrations with compatibility and modern enhancements. The author critiques the push for users to modify their machines for non-standard features and expresses dissatisfaction with current trends. Reflection on the future of the ZX Spectrum and the need for a more vibrant community involvement.
  • Interface
    The article discusses feedback from readers regarding games and programming tools for ZX Spectrum. It includes cheat codes for a game, opinions on assemblers, and insights into user preferences for computing. Various reader inquiries about games and software are also addressed.
  • Interface
    The article discusses issues surrounding the OVER FILE GROUP, a game developer known for mail-order sales, and the impact on user trust in software distribution. It also raises the question of whether to transition the magazine to 128K ONLY, seeking reader feedback. The piece reflects on the importance of user support for maintaining a trusted gaming community.
  • Interface
    The article discusses recent news in the ZX Spectrum community, including game development updates, personal news about developers, and local happenings in the Rybinsk and Yaroslavl areas.
  • Presentation
    The article presents new software releases by SURDAKAR GROUP, including a demo of ROAD FIGHTER and updates on FONT EDITOR and RAY DISK MONITOR.
  • Promotion of Adventure Games
    The article provides a detailed analysis of the adventure games 'APOLLO' and 'ЧУЖОЙ', evaluating their gameplay, challenges, and shortcomings in design.
  • Ottyag
    Discussion of computer slang and its impact on modern language, highlighting humorous interactions among users.
  • Оттяг
    The article presents a humorous collection of absurd lists, including reasons for dinosaur extinction, alternative names for Robinson Crusoe's Friday, and more.
  • Ottyag
    The article presents a test for aspiring demo makers, assessing their skills and commitment to demo creation on the ZX Spectrum. It evaluates their approaches to music, graphics, effects, and their overall engagement with the demo scene. Results determine their standing from novice to expert in the demoscene community.
  • What Not to Say or Do When Drunk
    The article provides humorous advice on what to avoid saying or doing when drunk, based on personal anecdotes. It emphasizes the consequences of poor decisions and offers cautionary tips. The content is lighthearted and reflects on typical drunken behaviors and their repercussions.
  • Friendship Quiz
    The article presents a humorous quiz about friendship, evaluating how friends would react in various social scenarios, culminating in a scoring system to assess the depth of one’s friendships.
  • Ottag
    Статья представляет собой сборник китайских пословиц с юмористическим подтекстом, отражающих различные аспекты жизни и отношений. Она сочетает в себе элементы сатиры и легкого фольклора, используя ироничные наблюдения о человеческом поведении. Текст включает в себя аллюзии на сексуальность, настольные игры и религиозные вопросы.
  • Оттяг
    Статья представляет собой пародийное евангелие, где события жизни Иисуса Христа изображаются в неформальном и юмористическом ключе.
  • Experience Sharing
    The article provides a detailed guide on creating a complete disk version of a program for ZX Spectrum, including code examples and practical advice.
  • Experience Exchange
    The article provides a comparative analysis of the PC and Amiga platforms, highlighting their respective advantages and disadvantages based on personal experience.
  • Experience Exchange
    The article discusses the existence and behavior of computer viruses on the ZX Spectrum, particularly the BASIC file infecting virus known as 'Drunken Djinn', first seen in the game Last Battle.
  • Code Protection Methods
    The article discusses various methods of software code protection, detailing techniques like inversion masking, obfuscation, P-code, cryptographic algorithms, and the use of ISR. Each method is evaluated for effectiveness and application, particularly within the ZX Spectrum environment. The author invites further information and collaboration on information security methods.
  • Anniversary
    The article celebrates the sixth issue of 'ADVENTURER,' marking one year since the founding of the AURYN group. It reflects on the past year for the Speccy community, including the emergence of new programs and the first demomakers' gathering in the CIS. The author expresses hope for the future of Speccy and encourages readers to support and promote the platform.
  • Anniversary
    Article celebrates the 15th anniversary of the Spectrum, reflecting on its enduring legacy and recent developments in hardware and software.
  • Novella
    The article narrates a novella centered on a covert mission involving a programmer named Gerald O'Brien, who is hired by a drug lord called Swede to infiltrate a rival's computer network, leading to a thrilling sequence of espionage and violence.
  • Contest
    The article discusses a contest related to ZX Spectrum, showcasing submissions and participants' creativity.
  • Advertisement
    The article is an advertisement section in Adventurer #06, inviting hackers, programmers, artists, and musicians to contribute to the ZX Spectrum community. It outlines collaboration opportunities, offers specific requirements for software submissions, and includes contact information for advertising and game distribution. Additionally, it promotes a range of ZX Spectrum software and services available across various cities.