zastita.1ppekovic,
Pošto je ovo programerska konferencija, u ovoj tema je prvenstveno
namenjena zaštiti programa. No, rado ćemo videti i komentare i diskusije o
zaštiti podataka, sistema od radoznalih, neukih?! korisnika, virusa ...
Paya
zastita.2dejanr,
==========
security/encryption #411, from jrubin, 563 chars, Fri Oct 4 14:53:37 1991
Comment(s).
----------
TITLE: DES cracked!
Yesterday's New York Times reported that the Israeli mathematician
Adi Shamir has found a way to break the Data Encryption Standard (DES).
Shamir is well known for his work in cryptanalysis. He is the 'S' in
the RSA public key cipher system. American experts who were interviewed
said (1) they believe him, and (2) the method is probably not good enough
to make DES obsolete.
His method is a 'chosen plaintext' attack.
This means that the would-be decrypter must obtain the ciphertext
corresponding to carefully constructed plaintext.
==========
security/encryption #412, from jrubin, 384 chars, Fri Oct 4 15:15:06 1991
Comment to 411. Comment(s). More refs to 411.
----------
I had Shamir as a professor for an algorithms class in '78 or '79
when he taught at MIT. About a year later, the NSA sent him a
letter threatening him with prosecution if he didn't stop working
on cryptographic problems. Instead of being intimidated, he called
a press conference. The NSA later claimed the ^
letter was sent by an employee who really had no authority to
do anything.
==========
security/encryption #413, from dvanhoozer, 293 chars, Fri Oct 4 15:18:37 1991
Comment to 412.
----------
Speaking of such threats.. what happened to that company in Washington state
that was going to produce some kind of phone scrambler that got pounced on
by the feds? I recall that the feds claimed that the device (a cheap
consummer product) whould make it harded on law enforcement.
Dewayne
==========
security/encryption #414, from glass, 272 chars, Fri Oct 4 22:56:09 1991
Comment to 411. Comment(s).
----------
This sound like old news. Biham and Shamir have been able to crack
"weakened" versions of DES for some time, but only using carefully
chosen plaintext.... I have the paper. And the technique runs out
of steam if you increase the key length or the number of rounds.
<BG>
==========
security/encryption #415, from glass, 159 chars, Fri Oct 4 22:57:56 1991
Comment to 414. Comment(s). More refs to 414.
----------
By the way, it's also important to remember that Shamir has a vested
interest in trying to crack ANYTHING but RSA.... At least until his
patent runs out. <BG>
==========
security/encryption #416, from jrubin, 55 chars, Sat Oct 5 00:42:00 1991
Comment to 415.
----------
>>Sounds like old news
No. This is full 16 round DES.
==========
security/encryption #417, from bstrauss, 197 chars, Sat Oct 5 08:34:17 1991
Comment to 414.
----------
The NY Times article quotes him as "finally able to break the full DES".
No details yet, pending publication. The article is based on an EMail
message Shamir sent to a few collegues.
-----Burton
zastita.3nboskovic,
Da li je neko startovao scan pod novim shez-om?
Kada iztestira memoriju, proveri programe unutar
arhive i kad mu se stisne bilo šta za povratak
u shez pri još nekakvom pakovanju prijavljuje
found 1 error!
probao sam sa više arhiva i uvek isto. Da li neko
ima ideju šta je to?
(c) klap
nikola
zastita.4stal,
-> #3, nboskovicDa. Primetio sam isto. Bug valjda..niko nije savršen.
zastita.6nboskovic,
-> #4, stal*> Da. Primetio sam isto. Bug valjda..niko nije savršen.
Tako nam i treba kad ne čitamo uputstvo uz programe
(već standardno :)))). Koliko sam shvatio iz uputstva
kada se radi scan iz shez-a, shez prvo proverava
autentičnost arhive ( ono da li unutar arhive iza svakog
fajla ima AV ) pa izgleda da zbog toga prijavi tu jednu
grešku, a do toga sam došao kada sam uradio scan sa
shez-ovim paketom koji ima to AV unutar arhive. To znači
da ubuduće treba čitati uputstvo pre upotrebe programa
a ne kad se negde zaglavimo.
(c) klap
nikola
zastita.7dejanr,
==========
security/encryption #418, from hamilton, 1595 chars, Fri Oct 18 13:54:39 1991
----------
TITLE: DES can be exported!
I'm amazed. Everything I've read in the press (including a long article
in the New York Times this summer) has led me to believe there was no way
to export DES implementations. Today I learned that's not so.
I just got off the phone with Major Mike Van Atta at the Department of State,
Commodity Jurisdiction. According to him, you do need an export license
to ship DES software outside the US or Canada and indeed, to get a license,
you do need to specify who your end user is and what use they will make
of the product, but according to Major Van Atta, almost no requests for
a license are being turned down these days.
Now, obviously, no one could afford to go thru the licensing procedure
for each copy of a low-priced software product (mine sells for $350), but
Major Van Atta tells me that you can get a license covering a distribution
agreement with a foreign distributor so long as they agree to treat the
product as a controlled commodity (i.e., establish a paper trail of who
they sold to) and not to re-export it. E.g., in my case, I have a
Swedish reseller asking if I can provide a version of my product with
DES that they expect to resell to some financial institutions there. No
problem, apparently, even though we don't know right now exactly who or
even how many such end users we're talking about. I can get an export
license covering my distribution agreement with that reseller, so I'm
told.
Is this a change in policy? Major Van Atta claims it is not and that
in the past, people have simply misunderstood the government's policies....
zastita.8dejanr,
==========
security/long.messages #121, from hshubs, 3341 chars, Thu Nov 14 21:15:28 1991
----------
TITLE: SAFE Computing
FOR RELEASE MONDAY, NOVEMBER 11, 1991
SUMMIT, N.J. -- UNIX System Laboratories, Inc., and UNIX
International, Inc., today announced the formation of SAFE Computing,
a group dedicated to raising the awareness of computer security among
end users. The announcement was made at the Computer Security
Institute Conference in Miami.
SAFE, which stands for Security Alliance For Enterprise
Computing, is open to all Original Equipment Manufacturers (OEMs),
Value Added Resellers (VARs) and Independent Software Vendors (ISVs)
concerned with security and Open Systems in an enterprise computing
environment. End user participation in the group is also welcome.
``As enterprise computing systems grow larger and more
complex, so does the need for security,'' said Mike DeFazio, USL
executive vice president. ``SAFE Computing will show end users that
Open Systems and security is not a paradoxical relationship. The
enterprise computing community will benefit from the advantages of
Open Systems coupled with the protection provided by UNIX System V.''
Even the most sophisticated commercial users generally are not
fully aware of their own security needs. All users require secure
systems, but the security level required will vary. SAFE Computing
will focus on the security needs of the commercial marketplace and
demonstrate that UNIX System V and related products and services can
satisfy these requirements.
UNIX System Laboratories, Inc., and UNIX International, Inc.,
are forming the new group, and UNIX International will ultimately
manage its activities, designed to improve security awareness and
education in the commercial sector. The first meeting of the new
group will be held in conjunction with the UNIFORUM trade show in
January.
Dave Sandel, vice president of marketing at UNIX
International, said, ``UI is looking forward to working with our USL
partners and the members of the SAFE Computing Group to promote the
importance of system security in the commercial market. The initial
release of UNIX System V Release 4.1 ES includes significantly
enhanced security, as mandated through the UI System V Roadmap
process. UI is also initiating a new technical workgroup to address
security in the distributed open systems envirponment. We intend to
ensure that the technical group works closely with this new marketing
group to ensure synergy.''
Companies that have already joined SAFE Computing include
Amdahl Corporation, AT&T Federal Systems, Oracle Corporation, Pyramid
Technology, Informix Software Incorporated, Uniplex Limited,
ITI/RUBIX, Sun Microsystems Computer Corporation, and Unisys.
Further information about SAFE Computing can be obtained by
calling Craig Rubin at USL at 908-522-6160 or writing to SAFE
Computing, UNIX System Laboratories, Inc., 190 River Road, Summit, NJ
07928-8004.
UNIX System Laboratories, Inc., headquartered in Summit, N.J.,
develops and markets UNIX System V and related system software,
including UNIX System V Release 4.1 Enhanced Security, to computer
hardware and system software vendors worldwide. USL works closely
with UNIX International, Inc., to ensure that UNIX System V evolves in
step with the needs of the Open System industry.
zastita.9dejanr,
==========
ibm.dos/long.messages #405, from nbrown, 18396 chars, Thu Jan 9 05:03:56 1992
----------
Here is NOFUN.ASM (and friends), a program which will crash the PC if
programs on a "hit-list" are run. This will allow you to stop people
running games, unapproved word processors, etc etc.
----- cut here for READ.ME -----
NOFUN - discourage PC users from running non-approved programs
--------------------------------------------------------------
NOFUN is a program designed to allow PC (network) managers to prevent
certain programs from running on the PCs under their control. It allows
you to specify a list of program filenames. If the PC is found by NOFUN's
regular checks (every 15 seconds or so) to be running one of the forbidden
programs, the PC will crash.
As supplied, NOFUN will treat all of its command line parameters as a
list of files to be checked for. For example:
NOFUN TETRIS BL.EXE LL.COM
This will crash the PC if the current program is BL.EXE, LL.COM, or
TETRIS.anything.
You can also rebuild NOFUN (see source code supplied) so that the "hit list"
is hard-coded. This may be useful if you have moderately smart users (who
can read a .BAT file, but not use the debugger to take NOFUN.EXE apart).
I have included the source code; you are strongly recommended to rebuild
the software before running it (there are a lot of bad guys out there).
The programs are built with Turbo Assembler 2.0, but should work OK on
other assemblers with only minor modifications.
If you like, you can build several versions of NOFUN (eg, one for you,
who only plays known virus-free games, and one for others who you know
are not such responsible citizens). You can also run multiple different
versions at the same time, and the restrictions implied by all of them
will be applied.
How it works
------------
NOFUN finds the environment block corresponding to the current program,
which contains the full path name of the executable (.COM or .EXE) file.
It then compares the filename.ext component of this filename against the
supplied (on the command line or hard-coded) list, and if it finds a match,
locks up the PC.
Caveats
-------
Note that since the principal activity of this software is to crash PCs,
its installation is not entirely without risk.
NOFUN has been tested on MS-DOS 3.30 and 4.01 only. It should work on
MS-DOS 5.0, based on information in Undocumented DOS (Schulman et al).
It may well not work on variants such as DR-DOS.
NOFUN can be trivially defeated by renaming the executable program.
It is intended mainly to discourage non-expert users from running games
on your organisation's PCs, with the attendant problems of lost working
time and of course virus dangers. By monitoring your PCs' hard disks and
network file areas for games, and arranging for NOFUN to crash them, you
may reduce the amount of games being played.
I am planning to implement a version in which the current program must be
on an approved list. This would allow any game to be trapped. It will
allow the current program 30 seconds or so to complete, so that small
utilities which complete quickly need not be registered.
Legal Department
----------------
This software is Copyright (C) 1992 Nick Brown. It may be freely distributed
by any non-commercial means. Distribution by any commercial channel is
strictly prohibited.
The author of this software accepts no responsibility for any loss of
data or other damage, direct or indirect, arising from its use. This probably
won't stop anyone suing me.
If you encounter a reproducible bug, please send me a floppy with as much
evidence as you can, and I will try to fix it (NO guarantees). Please
include your source code, so I can verify that you have not accidentally
changed any critical code while adding forbidden file data to the program.
Thank you for your interest, and have fun ! Please address all
correspondence, large cheques, etc, to:
Nick Brown
5a Bd du President Edwards
67000 STRASBOURG
France
----- end of READ.ME -----
----- cut here for NOFUN.ASM -----
; NOFUN.ASM - crash PC if certain applications are running.
; Copyright (C) Nick Brown, 1992. All rights reserved.
;
; Revision history:
;
; 06-JAN-1992 V0.41
; Added assembly-time option to have forbidden programs given on command line.
;
; 02-JAN-1992 V0.40
; First public release. Version number is arbitrary.
;
; Assembly options.
;
JUMPS
LOCALS
;
; TSR == 1 means the program will run as a TSR. This is normally what we
; want, except for debugging.
;
TSR EQU 1
;
; Set FIXED_FILES to 1 to have the "hit list" filenames hard-coded into
; this program. If it is zero, they will be read from the command line.
;
FIXED_FILES EQU 0
DEBUG EQU 0
;
; Debug macro definitions.
;
%NOLIST
include gasp.inc
%LIST
;
; PSP structure definitions.
;
%NOLIST
include psp.inc
%LIST
;
; Proper code generation starts here.
;
.MODEL small
_STACK SEGMENT PARA STACK 'STACK'
DB 256 DUP (?)
_STACK ENDS
_DATA SEGMENT WORD PUBLIC 'DATA'
;
; Error messages before going resident.
;
no_SDA DB 'Unable to get swappable data area'
DB 13, 10, '$'
_DATA ENDS
_TEXT SEGMENT WORD PUBLIC 'CODE'
;
; Start measuring the TSR size here.
;
top_of_tsr EQU $
;
; Address of (segment address of) current PSP.
;
Current_PSP_ptr DD ?
;
; Segment address of master environment.
;
master_env DW ?
;
; Counter so we only become active every 256 interrupts.
; Initialisation to 1 is essentially for debugging, so we don't have to wait
; up to 15 seconds for the first activation.
;
counter DB 1
IF (FIXED_FILES)
;
; Macro to declare a string, preceded by its length in one byte.
;
SizeAndName MACRO string
LOCAL filename, filename_size
DB filename_size
filename DB &string&
filename_size EQU ($ - filename)
ENDM
;
; List of programs which cause us to crash the machine.
; Just add SizeAndName entries to add your own programs.
;
programs EQU $
SizeAndName 'TETRIS.COM'
SizeAndName 'BL.EXE'
DB 0 ;end the list
ELSE
;
; This program's PSP, so we can find our program list.
;
nofun_PSP DW ?
ENDIF ;IF (FIXED_FILES)
; Stored vector for timer interrupt.
; Must be immediately before new handler, to allow external programs to put
; old vector back.
;
old_int08 DD ?
;
; INT 08h (timer) handler.
;
int08 PROC FAR
ERRIF ((int08 - old_int08) NE (SIZE old_int08))
;
; See if we should wake up.
;
dec cs:[counter]
jnz no_action
;
; Come here if we have work to do.
;
push ax
push cx
push es
push di
IF (DEBUG)
;
; Hurry the next activation up a bit (OK, a lot).
;
mov cs:[counter], 18 ;about one second
ENDIF ;IF (DEBUG)
;
; Get current PSP to ES.
;
les di, cs:[Current_PSP_ptr]
mov es, es:[di]
;
; Get PSP's environment to ES.
;
mov es, es:[psp_envseg]
;
; If current environment is the master environment, then (a) the code below
; won't work and (b) it doesn't matter, since no application is running.
;
mov ax, es
cmp ax, cs:[master_env] ;is it the master environment ?
je pop_and_go ;go if so
;
; We now embark on a search for the program's file name. This is located
; after the double zero byte which marks the end of the environment strings.
; Assumption: this string is always a full absolute path name, and so always
; contains at least one backslash.
; An alternative method would be to look for the last backslash in the
; environment, starting at the end, but I don't know if we can guarantee
; that the unused bytes at the end will be filled with harmless stuff
; like FF's or zeroes.
;
;
; Need some more registers for the next section.
;
push bx
push si
push ds
;
; Look for double byte of zero to mark end of environment.
; We can assume this will be within 10 paragraphs (160 bytes) of the end
; of then environment, since the program name string should be no more
; than about 140 bytes long.
; Assumes that ES is still the current PSP here.
;
xor di, di ;assume we start at top of environment
dec ax ;AX is now MCB of current environment
mov ds, ax ;MCB to DS
mov ax, ds:[3] ;AX is now size of environment...
sub ax, 10 ;...minus 10 paragraphs
jc whole_env ;go if whole size is less than 10
mov cl, 4
shl ax, cl ;convert start offset to bytes
mov di, ax ;new start offset in environment
;
; At this point, ES:[DI] is the start point where we look for the
; program name in the PSP.
;
whole_env:
xor al, al ;byte to look for = 0
xor cx, cx ;loops should never run out of CX
dec cx ;loop up to 65535 times
cld
;
; Note that we can't use SCASW, since the double zero might not be on an
; even boundary, relative to where we start.
;
loop_dbzero:
repnz scasb ;look for zero byte
cmp es:[di], al ;is next byte zero too ?
jnz loop_dbzero ;go if not
;
; ES:DI points to second byte of zero word. Skip this and the next word,
; which is the number of items after the environment (should be one).
;
add di, 3
;
; ES:DI is now a pointer to an ASCIIZ string, which is the full file name
; of the program executing in the current PSP.
; Since this will always contain at least one backslash, we can find the
; filename part by skipping to the end, then looking backwards for
; the first backslash we come across.
; Again, we assume that the first character is not zero.
;
repnz scasb ;look for zero byte
mov al, '\'
std ;search backwards
repnz scasb ;look for backslash
add di, 2 ;ES:DI points to filename part
;
; Now compare the string in ES:DI against the forbidden programs.
; We don't need to know the size of the program string in memory, since the
; extension must be the last thing to match and it should always have the
; same length (4, including the period).
; Alternatively, if the filename ends in just a period, we will match ".*".
; If there is no period (eg "ABCDEF"), we will match "ABCDEF*.*".
;
IF (FIXED_FILES)
mov ax, cs
ELSE
mov ax, cs:[nofun_PSP]
ENDIF ;IF (FIXED_FILES)
mov ds, ax
mov si, OFFSET programs
;
; Save DI in AX, so we can reuse it each time round.
;
mov ax, di
;
; Loop for all program descriptions.
; First thing is a byte giving the length, or zero for end of list.
;
loop_programs:
mov cl, ds:[si] ;get length of string
xor ch, ch ;use 16-bit CX for loops...
jcxz after_programs ;...unless no bytes found
;
; Here there is a program name to compare.
; Point SI to start of string.
;
inc si
;
; Calculate address of next program's length byte.
;
mov bx, si
add bx, cx
;
; ES:DI is current program name from environment block. (AX is a copy of DI.)
; DS:SI is forbidden program string. (BX is next one's length byte.)
; CX is size of DS:SI string.
; A classical use of the REPE CMPSB instruction...
;
cld
repe cmpsb
je naughty_user
;
; This one didn't match... see if the next one does.
; First, reset the character pointers.
;
mov di, ax
mov si, bx
jmp loop_programs
;
; Come here if user is running a forbidden program.
;
naughty_user:
IF (DEBUG)
Gasp 7 ;just beep if debugging
ELSE
;
; Lock up the PC...
;
hlt
ENDIF ;IF (DEBUG)
;
; Come here if there is no match with a forbidden program.
;
after_programs:
pop ds
pop si
pop bx
;
; Finished handling interrupt here.
;
pop_and_go:
pop di
pop es
pop cx
pop ax
;
; Fall through to here or jump to this label, to chain to next timer handler.
;
no_action:
jmp cs:[old_int08]
int08 ENDP
;
; End of TSR-resident code.
; Calculate size of resident portion (excludes PSP for now).
;
tsr_size EQU (($ - top_of_tsr) + 15) / 16
;
; Main program starts here.
;
Start:
ASSUME CS:_TEXT
;
; Save our PSP address for later.
;
mov bp, es
;
; Check DOS version; < 4 is one path, >= 4 is another.
; Determines which subfunction of (undocumented) DOS function 5Dh to use,
; to return address of DOS swappable data area, which contains current PSP.
;
mov ah, 30h
int 21h
cmp al, 4
jge dos4_plus
;
; In DOS 3, get SDA straight away.
;
mov ax, 5D06h
int 21h
jc bad_SDA
jmp SDA_ok
;
; In DOS 4 and above, get SDA indirectly.
;
dos4_plus:
mov ax, 5D0Bh
int 21h
jc bad_SDA
;
; DS:SI is now a list of swappable data areas. We look in this list for the
; "always-swap" data area, which will have the top bit of its length word set.
; Read Undocumented DOS for a better explanation of this.
;
mov cx, ds:[si] ;number of entries in list
add si, 2 ;point to first entry
loop_sda:
test ds:[si+4], 8000h ;top bit of length word set ?
jnz found_mainSDA
add si, 6 ;skip pointer and length word
loopnz loop_sda
;
; If we come here, we couldn't find the data area.
;
bad_SDA:
mov ax, SEG no_SDA ;first time we use data segment
mov ds, ax
mov dx, OFFSET no_SDA ;error message offset
mov ah, 09h ;message to stdout
int 21h
mov al, 1 ;exit with error
jmp finish
;
; Come here if we have found pointer to address of main SDA in DOS 4+.
;
found_mainSDA:
lds si, ds:[si] ;indirect to get SDA pointer
;
; DS:SI now contains address of DOS (critical) swappable data area.
; Store pointer to current PSP (at DS:SI+10h)
;
SDA_ok:
add si, 10h
mov WORD PTR cs:[Current_PSP_ptr], si
mov WORD PTR cs:[Current_PSP_ptr+2], ds
;
; Get master environment pointer by getting INT 2Eh vector,
; which is PSP of COMMAND.COM.
;
mov ax, 352Eh
int 21h
mov ax, es:[psp_envseg]
mov cs:[master_env], ax
;
; Get/set interrupt vector for interrupt 08h.
;
mov ax, 3508h
int 21h
mov WORD PTR [old_int08], bx
mov WORD PTR [old_int08+2], es
mov dx, OFFSET int08 ;substitute our vector
push cs
pop ds
mov ax, 2508h
int 21h
IFE (FIXED_FILES)
;
; Get the list of forbidden files off the command line.
; If a filename contains no period, end it with one; this will have the effect
; of matching .COM and .EXE.
; Since the command tail could be up to 128 characters, and since the parsed
; form could be bigger (if we extend lots of names with periods), we move
; the files up the PSP a bit.
; The format of a filename will be like that produced by the SizeAndName
; macro, in the fixed (hard-coded) filename version.
;
programs EQU psp_fcb1
;
; Get our PSP address back to ES, and copy to DS as well.
;
mov es, bp
mov ds, bp
;
; Loop through each element of the command tail. The end is indicated
; by a CR (we could also use the count byte).
;
mov si, psp_tail ;offset of command tail
mov di, programs ;offset of formatted program names
loop_words:
xor dl, dl ;not currently in word
mov bx, di ;pointer to next word's length byte
mov BYTE PTR [bx], dl ;currently no characters in word
inc di ;point to first character in next word
loop_chars:
lodsb ;get a command tail character
cmp al, ' ' ;space or control ?
ja not_blank ;go if not
;
; Here, we have seen a space or a control (might be CR for end of list).
;
or dl, dl ;does this space end a word ?
jnz end_of_word ;go if so
cmp al, 0Dh ;carriage return ?
jne loop_chars ;go if not, to get next character
jmp after_words ;finished processing command line
;
; Come here if we have just seen the first space at the end of a word.
;
end_of_word:
mov ah, al ;save possible CR
or dh, dh ;have we seen a period in this word ?
jne period_seen ;go if so
;
; We must append a period and increment the count accordingly.
;
mov al, '.'
stosb ;put period into string
inc BYTE PTR [bx] ;increment count
;
; Come here after completing the word.
;
period_seen:
cmp ah, 0Dh ;is the current character a CR ?
jne loop_words ;go if not, to get the next word
xor al, al ;mark end of list of words...
stosb ;... with a zero byte
jmp after_words ;finished processing command line
;
; Come here if we find a non-space, non-control character.
;
not_blank:
or dl, dl ;is this the start of a word ?
jnz after_new_word
xor dh, dh ;no period seen in this word yet
inc dl ;now in a word
after_new_word:
cmp al, '.' ;is this a period ?
jne after_period
inc dh ;yes, so remember we've seen it
after_period:
cmp al, 'a' ;is this a lower-case letter ?
jb after_lowercase ;no, too low
cmp al, 'z'
ja after_lowercase ;no, too high
and al, 0DFh ;mask out lowercase bit
after_lowercase:
stosb ;store the character and point to next
inc BYTE PTR [bx] ;increment the count
jmp loop_chars ;get next character
;
; Come here after parsing all the words on the command line.
;
after_words:
mov ds:[psp_tail_len], 0 ;hide command tail from user
ENDIF ;IFE (FIXED_FILES)
IF (TSR)
;
; Get our PSP address back to DS.
;
mov ds, bp
IFE (FIXED_FILES)
mov cs:[nofun_PSP], bp ;store so we can find filenames later
ENDIF ;IFE (FIXED_FILES)
;
; Deallocate our environment.
;
mov es, ds:[psp_envseg] ;our environment segment to ES
mov ah, 49h ;deallocate memory
int 21h
;
; Fill the environment pointer with zero, so memory chain programs do not
; think we still own it.
;
mov ds:[psp_envseg], 0
;
; Close file handles 0 through 4.
;
mov bx, 4
loop_close:
mov ah, 3Eh
int 21h ;no check to see if it went OK
dec bx
jge loop_close
;
; Become a TSR.
;
mov dx, tsr_size + 10h ;include PSP
mov ax, 3100h
int 21h
ELSE
;
; Wait for a keyboard character.
;
xor ah, ah
int 16h
;
; Restore interrupt vector for interrupt 08H.
;
lds dx, [old_int08]
mov ax, 2508h
int 21h
;
; OK to finish, with no error.
;
xor al, al
ENDIF ;IF (TSR)
;
; Terminate program; exit status is in AL.
;
finish:
mov ah, 4Ch
int 21h
_TEXT ENDS
;
; That's all folks !
;
END Start
----- end of NOFUN.ASM -----
----- cut here for UNNOFUN.ASM -----
; UNNOFUN.ASM - deactivate NOFUN. Just for debugging new versions of NOFUN.
; Copyright (C) Nick Brown, 1992. All rights reserved.
;
; Simply restores the old INT 08h vector. Assumes that NOFUN will leave
; this around immediately before the new handler. The NOFUN TSR will
; hang around in memory (I could get its PSP and force it to exit,
; but I can't be bothered for a debugging aid like this).
; If NOFUN is not running, this program will crash your machine in an
; average of 27 milliseconds...
;
; Assembly options.
;
JUMPS
LOCALS
;
; Proper code generation starts here.
;
.MODEL small
_STACK SEGMENT PARA STACK 'STACK'
DB 256 DUP (?)
_STACK ENDS
_TEXT SEGMENT WORD PUBLIC 'CODE'
;
; Main program starts here.
;
Start:
ASSUME CS:_TEXT
;
; Get current interrupt vector for interrupt 08h.
;
mov ax, 3508h
int 21h
;
; Get old interrupt vector (immediately before current one).
;
lds dx, es:[bx-4]
;
; Make it the current vector.
;
mov ax, 2508h
int 21h
;
; Exit with success.
;
xor al, al
mov ah, 4Ch
int 21h
_TEXT ENDS
;
; That's all folks !
;
END Start
----- end of UNNOFUN.ASM -----
zastita.10danko,
-> #9, dejanrNOFUN - Ovo zvuči interesantno. Da li ima neka dobra duša da
prepradi ovu poruku, asemblira i sve to spakuje u arhivu u neki
direktorijum na SEZAM-u ?
zastita.11vbole,
-> #9, dejanr> ==========
> ibm.dos/long.messages #405, from nbrown, 18396 chars, Thu
> Jan 9 05:03:56 1992 ----------
Kuku Dejane, sto ne zakaci ovo i viceve na engleskom
kao fajl uz poruku, ja se prepadoh kad videh koliki mi je
( PAD ) - mislio sam da sam opet nesto zabrljao oko SEEN...
bye... vbole
zastita.12ppekovic,
-> #9, dejanr>>==========
>>ibm.dos/long.messages #405, from nbrown, 18396 chars, Thu Jan 9 05:03:56
1992
>>----------
Kao sto danko predlozi, jel ima dobra dusa koja ce od ovog da napravi
read.me fajl .asm i .exe, zatim da sve to arhivira i ostavi u ovu temu.
Ja bi vrlo rado sve to uradio ali nemam masm ili tasm.
Paya
zastita.13smiloradovic,
-> #12, ppekovic|> Kao sto danko predlozi, jel ima dobra dusa koja ce od ovog da napravi
|> read.me fajl .asm i .exe, zatim da sve to arhivira i ostavi u ovu temu.
Evo jedne (skoro) dobre duše ;)
U arhivi uz poruku su nofun.exe i unnofun.exe. Upotreba je prosta -
otkucaj samo nofun lista_nepoželjnih_programa, npr.
c:\> nofun tetris ll tm win...(dalje dodaj po želji;)
...i računar će se ubrzo po startovanju nekog od inkriminisanih programa
zamrznuti. Ako u nekom momentu poželiš da ipak poteraš neki od tih
programa, otkucaj unnofun i sve će biti po starom.
Pozdrav, Stojan
p.s. kada otkucaš unnofun, program se deaktivira, ali i dalje ostaje u
memoriji - možda je bolje deaktivirati ga sa release i sl. - to takođe
provereno radi
nofun.zipzastita.14dejanr,
Uz ovu poruku imate novi Public Key algoritam za šifrovanje, dakle
unapređenje RSA algoritma. Evo nekoliko rečenica o njemu
WHY RSA MIGHT BE UNSAFE
The point of the proceeding remarks is that, if n is not prime
and for any value of x, which is not a multiple of n, x ^ (n - 1)
modulo n == 1, it will still function in the RSA algorithm. 15841 (7 *
31 * 73) is such a number. If 2,645,447 (15841 * 167) is used for the
RSA public key scheme the following results:
Suspected "phi" of 2,629,440 (166 * 15840) Public_key = 7 Private_key
= 1,126,903 (the multiplicative inverse of 7 in the field of
2,629,440)
For any value of x > 1 and x < 2,645,446:
x ^ 7 modulo 2,645,447 == y
y ^ 1,126,903 modulo 2,645,447 == x
The obvious difficulty with such a prospect for an RSA user is
such a number might easily be factored and render the private key
holder vulnerable to blackmail or worse. After all, the public number
would have four or more factors. This seems far scarier than the
possibility of a fidelity loss, because anyone who suspected that n
had many factors would have a chance of factoring n.
Against the polygonal public key scheme, however, 2,645,447 would
never be used to attempt code. To find a square root modulo a prime,
at least one number, x, must be j(x/p) = -1. No such x could be
established for 15841, if 7920 is presumed to be phi divided by two.
Therefore, the "fatal flaw" of RSA is not shared by polygonals.
pkey.zipzastita.15vvelisavljev,
"Naleteo" sam na zanimljiv program pomoću koga se mogu "lako" zaštiti
programi od neovlašćenog kopiranja. Evo šta je program dao za moju matičnu
ploču :
Bios date: 04/09/90
Model byte: FC
Submodel: 01
Revision: 00
--------
Mogao bi usput neko da provali na koji način on uzima Model byte ...
Probajte i vi ovo na svojim mašinama, da proverimo da li program
šljaka kako treba.
pozdrav, Viktor !
findmodl.arjzastita.16vasic,
-> #15, vvelisavljev> Bios date: 04/09/90
> Model byte: FC
> Submodel: 01
> Revision: 00
BIOS datum imas na adresi 0FFFFh:5h.
Model bajt imas na 0FFFFh:0Eh ali mozes da ga dobijes zajedno sa
submodel, revision i jos par stvari i pomocu INT 15h fn 0C0h. Sto
se tice upotrebljivosti svega ovoga za zastitu, sumnjam u to...
Vasa
zastita.17bojanp,
-> #15, vvelisavljev> "Naleteo" sam na zanimljiv program pomoću koga se mogu "lako" zaštiti
> programi od neovlašćenog kopiranja. Evo šta je program dao za moju matičnu
> ploču :
>
> Bios date: 04/09/90
> Model byte: FC
> Submodel: 01
> Revision: 00
>
Sve ovde izneto je već poznato i neznam kako bi se to moglo iskoristiti za
zaštitu. Bios date se nalazi na adresi F000:FFF5 u ASCII obliku mm/dd/yy,
model byte se nalazi na adresi F000:FFFE. Ove informacije i još neke mogu se
dobiti pozivom Int 15h, Fn C0h.
Pozdrav, Bojan
zastita.18vvelisavljev,
-> #17, bojanp> Sve ovde izneto je već poznato i neznam kako bi se to moglo iskoristiti za
> zaštitu.
Ideja za zaštitu je da program radi samo na jednoj mašini. Tj. da
negde u nekoj datoteci ima zapisane ove podatke (normalno šifrovano) i da ih
pre svakog startovanja upoređuje. Tako program ne bi radio na bilo kojoj
drugoj mašini. Normalno stvar se komlikuje kada ja treba da dam program
drugome na flopy disketi ali do god ja instliram program stvar je jednostavna.
Jednini je problem mogućnost poklapanja podataka na dve mašine.
Znači pitanje još jednom da li se ovi podaci razlikuju ili može da se
desi da ploče istog prozivođača sa istim biosom imaju ista sva 4 podatka ?
pozdrav, Viktor !
zastita.19prvul,
Procitao sam ono sa sifrovanjem, i mogu reci da mi se ideja svidja,
mada imam par ozbilnih zamerki:
1) Prezentovani metod je dosta komplikovaniji i sporiji od RSA
2) Ono sto je napisano o nesigurnosti RSA je tacno samo za odredjene,
veoma retke i lako "izbegljive" brojeve N. Verovatnoca da se takav, loš
broj izabere je prakticno 0, a i ona se moze otkloniti naknadnom proverom
Prvul.
zastita.20bearboy,
-> #15, vvelisavljev-+={ "Naleteo" sam na zanimljiv program pomocu koga se mogu
-+={ "lako" zastiti programi od neovlascenog kopiranja. Evo
-+={ sta je program dao za moju maticnu plocu :
Sistem bas nije neki... Bolje je da u poslednjih 8 (?) bajtova u CMOS
upises neki svoj random string, pa da to proveravas...
PS. Ti poslednji bajtovi se ne koriste....(koliko ja znam)
PPS. Sta mislite o ovoj ideji ?
zastita.21bearboy,
-> #18, vvelisavljev-+={ Ideja za zastitu je da program radi samo na jednoj
-+={ masini. Tj. da
Mislim da bi moj sistem bio uspesan u tom slucaju...
zastita.22ndragan,
-> #18, vvelisavljev/ Jednini je problem mogućnost poklapanja podataka na dve mašine.
Još je lepši problem rada u mreži. Moraš da instaliraš za svaku stanicu, a
baška što se neke od njih butiraju sa flopija, koji može i da se zameni
(rikne pa pređu na kopiju), pa baška što su po mrežama mnogi diskovi
prividni... pa još dokupe koju stanicu... divota. I onda dođu da ti
kukaju što ti ne radi.
Bue_ NDragan
zastita.23ppekovic,
-> #20, bearboy>> Sistem bas nije neki... Bolje je da u poslednjih 8 (?) bajtova u CMOS
>>upises neki svoj random string, pa da to proveravas...
>>
>>PS. Ti poslednji bajtovi se ne koriste....(koliko ja znam)
>>
>>PPS. Sta mislite o ovoj ideji ?
Super, i onda ti se desi ono sto se u veoma cesto desava a to je da ti
pukne cmos i sta ces onda?!
Paya
zastita.24spantic,
-> #20, bearboy> PPS. Sta mislite o ovoj ideji ?
Da ja nekome platim program i da mu zaštita bude u tome da mi prčka po
CMOSu čuo bi me taj tip ponovo. Sa močugom u ruci.
zastita.25ivans,
-> #24, spantic* Da ja nekome platim program i da mu zastita bude u tome da
* mi prcka po CMOSu cuo bi me taj tip ponovo. Sa mocugom u
* ruci.
Ne bi te cuo. Mozda samo da te malkice pogleda. Ali, izvesno je da bi video
gomilu zvezdica... :)))
Pozdrav,
Ivans.
zastita.26ssokorac,
-> #23, ppekovic -=)> Super, i onda ti se desi ono sto se u veoma cesto
-=)> desava a to je da ti pukne cmos i sta ces onda?!
Upišeš novi random string?
zastita.27ppekovic,
-> #26, ssokorac>> -=)> Super, i onda ti se desi ono sto se u veoma cesto
>> -=)> desava a to je da ti pukne cmos i sta ces onda?!
>>
>> Upišeš novi random string?
A kako ce program da zna dal je puko cmos ili je program prenesen na drugi
racunar?
Paya
zastita.28ndragan,
-> #20, bearboy/ PS. Ti poslednji bajtovi se ne koriste....(koliko ja znam)
A onda kupe od tebe dva programa koji upisuju svoje...
zastita.29dejanr,
-> #28, ndragan>> A onda kupe od tebe dva programa koji upisuju svoje...
Ma to nije problem jer možeš koristiti iste bajtove, al ne valja
ako kupe od njega i od nekog ko je takođe pročitao ideju na Sezamu ;)
zastita.30ssokorac,
-> #27, ppekovic -=)> A kako ce program da zna dal je puko cmos ili je
-=)> program prenesen na drugi racunar?
Javi da je cmos promenjen, a ti valjda znaš da li si na drugom
računaru ili je tvoj cmos puko?
zastita.31radunovic,
-> #19, prvul ?! 1) Prezentovani metod je dosta komplikovaniji i sporiji od RSA
?! 2) Ono sto je napisano o nesigurnosti RSA je tacno samo za odredjene,
?! veoma retke i lako "izbegljive" brojeve N. Verovatnoca da se takav, los
A bili mogao neko da napise nesto o RSA algoritmu. Bilo je
nesto u racunarima, al nema nista konkretno.
zastita.32dejanr,
-> #31, radunovic>> A bili mogao neko da napise nesto o RSA algoritmu. Bilo je
>> nesto u racunarima, al nema nista konkretno.
Imaš relativno konkretno u "Galaksiji 186". Na žalost, ne znam da li
bih mogao "tek tako" da nađem taj tekst jer je to iz mog BBC vremena,
a nisam sve tekstove prebacio u PC format, naročito ne te iz "Galaksije".
A da sad sklapam BBC... ne bih bez preke potrebe.
zastita.34ppekovic,
-> #30, ssokorac>> -=)> A kako ce program da zna dal je puko cmos ili je
>> -=)> program prenesen na drugi racunar?
>>
>> Javi da je cmos promenjen, a ti valjda znaš da li si na drugom
>>računaru ili je tvoj cmos puko?
Znaci svaki put kada nekom korisniku pukne cmos, on mora da zove autora da
mu ponovo sredi cmos i ubaci onaj kod da bi program mogao da nastavi da
radi??!!! Prvo bi korisnik poludeo, a drugo bi ti poludeo jer pucanje cmos-a
nije bas tako retka stvar. Benzin je skup, a valjda i tvoje vreme.
Paya
zastita.35ssokorac,
-> #34, ppekovic -=)> Znaci svaki put kada nekom korisniku pukne cmos, on
-=)> mora da zove autora da mu ponovo sredi cmos i ubaci
-=)> onaj kod da bi program mogao da nastavi da radi??!!!
Neka mu autor sam pokaže kako da namesti cmos i unese kod.
-=)> Benzin je skup
Idi autobusom.
zastita.36vili,
Koji je program dobar za instaliranje login-a na PC masinu
pod DOS-om? (imam neku prastaru verziju PC-LOCK-a koju se
ne usudjujem da instaliram).
Hteo bih da neke direktorijume i programe zastitim tako da
samo ja mogu da im pridjem uz password. (na poslu imam PC
i naravno uvek se nadje neka budala da brlja po disku i
programima i usput pokrene svaki exe fajl na koji naidje).
vili
zastita.37dejanr,
-> #35, ssokorac>> Neka mu autor sam pokaže kako da namesti cmos i unese kod.
I, onda on onome kome daje program da i to uputstvo, i šta smo
uradili?
zastita.38nbatocanin,
-> #37, dejanr> I, onda on onome kome daje program da i to uputstvo, i šta
> smo uradili?
Ja svoje programe štitim na sledeći način: kada program otkrije da je
kopiran, počinje da radi sa greškom i to sa određenom verovatnoćom,
znači, ne previše često. Nijedna od tih grešaka nije katastrofalna -
na primer, neće da štampa, ne može uvek da briše podatke i sl. Ako se
zaštita slučajno aktivira, korisnik me nazove telefonom i ja mu tad
izdiktiram šifru koja se menja u zavisnosti od tekućeg vremena, tako
da za 10 min. ista šifra ne važi. Kad se program startuje sa tom
šifrom, on se sam instalira. Time rešavam i problem instalacije u
udaljena mesta - pošaljem disketu, a "instaliram" telefonom.
zastita.39dejanr,
-> #38, nbatocanin>> Ako se zaštita slučajno aktivira, korisnik me nazove telefonom i ja
>> mu tad izdiktiram šifru koja se menja u zavisnosti od tekućeg vremena,
>> tako da za 10 min. ista šifra ne važi.
Hmmm... teško reći sad kad si ovo rekao, ali mislim da bih se setio da
zapišem vreme i da na onom drugom mestu podesim isto vreme... Naravno,
pošto bih jednom video da ista šifra ne pali u drugo vreme.
Ja mislim da je najbolja zaštita štampanje imena firme itd. u zaglavljima,
s tim da to ime ne piše u programu baš kao čist ascii.
zastita.40ssokorac,
-> #37, dejanr -=)> I, onda on onome kome daje program da i to uputstvo, i
-=)> šta smo uradili?
Ništa. Ali, ovo sam pisao jer je ppekovic navodio neke razloge koji
baš nisu razlozi zbog kojih ne treba to uraditi. To ne treba uraditi
jer se, jednostavno, ne dobija (skoro) ništa...:)
zastita.41ppekovic,
-> #40, ssokorac>> Ništa. Ali, ovo sam pisao jer je ppekovic navodio neke razloge koji
>>baš nisu razlozi zbog kojih ne treba to uraditi. To ne treba uraditi
>>jer se, jednostavno, ne dobija (skoro) ništa...:)
Posto je razmena poruka trajala par dana, ajde da te podsetim malo. Tvoja
ideja je bila zastita software-a tako sto ce u cmos upisati neki niz bajtova,
pa ces u tvom programu proveravati da li se isti nalaze na mestu.
Da manemo na stranu sto je zastita trivijalna, ipak je za 80% korisnika
neresiva, ali problemi koji sa njom nastaju su preveliki.
Pukao je cmos. Korisnik vrati standardne vrednosti (vreme, datum, HD, itd.)
i pokrene program koji si zastitio i on normalno ne pronadje zeljeni niz
bajtova i odbije da radi. Korisnik ce morati da te pozove telefonom i tada ces
ti morati otici do njega da opet vratis stvar na normalu.
1. Jel tvoje vreme dzabe? Jel put dzabe? jel mnogo volis da se setad do
korisnika?
2. Koliko ce vremena proci dok te korisnik pronadje, pa dok ti odes itd.?
Uzmi primer programa za knjigovodstvo, covek radi, recimo sestomesecni, sutra
mu je rok da se preda, a nasi ljudi ko nasi ljudi, sve rade zadnji dan. I onda
mu lepo pukne cmos. Program nemoze dalje da radi, a ti nisi tu, pa i kad te
nadje on stanuje daleko itd. itd. Posle takvog slucaja ja bi promenio adresu
:))))
Toliko o razlozima koji nisu razlozi. Sigurno je da coveku sve u pocetku
izgleda divno i idealno, ali kad pocne da po ceo dan slusa kuknjave korisnika
za neke stvari koje uopste nemaju veze sa njegovim programom, a sta mislis kako
bi u opisanim slucajevima bilo.
Paya
zastita.42nbatocanin,
-> #39, dejanr> Hmmm... teško reći sad kad si ovo rekao, ali mislim da bih
> se setio da zapišem vreme i da na onom drugom mestu
> podesim isto vreme... Naravno, pošto bih jednom video da
> ista šifra ne pali u drugo vreme.
Ha, ali sad ćeš se uvek setiti (šalim se). Štos je što ta zaštita
reaguje tek za izvesno vreme i to povremeno. Da bi video da program
zaista ne radi, trebalo bi ti oko mesec dana.
> Ja mislim da je najbolja zaštita štampanje imena firme
Naravno - to je jedan od najboljih metoda i ja ga obavezno ugrađujem.
U stvari, moji programi imaju po nekoliko potpuno različitih metoda,
koji rade potpuno nezavisno.
Inače, ja i nemam neku preku potrebu da štitim programe - uglavnom
radim specifične programe za jednog korisnika koji su bezvredni
drugima. Zaštitom sam se jedno vreme bavio, iz zabave, pa ajde kad
sam već uradio.
Inače, mislim da je jedan od najboljih metoda "psihološka zaštita":
program povremeno ispisuje poruku da je zaštićen, a nije zaštićen baš
nikako. Imam iskustva sa ovim i verujte, sigurno pali!
zastita.43spantic,
-> #39, dejanr> Hmmm... teško reći sad kad si ovo rekao, ali mislim da bih
> se setio da zapišem vreme i da na onom drugom mestu
> podesim isto vreme... Naravno, pošto bih jednom video da
> ista šifra ne pali u drugo vreme.
Osoba koja se u računare razume verovatno, ali prosečan korisnik? Teško.
Verovatnije je da će te zvati i povikati "Pomoć, program ne radi!" i na
kraju se ispostavi da mu vreme nije dobro podešeno.
> Ja mislim da je najbolja zaštita štampanje imena firme
> itd. u zaglavljima, s tim da to ime ne piše u programu baš
> kao čist ascii.
Kada bi kod nas bilo široko rasprostranjena briga za zaštitu dobrog imena
firme i bi. Ne kažem, takvih ima sve više. Ali sećam se kako je svojevremeno
bilo prilično videoklubova istog imena ;(.
zastita.44nandi,
-> #42, nbatocanin> Ha, ali sad ćeš se uvek setiti (šalim se). Štos je što ta zaštita
> reaguje tek za izvesno vreme i to povremeno.
a dobro je da reaguje za izvesno vreme, i stalno. korisnik piratske
kopije se navikne na program, ima sa njom veliku bazu podataka, i
onda dođe 1 januar '92, i program odbije da radi. a radila bez
problema 6 meseci. korisniku ne ostaje ništa drugo nego da kupi
program. ... ovo se zove "korisna" zaštita.
nandi
zastita.45bearboy,
-> #23, ppekovic-+={ Super, i onda ti se desi ono sto se u veoma cesto
-+={ desava a to je da ti pukne cmos i sta ces onda?!
Trazis instalacionu disketu, na koju je napisan taj random string. U programu
samom je isto negde sakriven taj string, i ako se slazu, ponovo se upisuje u
CMOS, inace - Format c:..... :)
zastita.46bearboy,
-> #30, ssokorac-+={ Javi da je cmos promenjen, a ti valjda znas da li si na
-+={ drugom racunaru ili je tvoj cmos puko?
Zaboravio si :))))))))))))) na kraju.... :))))))
zastita.47bearboy,
-> #27, ppekovic-+={ A kako ce program da zna dal je puko cmos ili je
-+={ program prenesen na drugi racunar?
Pa program bi U SEBI isto imao taj kod. Taj random broj bi se generirao na
osnovu, recimo, onog predasnjeg programa (ono sa modelom). Program bi ponovo
pogledao da li je moguce dobiti broj u programu na osnovu model broja. Ako
jeste, ponovo upise broj u CMOS, a brojac na disketi pomeri za 1(sakriven u
FAT, recimo), a ako ne, onda uradi nesto gadno... :) Ako brojac stigne do 10,
program kaze korisniku da kupuje bolje baterija i da ne cacka CMOS.... :)
zastita.48bearboy,
-> #24, spantic-+={ Da ja nekome platim program i da mu zastita bude u tome
-+={ da mi prcka po CMOSu cuo bi me taj tip ponovo. Sa
-+={ mocugom u ruci.
Neces valjda MENE mocugom ?!?!! :)
zastita.49bearboy,
-> #25, ivans-+={* Da ja nekome platim program i da mu zastita bude u
-+={* tome da mi prcka po CMOSu cuo bi me taj tip ponovo. Sa
-+={* mocugom u ruci.
-+={
-+={ Ne bi te cuo. Mozda samo da te malkice pogleda. Ali,
-+={ izvesno je da bi video gomilu zvezdica... :)))
Nije sigurno.... A sta ako Srdan urlice i arlauce dok mlati mocugom ? :) Ili
si ti imao toliko bliske susrete sa mocugom ? :)
zastita.50bearboy,
-> #20, bearboy-+={ Sistem bas nije neki... Bolje je da u poslednjih 8 (?)
-+={ bajtova u CMOS upises neki svoj random string, pa da to
-+={ proveravas...
-+={
-+={ PS. Ti poslednji bajtovi se ne koriste....(koliko ja
-+={ znam)
-+={
-+={ PPS. Sta mislite o ovoj ideji ?
COPYRIGHT 1992 (C) BY ME !!!!!!
zastita.51bearboy,
-> #28, ndragan-+={ / PS. Ti poslednji bajtovi se ne koriste....(koliko ja
-+={ znam)
-+={
-+={ A onda kupe od tebe dva programa koji upisuju svoje...
A program onda lepo zatrazi ime proizvodaca, i da se posalje na moju adresu,
a ja onda lepo uzimam mnogopominjanu mocugu i IZMLATIM ONOG KO MI JE UKRAO
SISTEM ZASTITE !!!!!!!!
zastita.52bearboy,
-> #29, dejanr-+={ Ma to nije problem jer mozes koristiti iste bajtove, al
-+={ ne valja ako kupe od njega i od nekog ko je takode
-+={ procitao ideju na Sezamu ;)
Pise lepo - COPYRIGHT.... :)
zastita.53ivans,
-> #49, bearboyNe, na srecu nisam imao bliske susrete n-te vrste sa mocugom... :)
Pozdrav,
Ivans.
zastita.54nandi,
-> #45, bearboy> Trazis instalacionu disketu, na koju je napisan taj random string. U
> programu
ajde odmah i jednu ideju kako bi zaštitio disketu (od kopiranja)
zastita.55spantic,
-> #48, bearboy> Neces valjda MENE mocugom ?!?!! :)
žisto misaoni eksperiment :) A ni ti ne bio lud da napraviš takvu zaštitu
;)
Pozdrav, Srđan, Srdjan
zastita.56ddusan,
-> #18, vvelisavljev-> drugoj masini. Normalno stvar se komlikuje kada ja treba
-> da dam program drugome na flopy disketi ali do god ja
Ako flopi disk ima kao i hard disk pod DOS 5.0 ima "Volume serial number" VSN
onda valjda nebi bilo previse tesko da se realizuje da sa program sa diskete
moze samo jednom instalirati. Isti broj bi mogao da bude jedan od relevantnih
za rad "zasticenog" programa. Kod nekih diskova koji su pod DOS-om i rade sa
drajverima za disk VSN je 0000-0000 za svaku particiju: Primer: disk formati-
ran sa SpeedStore-om koji pod DOS radi sa drajverom SSTOR.SYS (ili slicno) ,
anyway ja sam probao i sa C- programom licno upisao VSN i radilo je.
-> instliram program stvar je jednostavna. Jedini je problem
-> mogucnost poklapanja podataka na dve masine.
A kako bi bilo da se testiranje hardvera prosiri i na druge uredjaje sem
maticne ploce ( dali CPU ima seriski broj?, kako se moze odrediti tip CPU-a???)
disk, RAM , tip video adaptera da bi koliko-toliko smanjio verovatnocu da
su dve iste masine u pitanju.
P.S. Inace u knjizi "Programski jezici i metode programiranja" od
Dr. Jozo J. Dujmovic-a u odeljku 3.4 OSNOVNI PRAVNI I EKONOMSKI
ASPEKTI PROIZVODNJE SOFTVERA poddelu 3.4.3 strana 3.102 pise da
"... da se seriski broj procesora koji je utisnut u odgovarajuci
ROM prilikom fabrikacije procesora ( i koji se moze programski
ocitati ) ..."
Zna li neko nesto o tome ? (tj. vazi li to za intel procesore iz PC-a
posto se u textu nevidi o kojim je racunarima rec)
Pozdrav DakicD
zastita.57dejanr,
-> #56, ddusan>> P.S. Inace u knjizi "Programski jezici i metode programiranja" od
>> Dr. Jozo J. Dujmovic-a u odeljku 3.4 OSNOVNI PRAVNI I EKONOMSKI
>> ASPEKTI PROIZVODNJE SOFTVERA poddelu 3.4.3 strana 3.102 pise da
>> "... da se seriski broj procesora koji je utisnut u odgovarajuci
>> ROM prilikom fabrikacije procesora ( i koji se moze programski
>> ocitati ) ..."
To važi za VAX-a, možda za još neke sisteme. Sjajan vid zaštite.
zastita.58ssokorac,
-> #41, ppekovic -=)> Posto je razmena poruka trajala par dana, ajde da te
-=)> podsetim malo. Tvoja ideja je bila zastita software-a
-=)> tako sto ce u cmos upisati neki niz bajtova, pa ces u
-=)> tvom programu proveravati da li se isti nalaze na
-=)> mestu.
To baš nije bila moja ideja već nečija druga, valjda bearboy-a, ali
nema veze...
-=)> Pukao je cmos. Korisnik vrati standardne vrednosti
-=)> (vreme, datum, HD, itd.) i pokrene program koji si
-=)> zastitio i on normalno ne pronadje zeljeni niz bajtova
-=)> i odbije da radi. Korisnik ce morati da te pozove
-=)> telefonom i tada ces ti morati otici do njega da opet
-=)> vratis stvar na normalu.
Ih, pričaš to kao da cmos puca svakih 10 minuta. Ja od kada imam
kompjuter nisam doživeo pucanje cmosa, a ni moji poznanici. Ne kažem
da se ne dešava, ali ipak, ne treba preterivati. <ili možda imaš onaj
dejanov program koji piše nule u cmos u autoexec-u? :))) >
A, za to pozivanje: javiš mu telefonom ono što bi ti uradio kad bi
otišao do njega, da uradi sam. Nemoj mi samo reći da još nećeš ni
telefonski račun da plaćaš...:)
Pozdrav, Stasha
P.S. Nemoj samo da počnemo kao ignore-ovci u sezam:razno...;))
zastita.59bojanp,
-> #39, dejanr> Ja mislim da je najbolja zaštita štampanje imena firme itd. u zaglavljima,
> s tim da to ime ne piše u programu baš kao čist ascii.
Kako zaštiti program ako ne postoji ime firme ili je ono nebitno?
zastita.60dvidovic,
-> #57, dejanr>>> "... da se seriski broj procesora koji je utisnut u
>>> odgovarajuci ROM prilikom fabrikacije procesora ( i koji
>>> se moze programski ocitati ) ..."
>
> To vazi za VAX-a, mozda za jos neke sisteme. Sjajan vid
> zastite.
VAX, ok. Ne kupujes novi svake godine, ali za PC: neka hvala.
Zamisli da kupis prg. sa takvom zastitom, a onda ti DVV javi
da kod tog i tog mozes za smesne pare da kupis 486/50Mhz.
Kupis plocu, instaliras je a prg. koji si kupio i koji je u me-
djuvremenu postao tvoja desna ruka, kaze :'Ja na ovom ne radim'.
Sta onda?
Dule
zastita.61prvul,
-> #53, ivans>> Ne, na srecu nisam imao bliske susrete n-te vrste sa mocugom... :)
A sa PRANGLOM!!!!! ;))))
Prvul.
zastita.62dejanr,
-> #60, dvidovic>> Kupis plocu, instaliras je a prg. koji si kupio i koji je u me-
>> djuvremenu postao tvoja desna ruka, kaze :'Ja na ovom ne radim'.
Pa, ako si program kupio onda se obratiš autoru, njemu se ipak više
isplati da svrati kod tebe kad kupiš novi hardver nego da se njegov
program širi naokolo.
zastita.63agobovic,
-> #57, dejanrU januarskom broju BYTE-a na 16. strani u Compaq-ovom oglasu stoji sledece za
Compaq deskpro/m i IBM PS/2 model 90:
"System configuration and ID number available in memory and accessible
remotely"
dok se ista osobina ne pominje za ostale klonove kao sto su ALR, AST i Dell.
Zna li neko o kakvom je to ID-u rec i da li je to ono o cemu je ovde vec
pricano za VAX-a?
zastita.64ndragan,
-> #35, ssokorac/ Neka mu autor sam pokaže kako da namesti cmos i unese kod.
...čime cela stvar pada u vodu. Stash, zabo ga, pa korisnik to ne treba ni da
vidi - to je zaštita! A pod be, nama odleti pet sati mesečno na nove
korisnike koji onako ladno ulete u setap ili im se cmos uleši sam od sebe...
sačuvaj me bože da mi zaštita zavisi od cmosa. To puca, a bogami i spada.
Bue_ NDragan
zastita.65ndragan,
-> #39, dejanr/ s tim da to ime ne piše u programu baš kao čist ascii.
Neka piše, ali neka kontrolni zbir tog stringa bude negde zavučen pa
prepakovan. Ali neka piše na jednom mestu i neka se štampa na svim
izveštajima.
Ja sam to jednom izveo - s tim da je okidalo na 67. pozivanje rutine koja
ispisuje "čekam...", i onda brisalo sve baze od trećine do kraja, uz PACK i
REIN... a sva imena procedura i promenljivih (u kliperu se lepo vide) su bila
premundurena - od zx81, zx82, atari, prc, zajeb, wait (koja je radila quit),
listaj (koja je pauzirala), audi, vw, ibm, itd, yesno (štampa kartica) itd.
Svakog ko to provali voleo bih da vidim u našoj firmi.
Epilog: program se ne koristi (mutan korisnik), nisu mi platili ostatak
(jesam reko da je mutan), niko nije ni pokušao...
Od onda mi nije zatrebao kliper.
Bue_ NDragan
zastita.66ndragan,
-> #43, spantic/ bilo prilično videoklubova istog imena ;(.
Tog softvera za video klubove ima toliko, da je besplatan :)
zastita.67ndragan,
-> #59, bojanp/ Kako zaštiti program ako ne postoji ime firme ili je ono nebitno?
Malopre (vidi neku od prethodnih poruka) sam rekao kako sam ga _zaštio_, ali
to je nebitno da li je ime firme - bitno je da se na _svim_ štampama
pojavljuje neki tekst koji ih čini bezvrednim za ostale korisnike. Ime
korisnika?
Bue_ NDragan (...zl)
zastita.68spantic,
-> #66, ndragan> Tog softvera za video klubove ima toliko, da je besplatan
> :)
Danas da. Svojevremeno nije baš tako bilo. Ali ni za zaštitu autorskih prava
nisu bili čuli, a ni danas kad smo već kod toga.
zastita.69lazo,
Evo moje zaštite. Sad kolko je dobra ne znam. Radi se o tome
da je program namjenjen jednom korisniku (preduzeću). E sad
naziv tog preduzeća je u stvari ključ po kojem štitim
program od neovlaštenog korištenja. Postoje dva stepena
zaštite. Jedna je zamka (u ASCII obliku), dok druga radi na
slijedeći način: Od imena firme sam uzeo ascii kod svakog
slova i zatim recimo svakom broju dodam neku vrijednost,
onda to sve saberem, pomnožim s nekim brojem i onda vršim
poređenje. Ako neko odluči da promjeni naziv firme za svoje
potrebe (naravno prije toga iskopira sebi program), broj
koji se izračuna razlikovaće se od 'mog' broja i dobiće
poruku da je program neovlašteno korišten (program se pri
tom izbriše mada to i nije toliko bitno:)). Fazon je u tome
kad recimo iz pcshell-a zadam da traži 'moj' broj u exe
verziji uopšte ga ne nađe.
Da li neko može naći vrijednost tog broja, ne znam? Meni se
čini da i nije baš lako. Bar ja ne bih znao:)). Običan
korisnik svakako ne može.
Mickey
zastita.70mjova,
-> #69, lazo> program od neovlaštenog korištenja. Postoje dva stepena
> zaštite. Jedna je zamka (u ASCII obliku), dok druga radi
ma jok, najbolja fora je da on slobodno promeni ime firme ili onoga na
koga je registrovano ;), ali da pri štampanju poruke odštampa tvoju
poruku koja je negde sklonjena sa strane i to nekom šifrom.
dakle, postoji mamac u ASCII obliku koji sam program ne tretira
nikako (možda samo da provali check sum radi informacije o tome da je
neko dirao program).
SY
zastita.71nandi,
ako se program, ili deo piše u asm, evo ideje:
preuzme se int 03h tako da ukazuje na int 21h. na ovaj način skoro
je nemoguće gledati program pomoću nekog dibagera.
mov ax, 3521h
int 21h
push es
pop ds
mov dx, bx
mov ax, 2503h
int 21h
ovo treba staviti na početak programa, i svaki sledeći put zvati int
03h (koji je samo jedan bajt dugačak, kod 0c0h) umesto int 21h.
nandi
ps: izvor pcplus 01/92
zastita.72djelovic,
U slucaju da pukne CMOS ili korisnik promeni masinu:
1. Pozove te korisnik.
2. Startuje program sa opcijom /protection.
3. Program ispise 10 random dvocifrenih brojeva na ekran.
4. Korisnik ti ih procita.
5. Ti na osnovu tih brojeva izračunaš CHECKSUM.
6. Korisnik ukuca CHECKSUM.
7. Program upiše novu lozinku u CMOS, i nadalje radi.
P.S. Mislim da je elegantnije rešenje da se umesto šifre u CMOS-u
koristi spisak svih poddirektorijuma iz C:Đ. Ako se spisak od prošlog
puta "drastično" promenio, onda se pretpostavi da je program kopiran na
drugu mašinu. Ako nije, korisnik te pozove i sve bude OK.
zastita.73vbole,
-> #72, djelovic> P.S. Mislim da je elegantnije resenje da se umesto sifre u CMOS-u
> koristi spisak svih poddirektorijuma iz C:D. Ako se spisak od proslog
> puta "drasticno" promenio, onda se pretpostavi da je program kopiran na
> drugu masinu. Ako nije, korisnik te pozove i sve bude OK.
A koliko je to "drasticno" i koji algoritam za uporedjivanje da
upotrebis:
a) Ukupan broj poddirektorijuma
b) njihov ASCII-checksum
c) datume nastanka
i kako da ne budes siguran da:
a) Nabavio si nove programe i naravno, otvorio nove dir i poddir
ili si resio da neke programe i dir vise ne koristis
b) Promenio si nazive jer ti stari ne odgovaraju
c) vidi pod a) i b)
Cak ni pocetne klastere direktorijuma ne smes za to da upotrebis, jer
sta je sa bekapom ?
bye... vbole
zastita.74prvul,
-> #69, lazo>> Da li neko može naći vrijednost tog broja, ne znam? Meni se
>> čini da i nije baš lako. Bar ja ne bih znao:)). Običan
>> korisnik svakako ne može.
Neko sigurno može... u krajnjem slučaju, provaliće to na osnovu samog
koda koji radi proveru... ako hoćeš da budeš siguran da stvarno niko
ne može da izmeni poruku a da ona prođe kontrolu, treba koristiti neki
od public key kriptosistema... uzmeš i kodiraš tekst koji treba da ostane
nepromenjen tajnim ključem. U program ugradiš dekodiranje javnim ključem.
Sada svako može da vidi kako se to čita, ali iz programa se vidi samo
javni ključ, dok tajni znaš samo ti. Zbog toga niko osim tebe nema šanse
da kodira svoju poruku u program (a da pritom program dekodira tačno ono
što on "haker" hoće). Naravno, ovakva, kao i uostalim sve zaštite,
je osetljiva na trivijalno razbijanje metodom obilaska same provere zaštite.
Opet, ova metoda razbijanja se da nadmudriti na više načina, od kojih
nijedan nije savršen, tj. teoretski se mogu zaobići, ali to je praktično
jako teško...
Prvul.
zastita.75bearboy,
-> #41, ppekovic-+={ Posto je razmena poruka trajala par dana, ajde da te
-+={ podsetim malo. Tvoja ideja je bila zastita software-a
-+={ tako sto ce u cmos upisati neki niz bajtova, pa ces u
-+={ tvom programu proveravati da li se isti nalaze na
-+={ mestu.
Necu da se mesam, ali mislim da je ideja bila moja..... :)
-+={ Da manemo na stranu sto je zastita trivijalna, ipak je
-+={ za 80% korisnika neresiva, ali problemi koji sa njom
-+={ nastaju su preveliki.
Ja nisam rekao da ljudi zasticuju programe tako, nego sam samo rekao 'sta
mislite o ovoj zastiti ?' Tj. ta ideja mi je pala na pamet dok sam pisao reply,
pa sam je dodao. Eto.
zastita.76nboskovic,
-> #72, djelovic*> koristi spisak svih poddirektorijuma iz C:Đ. Ako se
*> spisak od prošlog puta "drastično" promenio, onda se
*> pretpostavi da je program kopiran na drugu mašinu. Ako
*> nije, korisnik te pozove i sve bude OK.
To i nije neko rešenje. Konkretno, ja kupim takav program
i odnesem kod mjove, a ono kod njega radi s obzirom da nam
se spisak poddir-a ne razlikuje ni 5%.
(c) klap
nikola
zastita.77spantic,
-> #72, djelovic> drugu mašinu. Ako nije, korisnik te pozove i sve bude OK.
A šta misliš kako bi te korisnik pozdravljao svaki pu? I kad bi išta
više od tebe naručio? Pn treba na tome da radi, a ne da se muči.
zastita.78djelovic,
Sto se tice zastite sa poddirektorijumima C:Đ:
Zastita se ostvaruje tako sto program zapamti sve
poddirektorijume prvog nivo, u mom slucaju: TC, TELEMATE, DOS, BIN,
TEXT, ...
E sad, kada se startuje on poredi trenutne poddir sa onima koje
drzi zapsiane. Ako su dodata/oduzeta do tri (pet?) poddir-a, program ne
radi nista. Ako je promenjeno vise od toga, onda program reaguje.
Ako je manje, program pokupi novi spisak poddir-a. Pretpostavka je da
korisnik koji ne piratuje software nece dobiti tri nova programa u istom
danu.
Uz program se naravno mora dati i UNINSTALL rutina koja skida
program sa tvog HD-a, da bi on mogao biti sa INSTALL-om prebacen na novu
masinu na koju prebacujes program. (Ako korisnik kupi nesto novo.)
Argument: pperic ima skoro isti spisak poddir-a kao i ja.
- To je veoma retko, a bar cete program koristiti vas dvojca a
ne pola BG-a.
Argument: Pa nece korisnik da te zove svaka dva dana.
- Nece korisnik ni da menja spisak poddira svaka dva dana. Ako
je algoritam za poredjene poddir-a dobar, dobices poziv mozda jednom u
zivotu, osim u ekstremnim situacijama.
Cak i da se objavi nacin na koji zastita radi, pretpostavka je
da ljudi nece ici na te muke da svi postavljaju iste konfiguracije samo
da bi koristili tvoj program.
Nijedna zastita nije savrsena. Ova deluje kao OK kompromis.
zastita.79darone,
-> #78, djelovic>> Sto se tice zastite sa poddirektorijumima C:Đ:
Recimo da uradim bekap c diska i vratim ga na tuđe
3 mašine... svuda će raditi :(
>> Cak i da se objavi nacin na koji zastita radi,
>> pretpostavka je da ljudi nece ici na te muke da
>> svi postavljaju iste konfiguracije samo da bi
>> koristili tvoj program.
Dvojici (ili više) ljudi treba tvoj program.
Dogovore se: meni na disku c neka bude to i to, a
tebi to i to. Onda instaliraju na jednu mašinu ono
što i jednom i drugom treba, ti dođeš, instaliraš
program. Ljudi obave bekap i obojica imaju tvoj
program. Uostalom... ja bi te prvi zezno, imam 2
particije, a tvoja zaštita radi samo za c: ;)))))
darone
zastita.80lanik,
-> #79, darone
Mislim da je zaštita po pomenutom principu "pamćenja direktorija" više
nego gnusna. Ja dosta često premeštam (često=svakih par meseci) direktorijume i
takva zaštita bi me "ubila".
Imam jedan program, koji kako premestim u drugi DIR, odbija da radi. I
savki put moram da ga instaliram sa flopija. Užas.
Mnogo je bolje onda zapamtiti particionu tabelu - nama je važno da program
radi na JEDNOJ mašini, a ne da li korisnik premešta direktorijume...
A particionisanje harda se uradi jednom/dvaput i više nikada.
zastita.81zormi,
-> #80, lanik* Mislim da je zaštita po pomenutom principu "pamćenja
* direktorija" više nego gnusna. Ja dosta često premeštam
* (često=svakih par meseci) direktorijume i takva zaštita bi
* me "ubila".
Meni su sve zaštite gnusne (nisam pirat). Nikad ne bih držao
na disku neki program u koji nemam poverenja šta će sledeće da
uradi.
zastita.82predrag,
Ajde da vidim strucnjake za zastitu sta misle da li se MOGU
nekako zastiti fontovi za pojedine programe.
Ja sam napravio nekoliko vrsta cirilica za Corel Draw
i koliko vidim po oglasima pojedinci ih prodaju bagatelno.
Danas sam zvao nekog tipa iz "oglasa" koji prodaje 30 vrsta
cirilica za Corel.
ps: Samo mogu da se tesim da se dosada nisam toliko
grcio i napravio toliko fontova.
pps: obicno poludim kada me neko zove i pita me kako se
instaliraju fontovi i jos se ljuti sto necu da mu kazem.
(a fontove nije kupio od mene)
zastita.83dejanr,
[Odgovor na PC.USER/razno 17.211, max.headroom]
>> Npr. zapamti relativni raspored direktorijuma ili neki
>> konstantniji parametar, ali da bude karakterističan...
Sad mi pade na pamet, zašto ne bi napravio negde u DOS direktorijumu
fajl (npr) 852B.CPI ili tako nešto, pa proveravao jel postoji ili ne.
Mala šansa da bi se neko setio da i njega prenese na drugi kompjuter
pri piratovanju.
Naravno, pretpostavka je da ti radiš kupcu instalaciju softvera (kao
što se obično i radi).
zastita.84vbole,
-> #83, dejanr> Sad mi pade na pamet, zasto ne bi napravio negde u DOS direktorijumu
> fajl (npr) 852B.CPI ili tako nesto, pa proveravao jel postoji ili ne.
> Mala sansa da bi se neko setio da i njega prenese na drugi kompjuter
> pri piratovanju.
Jeste, samo sto ti pretpostavljas da je kupac<>pirat, a to nije uvek
slucaj.Ukoliko korisnik pre instalacije programa uradi BACKUP, ti mu
lepo instaliras program i odes kuci, a on opet lepo BACKUP/M na disketu
i ima sad na disketi sve potrebne fajlove - a ti se seti da resetujes
Archive-bit !
Moje skromno misljenje je, da su sve zastite koje se oslanjaju na
postojanje *bilo cega* na disku nepouzdane.Evo zasto:
a) Svaki poziv disku moze da se presretne i analizira.Zasto bi neki
pirat analizirao ceo program, ako jednostavno moze da saceka
poziv disku sa potrebnim vrednostima k'o na tacni ?
b) Ako korisniku pukne disk, ode i tvoja zastita, moras da ides kod
njega i da mu dovedes stvari u red ili da mu kazes u cemu je jadac.
U svakom slucaju, 100% zastita je neizvodljiva, zato je najbolje i ne
muciti se mnogo oko toga - ispadne skuplja dara nego mera.
Po meni, najbolja zastita je tiha zastita - instaliras program cija duzina
nije deljiva sa 128, pa na kraj (duzina MOD 128) upises sifru kupca tako
da uvek mozes da znas ko je piratovao program.To naravno, nigde u programu
ne proveravas, a pirat kako god da presnimava program, snima i sifru.Ukoliko
uporedjuje 2 programa od 2 razlicita kupca, dobija poruku da su identicni.
bye... vbole
zastita.85dusanp,
-> #83, dejanr=> Sad mi pade na pamet, zašto ne bi napravio negde u DOS
=> direktorijumu fajl (npr) 852B.CPI ili tako nešto, pa
=> proveravao jel postoji ili ne. Mala šansa da bi se neko
=> setio da i njega prenese na drugi kompjuter pri
=> piratovanju.
Gde me nađe? Ja sam dosad kombinovao ovaj sistem sa još
nekim zaštitama i mislim da je baš zgodan. Ona dozvoljava
korisniku programa da premešta program po disku, ali ako
fajla nema /program kopiran/ ispiše : Ovo je DEMO, i ogra-
niči neke mogućnosti programa.
=> Naravno, pretpostavka je da ti radiš kupcu instalaciju
=> softvera (kao što se obično i radi).
Nije potrebno, jer INSTALL se može tako iskomplikovati
da svi fajlovi dođu na svoje mesto, a da se to ne primeti.
zastita.86dejanr,
-> #84, vbole>> a ti se seti da resetujes Archive-bit !
Pa, odsad ću se setiti :) Pa ipak, teško da je i jedan od onih što
kupuju te Clipper programe ikad čuo za Archive bit.
>> b) Ako korisniku pukne disk, ode i tvoja zastita, moras da ides kod
>> njega i da mu dovedes stvari u red ili da mu kazes u cemu je jadac.
Prema mom iskustvu, u takvoj prilici odlazak i onako ne gine :(
>> a) Svaki poziv disku moze da se presretne i analizira.Zasto bi neki
>> pirat analizirao ceo program, ako jednostavno moze da saceka
>> poziv disku sa potrebnim vrednostima k'o na tacni ?
Kao što sam kažeš, zaštita nikad nije stoprocentna. Ali je već vajdica
ako si se obezbedio od "običnog" piratovanja, za 90% korisnika (možda i
99%) posle "kopiranje nije uspelo" nema dalje diskusije.
>> a pirat kako god da presnimava program, snima i sifru.
Jesi li siguran da COPY presnimi i ono iza kraja fajla?
zastita.87dejanr,
-> #85, dusanp>> Nije potrebno, jer INSTALL se može tako iskomplikovati
>> da svi fajlovi dođu na svoje mesto, a da se to ne primeti.
Na žalost ne, jer kupac može da uradi DISKCOPY instalacione
diskete pre nego što uopšte počne instalaciju.
zastita.88dega,
-> #84, vboleŠĆĆĆ Po meni, najbolja zastita je tiha zastita - instaliras
ŠĆĆĆ program cija duzina nije deljiva sa 128, pa na kraj (duzina
ŠĆĆĆ MOD 128) upises sifru kupca tako da uvek mozes da znas ko je
ŠĆĆĆ piratovao program.To naravno, nigde u programu ne
ŠĆĆĆ proveravas, a pirat kako god da presnimava program, snima i
ŠĆĆĆ sifru.Ukoliko uporedjuje 2 programa od 2 razlicita kupca,
ŠĆĆĆ dobija poruku da su identicni.
Mozda sam glup, ali ne kapiram. Pojasni ako te ne mrzi!
zastita.89dusanp,
-> #87, dejanr=> Na žalost ne, jer kupac može da uradi DISKCOPY
=> instalacione diskete pre nego što uopšte počne
=> instalaciju.
Tu dolazimo do sledećeg pitanja - kako zaštititi
instalacionu disketu ? Da li neko ima >PRECIZAN<
spisak sta se čime može iskopirati a šta ne ?
Da li bi rešenje bilo u tome da se napravi BOOT
disketa sa normalnim startup delom i nekim levim
formatom staza/sektora ? To bi zaglupelo svaki kopi
program.
zastita.90dusanp,
-> #84, vbole=> Moje skromno misljenje je, da su sve zastite koje
=> se oslanjaju na postojanje *bilo cega* na disku
=> nepouzdane.
Da izvineš, za nešto moramo da se ufatimo. Ako
odbacimo CMOS jer ne nepouzdan, disk jer se može
presresti i još par sistema od kojih svaki ima svoje
mane, ostaje nam DONGLE koji em je ružan, em brate
košta. On je opravdan kod većih paketa, ali zar da
puknem 10% cene programa na njegovu zaštitu ?
=> a pirat kako god da presnimava program, snima i
=> sifru.Ukoliko uporedjuje 2 programa od 2
=> razlicita kupca, dobija poruku da su identicni.
Mislim da je ovo dobar način sve dok se upotrebljava
kopi koji kopira cele sektore. Na žalost, ja sam svoje-
vremeno napisao kopi koji kopira byte_by_byte - u tom
slučaju gornji citat i dalje ostaje da važi, /programi
su i dalje identični/ ali se na kraju *ne* nalazi šifra.
zastita.91vbole,
-> #86, dejanr> Jesi li siguran da COPY presnimi i ono iza kraja fajla?
Nisam, odn. proverio sam i ne presnimava...
Ja rekao 128 Bajtova, jer je to duzina koja *obavezno* ide sa fajlom,
bez obzira na stvarnu duzinu sektora odn. klastera na disku, ali sam
zaboravio da DOS operise sa 2 DTA. :((
Ali zato u vremenu kreiranja/izmene fajla imas 5 bitova (za sekunde)
koji se nigde ne pojavljuju, a COPY ih presnimava...
Ma, bez veze, vidi poruku hercog za onaj program za burekdziju - nece
da plati ni program kako treba, a gde ti je vreme za pisanje zastite ?
Ja bi mu lepo ugradio *samo* ono sto trazi, a onog momenta kada se promeni
poreska stopa/broj radnika/nacin obracuna on nema nacina da to uradi iz
programa, nego mora ponovo da me zove, a onda cu ja njemu da talasam o
vremenu i ceni.
bye... vbole
zastita.92vbole,
-> #88, dega> Mozda sam glup, ali ne kapiram. Pojasni ako te ne mrzi!
Moja greska, vazi samo za sektor/sektor kopiranje.
pogledaj poruku 7.90 >> dusanp.
bye... vbole
zastita.93vbole,
-> #89, dusanp> Da li bi resenje bilo u tome da se napravi BOOT
> disketa sa normalnim startup delom i nekim levim
> formatom staza/sektora ? To bi zaglupelo svaki kopi
> program.
Koliko se secam, i toga je bilo, COPY programi su prijavljivali
BAD SECTOR/SECTOR NOT FOUND pri kopiranju.Mislim da su samo jednu
stazu formatirali i upisali podatke u bez_veze/staza/sektor formatu.
Trebao bi da imas PB za tu stazu u programu i da preskocis BIOS (?)
za nju.I meni ideja ne izgleda lose, procackacu malo po dokumentaciji
za adrese, pa idem da probam.
bye... vbole
zastita.94dragisha,
-> #86, dejanrű> Jesi li siguran da COPY presnimi i ono iza kraja fajla?
Ne znam je li on siguran, ali ja sam siguran da NE presnimi.
Naravno, razlog je prost. COPY ne kopira sektor po sektor nego sa handle
otvori fajl i onda ide buffer po buffer. Posto koristi funkciju 3FH za
citanje datoteka, ono iza kraja u buffer nece nikada ni uci.
Ipak, ideja nije bez smisla. Ja inace koristim posebnu datoteku koja
sadrzi info o instalaciji (don't ask me how :)) ), ali i ideja da se
iskoristi slack space iza fajla nije losa. Mada je tesko potrefiti duzinu
fajla da ne smeta metodi:).
dragisha
zastita.95alexa,
-> #93, vbole > Trebao bi da imas PB za tu stazu u programu i da preskocis BIOS
> (?)
> za nju.
Da, morao bi da preskočiš BIOS ako je nešto iole egzotičnije.
A to znači da moraš da programiraš floppy kontroler i DMA kontroler.
Možda je ipak jeftinije platiti dongle?
zastita.96dejanr,
-> #89, dusanp>> Tu dolazimo do sledećeg pitanja - kako zaštititi
>> instalacionu disketu ? Da li neko ima >PRECIZAN<
>> spisak sta se čime može iskopirati a šta ne ?
Zaboravi. Sve što se na PC-ju može snimiti može se prekopirati
starim dobrim COPYIIPC. Da bi snimio disketu koja se ne može
kopirati, treba ti malo opreme za to. No i takva disketa "pada"
ako neko kupi npr. CopyBoard od Central Point Software. Mala
kartica, ispod $50 a provereno kopira *sve*.
Ja bih radio ovako (nikad nisam probao!) Uzmem blanko disketu,
zagrebem je žešće skalpelom, formatiram, uočim gde su bad
sektori i onda instalacioni program (koji je, dakle, drugačiji
na svakoj disketi) proverava da li tu može nešto da se upiše
ili ne. Mnoge bi zbunilo.
zastita.97ndragan,
-> #93, vbole/ stazu formatirali i upisali podatke u bez_veze/staza/sektor formatu.
Mnoge igre se tako štite. Pitaj atariste, tamo je haos od formata.
zastita.98dusanp,
-> #96, dejanr=> Ja bih radio ovako (nikad nisam probao!) Uzmem blanko
=> disketu, zagrebem je žešće skalpelom, formatiram, uočim
=> gde su bad sektori i onda instalacioni program (koji je,
=> dakle, drugačiji na svakoj disketi) proverava da li tu
=> može nešto da se upiše ili ne. Mnoge bi zbunilo.
Ova ideja mi se tako svidela da sam je odmah isprobao.
Radi savršeno, i mislim da tu nema šta da se doda. Voleo
bih da vidim taj hardver koji istovremeno kopira disketu
i bocka je gde je potrebno.
Ipak, Dejane, nemoj baš >žešće skalpelom<. Ja sam je
samo malo zagrebao iglom i napravio mnooogo loših sektora.
zastita.99nandi,
-> #96, dejanr> Ja bih radio ovako (nikad nisam probao!) Uzmem blanko disketu,
> zagrebem je žešće skalpelom, formatiram, uočim gde su bad
> sektori i onda instalacioni program (koji je, dakle, drugačiji
> na svakoj disketi) proverava da li tu može nešto da se upiše
> ili ne. Mnoge bi zbunilo.
sredio sam ja u ono vreme par disketa, iskustva su sledeća:
kopi-programi prekopiraju te sektore kao bad sektore, i opet pisanje
i čitanje nije pravi način detekcije, mora se pokušavati sa
formatiranjem. veoma je teško zagrebsti (bušiti vrhom vruće igle)
tako da ti ne ode gomila sektora, i to na 3-4 tragova. meni nije
uspevalo ispod tri traga (desetak pokušaja).
ne bi ulazio koliko takvo meh. oštećivanje može uticati ne glavu
disketne jedinice, ali evo samo jedan podatak: u mađarskoj je jedan
ovakav način zaštite otišao na sud (žalba mušterije) i sud je
presudio na štetu onog, koji je bušio diskete (zbog oštećivanja glave
disk. jedinice). a tamo su diskete bušili LASER-om.
nandi
zastita.100dragisha,
-> #91, vboleű> Ja rekao 128 Bajtova, jer je to duzina koja *obavezno*
ű> ide sa fajlom, bez obzira na stvarnu duzinu sektora odn.
ű> klastera na disku, ali sam zaboravio da DOS operise sa 2
ű> DTA. :((
Pored najbolje volje ne mogu da nadjem bilo kakvu logiku u ovoj slozenoj
recenici. Na stranu "*obavezna*" duzina (mozda si mislio na minimalnu
duzinu sektora, koja je ujedno djelitelj ostalih mogucih velicina), ali
pojasnider sta si mislio sa 2 DTA i **kakve** to veze ima sa ostatkom
price. Mozda pomaze da se zapanje citaoci??
dragisha
zastita.101dusanp,
-> #99, nandi=> kopi-programi prekopiraju te sektore kao bad sektore, i
=> opet pisanje i čitanje nije pravi način detekcije, mora
=> se pokušavati sa
Neka je sektor obeležen kao bad, ali ako pokušaš da po
takvom sektoru pišeš pa čitaš, a nije ga napravila igla/
laser/skalpel/čekić dobićeš ispravne vrednosti. Još uvek
nismo našli način da *hardverski* kopiramo takvo oštećenje.
=> ali evo samo jedan podatak: u mađarskoj je jedan ovakav
=> način zaštite otišao na sud (žalba mušterije) i sud je
=> presudio na štetu onog, koji je bušio diskete (zbog ošte-
=> ćivanja glave disk. jedinice). a tamo su diskete bušili
=> LASER-om.
Baš me zanima kako je mušterija provalila da je disketa
bila bušnuta ? Ili je laser bio *mnogo* jak ?
zastita.102dejanr,
-> #98, dusanp>> Ova ideja mi se tako svidela da sam je odmah isprobao.
>> Radi savršeno, i mislim da tu nema šta da se doda.
Račun će stići poštom :)