Move #05
18 мая 1997

XOR'em ALL - Algorithms protection software: ALKATRAZ, SPEEDLOCK.

<b>XOR'em ALL</b> - Algorithms protection software: ALKATRAZ, SPEEDLOCK.
         XOR'EM ALL (Continued)

(C) Ars MDM 249-9753


    One of the most perverse ways
protection of downloaders are multiksorki.
They appeared quite long ago, when it is widely used in various 
tape tread, such as Alcatraz'a and SpeedLock'a.

Their main purpose was that
to better hide any custom loader, do not allow for
copy of the program by conventional means.
Protecting disk tool also does not cost
without embedded ksorok. So in 1995, was released by SoftLand 
hit of the season - the game "Field of Miracles." Since it was 
written in Basic language and, given the large demand for

such popular products, the toy was
sternly defended - "smeared" throughout the
drive and a slightly Zaksor. This is the "slightly" takes about 
40 (!) Sectors. Another striking example of this coding are all 
(especially Sanalex'om) beloved little thing called 
MultiProtect (author-MastSoft). Protection was put on top 
MicroProtect'a and included start-Basic-block and multiksorku 11

sectors. I should say that DeadLock
(The so-called MultiProtect MastSoft'a),
served its purpose - stealing programs
for many it was stopped at a sufficiently long period of time - 
until the moment when become common disc copiers

type McDonald'a. It is interesting to note that
This protection seems like not only
trader'am Minsk and other cities. For example, in the toy 
SquareHead from OutLand'a used a protection statement.

What is a multiprotekt?
This sequence of primitive ksorok
Type:

         DI

         LD A, par1

         LD R, A

         LD HL, address-1

         LD DE, par2

         LD BC, length
 cycle LD A, R

         XOR (HL)

         XOR D

         XOR E

         LD (HL), A

         INC HL

         DEC BC

         LD A, B

         OR C

         JR NZ, cycle
address ...

Follow ksorki can have exactly the same form (with other 
parameter values) or a little different, for example: used to 
loop command DJNZ, do not use registers DE, etc. Private ksorki 
themselves are elementary, but they are a huge number, measured 
sectors, forces immediately abandon the idea to untwist them 
manually. Especially because at the time of occurrence of such 
protection did not exist STS and catch the change register R 
had its own. Great disadvantage multiprotekta (in contrast to 
the same Alcatraz'a) was that he was very

too primitive in the sense that consisted of
virtually identical ksorok in which
There was nothing original. Ie protection
should have been conceived as the authors simply
speaking, to starve out the hapless hacker. It is easy to be 
predpolzhit that the encryption is performed using the files of 
some, and hence cracking process can easily be automated. It 
was necessary to take into account following circumstances:

1. the first step of the cycle ksorka restores address 
conditional jump (cell address-1);

2. value of the register R, given in ksorke can be used as a 
primary parameter in subsequent ksorkah; 3. Size ksorok 
consistently varies depending on their type; 4. ksorka be 
unmovable. 

    Propose a way to solve this
puzzles:

; DEXORING SYSTEM
; Written by Ars 1995

st_code EQU # 9EC1; top ksorki
len_code EQU # 14E7; length ksorki
zapas EQU # 0500
; Need "just in case" to the latter; Applying ksorka not 
zaportila piece of code dopusk EQU # 0020

; Max possible size ksorki: it is for
, This criterion shall stop, then
, Is the place where it ends and ksorki
; Begins loader, for whom everything
; Do ...
double EQU st_code + len_code + zapas
, A copy of the source code ksorki
START EQU double + len_code
'S address early Stage


        ORG # 9C40

        DI

        LD HL, st_code; Current Address
        LD (curr), HL; top ksorki

        LD BC, len_code; Make a copy of the code

        LD DE, double; all ksorki

        LDIR
NEWXOR LD A, # 77; Search LD (HL), A

        CALL SEAR_B; see Remark 1

        CALL WORK

        CALL COPY

        CALL START; Rasksorivaem 1

        LD (dexor), A; bytes - for JR NZ

        LD A, # 20; JR NZ Search

        CALL SEAR_B

        INC DE

        LD A, (dexor); Write the correct

        LD (DE), A; jump address

        INC DE

        LD (curr), DE; now promoted
        CALL WORK; Vai all ksorku

        CALL COPY

        CALL START

        JR NEWXOR; etc.
SEAR_B LD (byte +1), A

        LD HL, (curr)

        PUSH HL

        CP # 20

        JR Z, metka

        LD DE, # 0006, departed for

        JR plus; to skip
metka LD DE, # 0001; possible komanrlus ADD HL, DE; between LD 
DE, par 

        EX DE, HL; where par can

        POP HL; be code # 77
BNF LD A, (DE)
byte CP 0; Exit if to
        RET Z; manda found

        INC DE

        PUSH HL

        PUSH DE

        EX DE, HL

        XOR A

        SBC HL, DE

        XOR A

        LD BC, dopusk

        SBC HL, BC

        POP DE

        POP HL; cycle, if by
        JR C, BNF; mandates could not be found

        POP HL; Full output

        EI; whether the code is not found

        RET; at length dopusk
WORK XOR A; Copy code

        EX DE, HL; ksorok in buffer

        SBC HL, DE

        PUSH HL

        POP BC

        EX DE, HL

        LD DE, (buffer)

        LDIR

        LD (buffer), DE

        LD A, # C9; Set point

        LD (DE), A; stop

        LD (curr), HL; Keeping current
        RET; schy address
COPY LD HL, double

        LD DE, st_code; Restore

        LD BC, len_code; "original"

        LDIR

        RET

curr DW 0
buffer DW START
dexor DB 0

I can not guarantee that an optimal solution, however, the 
idea, I think, is clear. 





Other articles:

Foreword - The paper comes out .. but only once a month.

Schedule - A list of running BBS Minsk.

Letter - LENA'Stu on the development of the Spectrum in Bobruisk.

XOR'em ALL - Algorithms protection software: ALKATRAZ, SPEEDLOCK.

Musicians - Create an echo in the Pro-Tracker v2.1

purposely not pridum. - Standards of Conduct belorosskih hedgehogs at work and in personal life.

Description - Description of the game "SNOOPY and PEANUTS".

Advertising - Advertising and announcements.


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

Similar articles:
DIY - - Do-user himself.
SS'99 - Interview: Kvazar / RUSH (editor Polesie) and leader of the Samara spektrumistov MMA (Unbeliever).

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