ZX Power #03
31 декабря 1997

Likbez - Recovery programs by address search start-up, with perevzloma.

<b>Likbez</b> - Recovery programs by address search start-up, with perevzloma.
REHABILITATION PROGRAMS (continued, beginning in the ZX Power'e 
# 2) (C) 1997 Alexander Desyatnichenko 
_________________________________________ 6.Vosstanovlenie 
programs run by the address search. Of course, finding an old 
boot vovzlome and, using its data, restore novit game is simple 
enough. But takoebyvaet infrequently, usually only vsamyh older 
games. Newer programmyposle download occupy the entire memory 
of bu-Schrieffer printer to the last byte in 65535i, of course, 
no old-ka zagruzchi you will not find them. How did the 
post-drinking in this case? If you already davnokovyryaetes on 
game programs, either in search for the infinite life, whether 
in search of interesting algorithms, it is probably You may 
have noticed that many programs similar to each other, I mean 
the programming structure. Usually one Keep the text messages

another - the graphics in the third - routines, ending with the 
directive RET, and, of course, somewhere in all of these 
routines are invoked through the CALL from, so to speak, the 
main connecting programmy.Raz such program is, then, somewhere 
in it there and a beginning - the address at which to begin

Start the game after you go
at him from the BASIC loader team
RANDOMIZE USR. And if you try to find
own this place and run it with the program? That's how often, 
and have recover properly hacked

game. How does look like the assembly language
beginning of the program? Usually start every game starts with 
a ban interrupt the machinery stack, clear the screen and color 
setting BORDER, followed by withdrawal on-screen game menu, the 
formation of a table, setting IM 2, the launch of melody and 
etc. Here are illustrative examples: 


              DI

              LD SP, 32768

              SUB A

              OUT (# FE), A


   So begins the program TURBO-BOAT
(As you know, it starts from the address
32768). Approximately the beginning of
Most renewable programs.
It happens also that the main program immediately begins with a 
subroutine call by Numerous CALL, it is immediately evident. Do 
not be afraid to experiment, especially if you have the ability 
to multiply quickly reloaded to drive - write down all the 
"suspicious" of the address and try with all their pozapuskat 
game. In addition, you will find the address start-up, you 
still find entry points into different

routines that you will be interested in terms of implementation 
of the or other interesting algorithms, and you

then be able to use it in
own programs. This method is certainly a good fit for other
purposes, for example, to break heavily protected programs. 
Why, indeed, hack loaders? Only to find the address to download 
and run the game! So for now you can generally leave the boot 
alone and just get yourself a code file and find the address 
run it! You say, address start find and how to deal with load 
address? Believe me, it is also possible. Have you seen

cassette version of the game RAINBOW ISLANDS,
loader which has deterred most
only for its length! It's not like something, and almost brand 
boot company OCEAN, was filmed only protection copy of this 
very boot. So, when I have not had the drive, I passed 
downloader, understood with the addresses of the viewing code

file in just a half hour. Well, if you
need to find the load address codes in MAGIC-file on the drive, 
then there are no problems at all - looking

his DISK DOCTOR'om, STS'om, we can immediately
determine where there useful information, and where an empty 
space and, accordingly, then make a discharge. Help to find the 
address of the program can run itself a stack machine. After 
all, before being hacked, the program has had time to run and 
perform certain operations, dig deeper in the stack, you can 
try to determine what and to find a place in program, after 
which "dance for him." By the way, some games are spread in a 
semi-recovery, for example, THE SCEPTRE. If you look like it 
starts, you'll see that in the processor registers recorded 
data taken by a hacker from the stack, and then he makes a JP 
at the address specified in the same way, so the program still 
does not start from the beginning, and from the place where was 
once stopped. And another very interesting point about the 
register R. After all, as you see, is nowhere restored! Well, 
some games are quite sensitive to it. Thus, For example, if you 
make JP the address start Game A.M.C. in the register R Record 
high value, then permanently in the boxes you will

fall the same, as follows from
"Law of meanness," the most unnecessary weapon.
If its zero, then everything is in order, in each box is 
different. But in the games company OCEAN for a large value in 
register R before running all the enemies that do not at all, 
and then once they go in droves, and the same ammunition - that 
does not fall at all, and then suddenly all at once in one 
place. In other words, if you want

recovery program, in which the course
game is given a random manner, ie
depending on the value of the register R (I
I think you can guess how this
know - a few times restart the game to play and see if one 
always and the same thing at the same location, or every time

differently), worked fine, then before
how to make JP the address start, reset the register R or try 
to put on him a different value. Some encoders can say that 
because from the moment start and to the point where, depending

R is constructed from the game, he can register
proprygat than a dozen cycles ... Well
Well, try to experiment and you will surely see a lot of 
interesting things. Apparently, the authors have used games 
all, who knows, maybe none ELITE can not pass because of the 
fact that in case R is not what we need ... 


       7.Vosstanovlenie programs

           by perevzloma.


   This method is based on the well-known popular saying "oil 
will not spoil the porridge." It has already been an example of 
how many times the game perevzlamyvalis, roaming from one 
system to another. So Thus, if you again click on the MAGIC

in the same place, where once the button was pressed multifeysa 
worst of it you have already do not, but his job much easier. 
Only need to remember that this button spoils a few cells in 
the system variables, so if there is valuable information, this

fact must be taken into account. This perevzlom
sometimes it is simply indispensable. For example, when 
restoring games HYPER ACTIVE SOLOMON'S KEY and I tried to see

disassembler code blocks, and there
instead of the usual routines and text
communications - solid gibberish. Just
in hacking these programs multifeysnaya
button was pressed at a time when
game has already been loaded, but firm
multistage protection (the so-called
"Ksorka") has not yet completed the process of decoding the 
main code block. To not wrestle with a decoder manually (and it 
may be impossible this case) had to get ill hack program, 
enabling it to fully start, and then Button fly MAGIC. AND

yet. If hacking 48K-128K programs use the machine with a floppy 
drive, then why not use this technique for recovery programs! 
Indeed, in our before it has a lovely 128K-disassembler STS, 
which has a large opportunities. With this program,

You can download the whole file MAGIC-in
memory of the computer, view them and make any izmeneniya, then 
save on disk in either sliced. So

way eliminates the need for multiple loading-unloading and 
cutting-pasting the code block the main game. But you can do 
48K machine, if you install the firmware into it with so-called 
"shadow" monitor, this much has been said lately. Thus 
restoring the program, you will sooner or later come across a 
game that takes all the computer's memory. How to unload this 
unit and how it then download it? It is clear that using STS on 
128K-machines you have a problem with it is not, but if

someone will suffer a reduction
programs within the 48K, it would have
to do something like that done sometime
Polish hackers, loading-unloading separately long block from 
the CLEAR and above and short length 1204-2048 bytes. You've 
probably seen that many of the recovery program is loaded into 
the end of a shaded black screen area small code blocks of 
length 1704, or say, 1204 bytes, and then, using

protsedurki a native being moved
these bytes at address 23296. You can and you
to begin to try to do so. I
I would ask experienced hackers and coders are not
joking with my detailed explanations of such basic, sometimes 
just lamernyh things, because its main purpose, I I think many 
users attach to koderstvu way "from the simple to complex ", - 
first, easiest LDIR in the restored toy, and then may

be a person wants to try and
himself to write ... In the turn, I
would like to remind them that if you
undertook the restoration game, too,
Please remove this hack all
superfluous: clogged stack fragments the data
transferred to another place with the help of
LDDR, old spouts at the end of memory
old system variables and the region
BASIC, the values ​​of the stack, and then the stack itself
in the picture ... Suppose we have already recovered
your game looks to firm and from the inside, and then suddenly 
someone wants to see how you restore it. And very much much to 
ask not to change the text messages have fans inflate the year, 
instead of authors' names say hello, distort the firm CHEAT.



        8.Drugie recovery.


   When you restore a game you can
face other challenges. Thus,
watching the game listing ELVEN WARRIOR,
You can find an old boot, which implies that the game is loaded 
in three blocks: screensaver, the main unit and the music for 
the coprocessor. Well, with the screen saver and music all 
clear - in this case they are not recover, but the game itself 
you can try. It would seem that everything is simple - to pull 
out of the MAGIC-cracking unit of length 32768 bytes starting 
at address 24576, and run from the address 33024. Alas, not 
quite so. On the screen a lot of crashes and the game does not 
work. Let's see what is available at launch. Yes, there are a 
lot of "bloat" from transformation in the computer memory at 
once after boot - before you display the game menu, the program

itself modifies the memory, there is transfer of codes from one 
place to another, entering data into memory cells, etc. while 
at the same time rubbing parts of a program, where before it 
was useful The information already thrown teams

LDIR in other areas of memory. Of course,
if now upload a file of the above
length and then re-launch it from a place
old start, then again she will perform all these conversions, 
transferring the other information already in the same place. 
Such games can be recovered either deal with all these umklapp 
and installing all the information on the place where

it should be before the start of the game,
or else unloaded all the used memory and deleting teams and 
umklapp transformation, pretending that they have already 
happened. Incidentally, the above example can be used for new, 
original protection. For example, your program loaded, runs and 
immediately destroy part of itself - the part that has just 
been fulfilled, and more do not need it now, no one in your

program ends do not find it. And about ELVEN WARRIOR - I was 
very depressing the fact that this and some other games

(SCEPTRE of BAGDAD, REBEL STAR 2, etc.)
have been translated into Russian ... in unrecovered (!) form. 
Now a little bit to restore the graphics. After the restoration 
of the game was CURRO JIMENEZ, that all game actions are 
developed in middle of the screen, the rest of the screen was

black, itself begs the question
that probably during the game screen
framed by a beautiful static graphics
form of frames. When I carefully examined
Available in scraps of playing the game menu and
and uploaded it to the screen with no attributes
(6144 instead of 6912 bytes), the screen clearly vyrisovalas 
black and white, carefully traced frame. It only remains

paint it and display the following
choice of management. Spoiled static graphics treated fairly 
simple. We need to find a place in the program where she

stored (which can be determined by looking at all the transfer 
addressed in the screen area), unload, correct in photo editor 
and put in place. In another is the case with sprites, 
especially working on a mask, for their Recovery can not do 
without special software such as SCE or SPRITE TOOLS. About 
loadable games. Many of them have cracked already,

when the memory has been loaded the first level. After the 
restoration of such a program goes directly to the game, 
without requiring podgruzki, since it is already there, on the

as evidenced by the internal system
variables of the game. So we got RICK DANGEROUS 2, STRIDER, and 
many other games, in which the first level

presented twice: in the game and
tape or disk immediately after the game. Naturally, if you want 
to restore everything as it was, then you can try to remove

from the memory of this level and make appropriate changes to 
the system variables of the program. Frequent errors and within 
levels, for example, contained in They chart. Most also have

still engaged in recovery mode
48/128K. After all, many games released
universal, working with any memory. And the definition of the 
type computer (48/128K) was carried out of the boot and if it 
was a 128K machine, the game has to finish loading additional 
blocks music, graphics, fonts, etc. in the other pages in 
memory. In addition, the designated memory cell were recorded a 
certain value. During operation program appealed to the cell 
and thus build. Of course, if a game has been hacked in the 
mode of 128K, then it can not work after a break in the 48K 
machine and vice versa. Especially This applies to games firm 
CODEMASTERS. So, for example, have been widely

dissemination of such games as KAMIKAZE,
PANIC DIZZY, NINJA MASACRE, COLUMBUS JUMBO 1, 2, SLIGHTLY MAGIC 
and others that work only on 128K, computers, although They 
were issued universal. So, virtually all branded loaders 
CODEMASTERS were checking machine type and record in a separate 
dedicated memory cell "mark" about it. When the game itself 
starts, it refers to those cells, and if there is recorded a 
value corresponding to 128K, it permitted an appeal to other 
pages in memory and the game is accompanied by more music and 
graphics, but if your computer has only 48K, all this was 
ignored and the game was as usual. Thus, if

your game is at 128K and refuses to run in 48K, then, first of 
all, check to which cell it becomes, and what is there. If such 
treatment there is, then you will only organize from the 
bootloader checks the type computer with entering a 
corresponding values ​​in the desired cell and memory, 
respectively, downloading, or ignoring additional blocks. 
Checking procedure might look something like this:



      XOR A; record in the major

                  ; Page

      LD (# C000), A; at # S000 zero

      LD A, # 17

      LD BC, # 7FFD

      OUT (C), A; trying to choose

                  ; Additional

                  ; Page

      LD (# C000), A; enters the cell

                  ; # C000 number # 17

      LD A, # 10

      OUT (C), A; choose a major

                  ; Page

      LD A, (# C000); read from # C000

      CP # 17, # 17 here if we have

                  , 48 machine, and if 0, then

                  ; A 128 machine

      JR NZ, LOOP

      XOR A; zero out accumulator
                  , A constant 48 kB

      JR LOOP1
LOOP LD A, # FF; as a constant for

                  , 128 KB
LOOP1 LD (23627), A; puts constant

                  ; The type of computer in

                  ; System variable

      RET


   Now, when this routine work is over, the main program will 
be as previously envisaged, is in cell number 23627, 
corresponding to the type of machine. Recently, much added work 
for those involved in the restoration of names of these modes 
in games, because some hackers, apparently ignoring the 
interests of 48K users, intentionally make universal 
48/128K-igry (The FLINTSTONES, LED STORM, YOGI BEAR GREAT 
ESCAPE, and many others) 128K ONLY. And even worse, when the two

48K-games make one at 128K (PHANTOM F4,
MORTADELLO 'FILEMON 2, etc.), or add different nonsense, that 
stretch the game to all the 128K, as was done with SATAN. Very 
kindly requested to bring this fellow did not spoil the game 
more! 


         To be continued ...
_________________________________________





Other articles:

Authors - The authors of the journal and editorial contacts.

Entry - Welcome and opening remarks.

Entry - Describes the features of the shell.

Entry - Content.

Entry - Announcement of articles the next issue.

Likbez - Recovery programs by address search start-up, with perevzloma.

Likbez - Automatic creation of masks for sprites.

Likbez - a new algorithm for fast 3D graphics on SPECCY.

Likbez - CHEATS POKES and in game programs: the history of methods of cheating, corporate CHEAT, using published POKES, address search of immortality.

Miscellaneous - Fake editors for musical co-processor.

Miscellaneous - Trouble with AY (wrong clock frequency).

Miscellaneous - The virus in the IS-DOS.

Miscellaneous - Prulevka - strange people.

Miscellaneous - The editor of shipment for ELITE-3.

Miscellaneous - the results of an opinion poll Spektrumistov.

Miscellaneous - Competition special correspondent for the magazine.

Miscellaneous - Development Project Spectrum market.

Miscellaneous - FUNTOP-98 - the outcome of the festival.

Room with laughter - Computer Dictionary for Dummies.

Room with laughter - Chemical History.

Room with laughter - The second nasshestvie Martians.

Room with laughter - Jokes about Internet users.

Room with laughter - Vindoza - Source Code of Windows.

Web - How does a modem.

Web - Command HAYES-modem.

Web - What is MNP in HAYES-modems.

Web - Modems on the Spectrum.

Interview - An Interview with Ticklish Jim-ohm, Rom / Progress, BRAIN WAVE CORP, RST # 7, KGS INC.

Perspective - The presentation of the game "Mirror".

Perspective - CSC: DEJA VU - rumors and reality.

News - News from the scene: Phantom Family, Smash, OHG, Avalon, Spark, K3L, TGM, First Association, Discovery Group, BrainWave, etc.

News - News from the Chelyabinsk spektrumistov.

News - News from Cherkassy.

Around the World - APPLE presented a clear project PC.

Around the World - IA-64: An informal chronicle of the revolution.

Around the World - Bill Gates: ON WINDOWS - only the good.

Around the World - Everything you wanted to know about "silicone".

Fiction - The story EG Nesterenko, "The Crown and the Ring (part 2)

Fiction - Bloody Shadow.

Fiction - Terminator 3.

Scrap - BRIGHT + FLASH = NEW SPECCY.

Scrap - Wiring HAYES-modem.

Review - Magazines that we choose: ADVENTURER-6, AMAZING-2, AMIGA NEWS-1, CHAOS-1, DEJA VU-4, DEPTH-1, FLASH TIME-1, MIRACLE -1, OBERON-4, ODYSSEY-2, SPECCY-7, SPECTROPHOBY-, SPECTROFON-1923, SPECTRUM PROGRESS-2, ZX-FORMAT-7, ZX-NEWS-3, ZX-POWER-3, ZX-REVIEW.

Review - Overview of new products ON: TWILIGHT, BOOVIE, TOWDIE, ORION, SHERWOOD, WACKY RACES, MYSTICAL, JMENO, RUZE, SUPER CARS, LAST NINJA2, CHACK YEAGER-S, ADVANCED FLIGHT TRAINER, THE RAVERS PARADISE, TRITON MIX, TWIN WORLD, DUCK MANIA.

Mail - Letters from readers.

Mail - Letters: what they are ...

Desktop - Shadow mnogotekstovy assembler debugger ALASM 4.1 (Short description of functionality).

melomania - melomania Issue 1.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
Scene - cannibalism on the scene: "Camp Spectrum is divided into two hangouts: Western, European scene and the Russian ..."
Work at Spectrum - "to whom we are trying to produce what one or another software? Who needs all this work?"
Seven and 1 / 2 - shoot yourself in the foot (lead programmer).
Technology sprites - Part 9: Printing sprites (coordinates given in pixels).

В этот день...   21 November