razno.410mmitrovic,
-> #402, nbatocaninŮ█▀█Ţ postojećih. Na primer, kako otkrivate zaštite koje su napravljene da
Ů█▀█Ţ okidaju posle određenog vremena (moje omiljene :) )?
Prosto. ;)
Da bi se nešto aktiviralo posle nekog intervala (ili bilo koja zaštita
koja zavisi od vremena) mora da se uradi jedno ili više od sledećeg:
- da se preuzme INT 08 (tj. IRQ0, događa se 18.2 puta/sek)
- -----//------ INT 1C (koja se poziva iz INT 08)
- da se očitava BIOS Clock Count (DWORD koji predstavlja broj otkucaja
od ponoći (average 18.2/sek).
Ja lično tipujem ovim redom. Postavim se na ulaz u INT 21h i postavim
uslovni breakpoint (AX=2508h, set int. vector 08) i pustim program da
teče. Ako se upeca, super, imam adresu handlera i ostatak je rutina.
Ako ne upali pređem sa istom forom na 1C. Ako nije ni to onda napravim
rutinu koja se kači na 1C i dekrementira BIOS counter (standardni INT 08
ga u svakom prolazu inkrementuje), samim tim ga održavam na istom broju i
vreme staje. Takođe mogu da postavim hardware breakpoint za čitanje
i stavim mu adresu countera (40h:6Ch) i jednostavno dođem do koda koji
pravi frku ;).
Naravno, ovo je najprostija varijanta, bez dodatnih začkoljica
(menjanje breakpointa, otimanje int. vektora, itd.), ali ni to nije ništa
strašno.
razno.411mmitrovic,
-> #405, bulajaŮ█▀█Ţ može biti sasvim dovoljno da opameti "hakera" :).
Kad me ni obrisani CMOS nije opametio, ovo neće sigurno. ;)
Osim toga, moj BIOS ima potpis na veoma nestandardnom mestu, i nije
lako doći do njega.
razno.412mdrazic,
-> #403, bceklic> No ako je posao u pocetku bio obavljen cisto a to znaci da su u
> programu 'sredjena' sva mesta gde se vrse provere u vecini slucajeva
> vremenski okidac se nece ni aktivirati. Jer i taj okidac poziva
> jednu od provera koje su 'sredjene' tako da prijavljuju samom
> programu da je sve ok. Ako u programu imate 150 mesta koje pozivaju
> rutinu za proveru poenta je da sredite pomenutu rutinu a ne da
> unistavate 150 poziva.
Ako se cela zaštita svodi na kraju krajeva na jedan ili par IF-ova
onda nema spasa ni programu od 2MB.
Nego, kako skidate zaštitu ako u programu NEMA nikakve takve provere?
Ja zaštitu (Clipper) programa izvodim kriptografski: na osnovu nekog
ključa (jedinstvenog za mašinu) program dekoduje nešto i kao rezultat
dobija naziv funkcije, procedure koju treba startovati. Ako ključ nije
dobar, dobije neko đubre, startuje to i zakuca mašinu.
Milan
razno.413mdrazic,
-> #410, mmitrovic> Prosto. ;)
> Da bi se nešto aktiviralo posle nekog intervala (ili bilo koja zaštita
> koja zavisi od vremena) mora da se uradi jedno ili više od sledećeg:
>
> - da se preuzme INT 08 (tj. IRQ0, događa se 18.2 puta/sek)
> - -----//------ INT 1C (koja se poziva iz INT 08)
> - da se očitava BIOS Clock Count (DWORD koji predstavlja broj
> otkucaja od ponoći (average 18.2/sek).
Koliko ja znam, autor nije imao na umu sekunde i minute, već dane,
nedelje,... . Za takvu proveru ti i ne treba gore pobrojano, već je
dovoljno da samo pročitaš direktorijum (sa datumima), ili kontrolišeš
datume na fakturama, ili nešto slično.
Milan
razno.414mdrazic,
-> #411, mmitrovic> Kad me ni obrisani CMOS nije opametio, ovo neće sigurno. ;)
Nije štos da mu napraviš trenutnu štetu, već da mu štetu praviš
neprimetno u dužem vremenskom trajanju, nepredvidivo, a da sve
izgleda da radi OK, tj. da tako i radi, ali ponekad... :))))
Radi onih što zaštite skidaju, ono ponekad se može postaviti da
bude relativno retko, pa da se namuče.
Milan
razno.415bceklic,
-> #412, mdrazic> Nego, kako skidate zastitu ako u programu NEMA nikakve takve
> provere? Ja zastitu (Clipper) programa izvodim kriptografski:
> na osnovu nekog kljuca (jedinstvenog za masinu) program
> dekoduje nesto i kao rezultat dobija naziv funkcije, procedure
> koju treba startovati. Ako kljuc nije dobar, dobije neko dubre,
> startuje to i zakuca masinu.
Program mora da se debaguje na masini na kojoj je predvidjen da radi.
Samo poznavanja algoritma za dekryptovanje u ovom slucaju hakeru
ne znaci apsolutno nista. Isti metodu pri izboru kljuca za sifrovanje
koristi i PC GUARD. Naravno kod PC GUARD-a kljuc se koristi za generisanje
niza brojeva kako bi 'one time pad' metoda bila bolja i sigurnija.
Najveci problem kod tvoje zastite je taj sto potencijalni haker moze
da dodje do mesta gde ti vrsis dekryptovanje i prouci algoritam. Naravno
pretpostavlja se da radi na masini na kojoj je tvoj program instaliran
(sto je u najvecem broju slucajeva nikakav problem).
Tu dolazi do izrazaja PC GAURD koji omotava citav program zastitnim
slojevima koji ne dozvoljavaju prilaz tvom programu. Tu je i neizbezni
CRC 32 koji se aktivira ako je doslo do bilo kakve promene na programu.
Pozdrav!
razno.416omega,
-> #410, mmitrovicŢ Ja licno tipujem ovim redom. Postavim se na ulaz u INT 21h i postavim
Ţ uslovni breakpoint (AX=2508h, set int. vector 08) i pustim program da
Bas si mi pao kao kec na 11 ;)) Kako u TD da namestim breakpoint na
neku instrukciju? Znaci konkretno bas nesto kao ovo gore navedeno.
I oce neko da bude ljubazan i objasni ukratko one hardware
breakpoints :)
razno.417dejanr,
-> #415, bceklic>> Tu dolazi do izrazaja PC GAURD koji omotava citav program zastitnim
>> slojevima koji ne dozvoljavaju prilaz tvom programu. Tu je i neizbezni
>> CRC 32 koji se aktivira ako je doslo do bilo kakve promene na programu.
Hm, deluje da bi trebalo da isprobamo taj PC GAURD, da ne kažem GUARD :)
razno.418max.headroom,
-> #408, goxx> Ali prodati program za knjigovodstvo; to je već nešto drugo.
Istina. Mada mislim da je problem sledeći: do sada sam sreo preko
pedeset knjigovođa, i video da koriste pedeset i jedan metod
knjiženja. Da ne grešim dušu - sve se to svodi na isto, ali čoveku
koju 15-ak godina radi jednom metodom (papirna metoda, recimo), osim
što se privikava na kompjuter (užas), mora još da menja i sistem rada.
Te, nazovi razlike, i nisu velike, ali je sam tip posla čista
kolotečina i zna da te brzo pretvori u automat.
Znam ljude koji su nabavili domaćeg softvera na kilo, pa krenuli u
"ozbiljan biznis". One osnovne probleme (indeksi popadali, reporti
treba da se menjaju) još su i prebrodili koristeći literaturu, ali ih
je najviše gnjavila neka sitnica, npr. položaj određene stavke u
meniju (nedostupna), ili loše (hmh) organizovan šifarnik komintenata,
i tako u krug. Na kraju naručiše softver, i rade pa pevaju. :)
razno.419bceklic,
-> #413, mdrazic> Koliko ja znam, autor nije imao na umu sekunde i minute, vec
> dane, nedelje,... . Za takvu proveru ti i ne treba gore
> pobrojano, vec je dovoljno da samo procitas direktorijum (sa
> datumima), ili kontrolises datume na fakturama, ili nesto
> slicno.
Najgori je RND princip, dakle nikakvo vreme,datumi itd. vec se
sa odredjenom verovatnocom startuje rutina za proveru. Naravno
za sve ima leka...
POzdrav!
razno.420djelovic,
-> #415, bceklic> Tu je i neizbe zni CRC 32 koji se aktivira ako je doslo do bilo kakve
> promene na programu.
Ne znam da li znas, ali CRC hash je izuzetno lak za prevariti. Mozda
bi trebao da koristis neku drugu checksum rutinu, npr. onu Majkrosoftovu
sa palindromima.
razno.421omega,
-> #420, djelovicŢ Ne znam da li znas, ali CRC hash je izuzetno lak za prevariti.
Kako? ;)
razno.422ikordic,
-> #414, mdrazicRE: Zaštita
=> Nije štos da mu napraviš trenutnu štetu, već da mu štetu praviš
=> neprimetno u dužem vremenskom trajanju, nepredvidivo, a da sve
=> izgleda da radi OK, tj. da tako i radi, ali ponekad... :))))
Nenene, baš je poenta da napravi veću štetu. Ako je manja, papan to može
pripisati nekom bugu programa i ne izvući pravilne zaključke. Ali ako
program kaže:
"žuj dušo, upravo si nepovratno ostao bez svega što si radio od 01.01.
ove godine. čelim da znaš da se to desilo zato što ovu kopiju nisi
pošteno platio. Ciao babe!"
nema šanse da ne shvati poruku! ;) A tvoje nije da se nadmudruješ sa
razbivačima nego da ti taj program donese više para.
Inače, jako mi se sviđa ova diskusija, konstruktivna je i obiluje korisnim
informacijama i zanimljivim stavovima, jedna od svetlijih tačaka u proteklih
nekoliko nedelja. Keep it up :)
razno.423ikordic,
-> #418, max.headroomRE: Domaći softver
=> Znam ljude koji su nabavili domaćeg softvera na kilo, pa krenuli
=> i tako u krug. Na kraju naručiše softver, i rade pa pevaju. :)
Da, ovo je problem. U velikom broju slučaja, korisnici se tek iz drugog puta
uhvate za ono što valja. Zato i izbegavam da prodajem proizvode/usluge
ljudima koji nemaju nikakve veze i iskustva sa računarima, jer naprosto ne
znaju da cene kvalitet koji dobijaju. S druge strane, kada uletiš u
kombinaciju u kojoj je pre tebe bio neki teži diletant .. divota! :)
razno.424ikordic,
-> #410, mmitrovicRE: Zaštita
=> Da bi se nešto aktiviralo posle nekog intervala (ili bilo koja
=> zaštita koja zavisi od vremena) mora da se uradi jedno ili više od
=> sledećeg:
Što bi neko radio to za datumsku zaštitu? Treba samo da proveri aktuelni
datum, a to se postizava proverom datoteka koje se tog dana upisuju. Ja
ovako radim odavno, isprva zato što mi je bilo komplikovano da rastumačim
strukturu koju mi vraćalo očitavanje vremena, a posle sam uvideo još neke
prednosti koncepta, tako da njega koristim.
razno.425bajaga,
B00000000000000
da li neko zna nesto o programiranju VESA video kartica?
razno.426djelovic,
-> #422, ikordic> Nenene, baš je poenta da napravi veću štetu. Ako je manja, papan to može
> pripisati nekom bugu programa i ne izvući pravilne zaključke.
Problem je u tome sto brljanje po tvom kodu koje ti detektujes ne mora
da uradi direktno neki "razbijac", vec moze i, recimo, neki virus. Ne znam
ko ce da te spasi kada ti dodje razjareni korisnik kome si prodao program
koji mu je upravo obrisao pola harda? :)
razno.427ognjen,
-> #422, ikordic)-> "Cuj duso, upravo si nepovratno ostao bez svega sto si radio
)-> od 01.01. ove godine. Zelim da znas da se to desilo zato sto
)-> ovu kopiju nisi posteno platio. Ciao babe!"
Dobro, pa ja sam mislio da hakeri nisu bas sasvim pri svesti,
ali sad kad vidim sta programeri umisljaju, hakeri su mala deca.
Pa da li si ti (i ne samo ti :) svestan da ako neki covek cuje
da u programu postoji kod koji formatira disk, da ga nece
omirisati? Kad sam (nekada davno...) bio u klubu.p Bata je pravio
neki olr, i trazio je od nekog ortaka da mu napravi OBJ ili sta
vec, uglavnom neku zastitu koja ce u slucaju neposlusnosti
korisnika (citaj: cackanja po kodu) formatirati disk. Nisam bas
siguran da li je to na kraju zaista ubaceno u program, ali je
moje dotadasnje odusvljenje sto postoji Pingvin OLR, odjednom
splasnulo.
Najbolje je u samom upustvu (nikakve okokopajuce poruke)
pomenuti da je program registrovan (copyright) i da se njegovim
kopiranjem krsi zakon. Steci ces poverenje kupaca (zato sto ti
verujes njima) i nece postojati opasnost da unistis (ili
dovoljno, iznerviras) potencijalnog kupca.
razno.428drpr,
-> #422, ikordic-> "žuj dušo, upravo si nepovratno ostao bez svega što si radio
-> od 01.01. ove godine. čelim da znaš da se to desilo zato što
-> ovu kopiju nisi pošteno platio. Ciao babe!"
Davno smo jednom u klubu pricali o ovome. Došli smo do
zakljucka da ovo nije lose da se napise ali da podatke ne smes
da unistis tj. potrebno je da ih ucinis neupotrebljivim za
korisnika ali da si u svakom trenutku sposoban da te podatke
povratis. Dovoljan argument za ovo je marfi, desi se da
korisnik koji je platio program cacka nesto ili nesto od
glavnih fajlova obrise, i ti cap i obrises mu sve, covek ti se
javi a ti mu kazes :"pa ko vam je kriv..." a to priznaces bas i
nije neka preporuka i poslovna politika.
cope
razno.429cnenad,
-> #422, ikordicŁŁŁ "žuj dušo, upravo si nepovratno ostao bez svega što si radio od 01.01.
ŁŁŁ ove godine. čelim da znaš da se to desilo zato što ovu kopiju nisi
ŁŁŁ pošteno platio. Ciao babe!"
Zvrnnnnddd !
Škripa vrata...
'Kordić I. ?'
'Da, izvolite...'
'BOOM'
>>> Jednoga dana svakome slika izađe u novinama, nekom pre, nekom kasnije <<<
razno.430beast,
-> #407, mdrazic>> Za naplatu štete se obratite svome omiljenom hackeru ? :))
Sad ne znam ko je započeo ovu diskusiju (a mrzi me da tražim
:) al je bilo nešto u stilu 'Program je provalio da je
menjan, šta dalje?' i svi ste predložili neku svoju 'podlost'
:) potencijalnom hakeru. Mislim da je ipak pametnije uložiti
svo znanje u zaštitu programa od patch-a, a ne u što
destruktivnije i neprovaljivije :) osvete onom ko je menjao
program. Lično kada naiđem na program koji u sebi ima neke
destruktivne rutine (a postoje i programi koji to gledaju,
npr. chk4bomb.exe, mada je njihova korisnost diskutabilna)
ne koristim ga, ma kakav bio, jer nikad se ne zna šta će sve
da se desi sa memorijom i da li će možda pod nekim uslovima
program da ode na baš tu adresu. Dakle, što više skremblovanja,
rnd if-ova i sl., a što manje kojekakvih brisanja, formatiranja
itd. Postoje tehnike zaštite koje čoveku ostavljaju na izbor da
li će da plati softver ili da ne spava jedno mesec dana bez
garancije da će išta provaliti (hint: Telemate, CatDisk i
sl.). :)
Pozdrav, Dejan
razno.431mdrazic,
-> #422, ikordic> Nenene, baš je poenta da napravi veću štetu. Ako je manja, papan to može
> pripisati nekom bugu programa i ne izvući pravilne zaključke. Ali ako
> program kaže:
>
> "žuj dušo, upravo si nepovratno ostao bez svega što si radio od 01.01.
> ove godine. čelim da znaš da se to desilo zato što ovu kopiju nisi
> pošteno platio. Ciao babe!"
Pogrešno se izrazih: ne veću štetu, nego manje primetnu u prvo vreme kao:
u platama prebaciš nekih 200 dinara od Pere Miki, pa da vidiš štete koju
papanu nisi ti napravio veš Pera (još kada bi znao koji su jači tipovi u
firmi :)), a usput malo promeniš podatke koji krajem godine daju zbir
plaćenog poreza, rate kredita i slično. Spolja gladac,...
Milan
razno.432mdrazic,
-> #415, bceklic> Najveci problem kod tvoje zastite je taj sto potencijalni haker moze
> da dodje do mesta gde ti vrsis dekryptovanje i prouci algoritam. Naravno
> pretpostavlja se da radi na masini na kojoj je tvoj program instaliran
> (sto je u najvecem broju slucajeva nikakav problem).
Dobro, i otkriješ kako za poznat ključ i algoritam koji čak i saznaš
kako radi dobiješ nešto upotrebljivo. Na drugoj mašini znaš algoritam
i šta treba dobiti na nekim primerima sa prve mašine, ali ne znaš kojim
ključem to treba da se dobije! A način dobijana ključa nigde u kodu i
nije primenjen pa ga odatle i ne možeš otkriti (postoji odvojen program
za generisanje upotrebljivog ključa koji ti nije dostupan).
Pa i RSA algoritam je već svima poznat kako radi ali to ne pomaže da se
otkrije ključ. Naravno i mnogo slabiji, ali da nije baš trivijalan,
algoritam je dovoljan za ovu namenu.
Milan
razno.433nbatocanin,
-> #407, mdrazic> BTNJ. Dovoljno je samo da mu pogrešno proknjižiš 1% naloga
Da, to je otprilike najbolji metod zaštite složenih programa: ugurati
zaštitu u sredinu logike programa. Tako bi provalnik morao da nauči
rad sa programom (ima li nešto surovije nego terati okorele hakere da
uče šta je to porez ;> ), ako hoće da skine zaštitu. Primer: ako
statusna funkcija koja ispituje legalnost kopije vraća 0 kada je sve
OK, a slučajan broj kada nije, sabrati taj broj sa tekućim iznosom ;>
razno.434omega,
-> #430, beastŢ Sad ne znam ko je zapoceo ovu diskusiju (a mrzi me da trazim
Ţ :) al je bilo nesto u stilu 'Program je provalio da je
Ţ menjan, sta dalje?'
Krivac se uvek vrlo brzo nadje ;)
Ok, dosta sam slusao podlosti ;>, idemo sad sa lepsim pitanjem:
Kako sto bolje zastiti program?
Ţ :) potencijalnom hakeru. Mislim da je ipak pametnije uloziti
Ţ svo znanje u zastitu programa od patch-a, a ne u sto
Ţ destruktivnije i neprovaljivije :)
Btw, a ne pricas sta ste ti i Zak smislili kada korisnik petlja
po ZBTET-u? ;)
razno.435ikordic,
-> #427, ognjenRE: Zaštita
=> Dobro, pa ja sam mislio da hakeri nisu bas sasvim pri svesti,
=> ali sad kad vidim sta programeri umisljaju, hakeri su mala deca.
E bre, polako. Niti ja koristim pomenute metode u svojim kreacijama, niti se
zalažem za njihovu implementaciju. Radilo se o tome da je neko rekao da
program treba da pravi neku sitnu štetu ako primeti da je čačkan. Ja sam samo
rekao da treba praviti vidljivu štetu, kako bi korisnik/razbivač ukapirao
zašto se dešavaju veselja, da ne pripiše štetu nekom bagu programa. Time se
gubi efekat koji pomenuta šteta treba da izazove, a to je anader kupac :)
Daklem, ono je bio primer, maalko :) predimenzioniran radi efekta.
Sistem koji ja koristim obuhvata sve meni znane načine za verifikaciju
autentičnosti instalacije i integriteta programa plus kriptovanje podataka o
korisniku. Ako se programu učini da nešto nije u redu, odbija da se startuje
i ispiše "nema više - internal error #nn, javite se onom ko Vam je prodao
program". Do sada su samo dvojica dobila ovu poruku, u pitanju je bila neka
pretumbacija diska od strane drugih paketa. Sve u svemu, za sada najbolji
odnos uloženi trud/ne boli glava :)
=> >>> Jednoga dana svakome slika izađe u novinama, nekom pre, nekom
=> >>> kasnije <<<
;)))
Smanji doživljaj ;)
razno.436beast,
-> #434, omega>> Btw, a ne pricas sta ste ti i Zak smislili kada korisnik petlja
>> po ZBTET-u? ;)
Stvar je bezbolna (?) i jedno copy rešava stvar (jer su
autoexec i config pomereni iz roota, za one koji ne znaju).
Uzmi u obzir da je zbtet star skoro dve godine i da su se od
onda mnoge stvari promenile.... (iliti we were young and
naive... :)
Pozdrav, Dejan
razno.437spantic,
Kolegama Goranu Stevanoviću, Aleksandru Mićiću i Darku Marinkovu
čestitke na plasmanu u ekipu ETF-a za takmičenje ACM-a u programiranju
koje će biti u Rumuniji pod pokroviteljstvom Microsofta.
Aplauz i za one koji su za "dlaku" izgubili mesto u ekipi. Dejane
više sreće drugi put :)
Srećan put im želimo uz pesmu: "Ne vraćajte se bez Bilijevih
nagrada".a 4
razno.438bceklic,
-> #432, mdrazic> Dobro, i otkrijes kako za poznat kljuc i algoritam koji cak i
> saznas kako radi dobijes nesto upotrebljivo. Na drugoj masini
> znas algoritam i sta treba dobiti na nekim primerima sa prve
> masine, ali ne znas kojim kljucem to treba da se dobije! A
> nacin dobijana kljuca nigde u kodu i nije primenjen pa ga
> odatle i ne mozes otkriti (postoji odvojen program za
> generisanje upotrebljivog kljuca koji ti nije dostupan). Pa i
> RSA algoritam je vec svima poznat kako radi ali to ne pomaze da
> se otkrije kljuc. Naravno i mnogo slabiji, ali da nije bas
> trivijalan, algoritam je dovoljan za ovu namenu.
Ajmo ponovo, ;)
U ovakvoj situaciji kao sto rekoh program se mora sredjivati na masini
na kojoj je instaliran i na kojoj !radi!. To znaci da je kljuc na neki
nacin dostupan programu bilo da ga korisnik sam unosi pre pocetka rada
ili se on nalazi u nekom fajlu ili je patchovan u samom programu. Dakle
kljuc mi je !dostupan! jer mi je i dostupna masina na kojoj program radi!
Napomenuh da nije nikakav problem doci u ovu situaciju. Iskreno ova
situacija je najcesca. Kupac tvog programa hoce da ima verziju koju
moze dalje da po volji distribuira,koristi itd... i onda zove nekog
hakera da bi mu pomogao u toj zamisli...
Sam algoritam za generisanje kljuca moze ali i ne mora biti dostupan
hakeru.
Ako i ovo nije uspelo pokusacu da pomognem pitanjem:
Odakle tvoj program koji je instaliran na klijentovoj masini i RADI
uzima kljuc za dekryptovanje dela svog koda?
1. Sam ga generise algoritmom koji je ugradjen u program.
2. Koristi vec gotov kljuc koji se nalazi kodu samog programa dakle nema
algoritma za generisanje ali kljuc postoji.
3. Klijent unosi kljuc svaki put pri pokretanju programa.
4. Kljuc se nalazi u posebnom fajlu.
U sva 4 slucaja kljuc postoji! na toj masini jer program RADI!
Pozdrav! [A]
razno.439bceklic,
-> #430, beast> Licno kada naidem na program koji u sebi ima neke
> destruktivne rutine (a postoje i programi koji to gledaju,
> npr. chk4bomb.exe, mada je njihova korisnost diskutabilna)
U danasnje vreme upotrebljivost ovakvih programa je skoro
beskorisna...
Pozdrav!
razno.440omega,
-> #436, beastŢ Stvar je bezbolna (?) i jedno copy resava stvar (jer su
Ţ autoexec i config pomereni iz roota, za one koji ne znaju).
Ma nije poenta u bolu ;) vec o destrukciji. To jedno copy rusi sistem.
razno.441szeman,
-> #412, mdrazic>> Nego, kako skidate zaštitu ako u programu NEMA nikakve takve provere?
>> Ja zaštitu (Clipper) programa izvodim kriptografski: na osnovu nekog
>> ključa (jedinstvenog za mašinu) program dekoduje nešto i kao rezultat
!!!!!!!!!!!!!!!!!!!!!!!
To "jedinstvenog za mašinu" svodi se uglavnom na disk, egzistiranjem
raznih fajlova, startovanjem externih fajlova uz dobijanje željnih podataka
za proveru: tip mat. ploče, podaci o BIOS-u, itd.. Medjutim, samim tim je i
put za "razbijanje" programa olakšan. Ovako, skoro svaka zaštita (za Clipper)
je veoma sumnjivog kvaliteta. Jedino su zaštite sa "odloženim dejstvom" uz
istovremeno egzistiranje ostalih metodama i njihova medjusobna korelacija,
manje-više, prihvatljivo rešenje i hakera bar malo više pomuče (ako ovaj
ne odustane ;), mada se ne sme potcenjivati ni njegova/naša želja za
samopotvrdjivanjem. U krajnoj liniji, sujeta igra presudnu ulogu,
pa ko koga... ;)
Pozdrav, Saša
razno.442obrada,
RE: ZASTITA DOMACEG SOFTVERA
Sto se tice zastita, mislim da je najbezbolnija hardverska zastita.
Korisnik moze slobodno da napravi koliko hoce rezervnih kopija
instalacionih disketa. A ako promeni plocu ili hard disk ili racunar,
samo prebaci hard lock i ponovo instalira i nema problema. Tako ne moras
da ides kod njega ako promeni hardver. To nije tako strasno ako je u tvojoj
blizini. Medjutim ako je u drugom gradu, onda ne bi bilo zgodno da mu svaki
put kad promeni racunar lil neku komponentu, dolzis i naplatis put i
dnevnicu.
U principu, bar ne bi bilo fer.
Naravno, kada mislim na hardversku zastitu, ne mislim da je program samo
detektuje, vec i da radi neispravno ako je nema. Jos i to da cena ne bude
prevelika i da se radi od malo nestandardnih komponenti, bar u nasim
krajevima. Tako da se ne isplati razbijati cisto softverski, vec se mora
praviti i hardver da bi razbijeni program radio.
Takva zastita bi trebala biti iz vise nivoa.
1. Prosta detekcija hard locka
2. Ako to provali da pogresno racuna neke operacije (++, +) ako nema
hard locka, odnosno da sam hard lock radi neke od tih operacija (prostih)
3. Slicno kao 2 ali da povrmeno prepusta te operacije hard locku
To znaci, da razbijac nikad nije siguran da li je razbio sve zastite, jer
nema
nikakvog upozorenja.
Za korisnika koji koristi takav softver, najveca steta je ako su mu pogresni
podaci. Za to je sam odgovoran.
Sto se tice hard locka, treba izbrati komponente koje su programibilen i koje
se ne mogu lako provaliti. Uz to mozda bi se u kutiju za hard lock mogao
ugraditi mehanizam da spali kola ako se nasilno otvori. Mozda i malo
eksploziva. Ali samo malo. Uz to i prefarbati da se nevide oznake.
Jos jedan dilema u vezi hard locka: da li da se kaci ha paralelni port i da
transparentan (malo nezgodnija varijanta, treba i kutija) ili da se kaci
u slot (onda je manje "pokretljiva").
Dragan
razno.443obrada,
RE: ZASTITA DOMACEG SOFTVERA, MREZNE VERZIJE
Kako uspesno zastiti softver koji radi pod mrezom. Stavljati hard lock
na svaku radnu stanicu, ili uopste vezati da radi na odredjenoj stanici,
nije resenje.
Dragan
razno.444vlador,
-> #428, drpr> javi a ti mu kazes :"pa ko vam je kriv..." a to priznaces bas i
> nije neka preporuka i poslovna politika.
A koliko ja znam, nije ni po zakonu.
razno.445nbatocanin,
-> #410, mmitrovic> Da bi se nešto aktiviralo posle nekog intervala (ili bilo
> koja zaštita koja zavisi od vremena) mora da se uradi
> jedno ili više od sledećeg:
Vidim ja da bi ti totalno zalutao ;) Samo kratki i naivni programi
koriste ovakve brojače. Kad imaš velike količine podataka onda se
lako nalazi daleko sigurniji brojač. Ali, pazi sad dodatnu
začkoljicu: zašto bi taj brojač odmah aktivirao minu i počeo naivno
da zapomaže kako je program iskopiran? Zar nije daleko lukavije samo
da mrdne koji svič kako bi ubuduće program po _malo_ za*ebuckavao?
razno.446dejanr,
-> #442, obrada>> Sto se tice hard locka, treba izbrati komponente koje su programibilen i
>> koje se ne mogu lako provaliti. Uz to mozda bi se u kutiju za hard lock
>> mogao ugraditi mehanizam da spali kola ako se nasilno otvori. Mozda i
>> malo eksploziva. Ali samo malo. Uz to i prefarbati da se nevide oznake.
Nema potrebe, dosta je da se uzme neki od industrijskih procesora koji imaju
na sebi EPROM. Većina takvih procesora danas ima mogućnost da se, po upisu
softvera, "sprži" nekakav interni osigurač, i više od spolja ne može da
se pročita upisani softver.
Obzirom da je zaštita u samom čipu, veoma je jaka.
razno.447ikordic,
-> #433, nbatocaninRE: Zaštita
=> > BTNJ. Dovoljno je samo da mu pogrešno proknjižiš 1% naloga
=>
=> Da, to je otprilike najbolji metod zaštite složenih programa: ugurati
=> zaštitu u sredinu logike programa. Tako bi provalnik morao da nauči
žekaj, bre, poenta je da potencijalni kupac ukapira da MORA da ti dođe i
ostavi novce, a ne da gubiš vreme nadigravajući se sa hakerom.
Mislim da je idealna stvar sredina, odn. da pravi opisane greškice ali da
pritom povremeno kaže "alooo, zato što sam ilegalan zato sam i bugovit", ili
slično, uglavnom da čovek ukapira da se pomenute greškice ne dešavaju zato
što je program bugovit, već da tako treba ;)
Odo ja da preradim postojeće sorseve :)
P.S.: U PC.PROG je postojala i tema zaštita. Di se dela? :)
razno.448vitez.koja,
-> #433, nbatocanin#=>> BTNJ. Dovoljno je samo da mu pogrešno proknjižiš 1%
#=> naloga
#=>
#=> Da, to je otprilike najbolji metod zaštite složenih
#=> programa: ugurati
Samo, tada moraš da računaš i na negativnu propagandu...
razno.449kriss,
-> #435, ikordic˙˙ čačkan. Ja sam samo rekao da treba praviti vidljivu štetu,
˙˙ kako bi korisnik/razbivač ukapirao zašto se dešavaju veselja,
˙˙ da ne pripiše štetu nekom bagu programa. Time se
Maksimalno rešenje za koje se ja zalažem je onesposobljavanje
sopstvenog programa tako što će se recimo izmeniti početak da pokazuje
na kraj. Pa dobijemo jedan veliki EXE koji vrati DOS prompt. I tako
dok lopovu ne dosadi da ga vraća sa diskete. Ovim se ne radi ništa
loše - mnogi programi menjaju direktno EXE fajl, pa može i taj. To što
se samouništi je lopovov problem. Naravno ovo sve po random funkciji
koja ne bi trebala da se spušta ispod odnosa 1/3 (u 33% slučajeva se
samouništi). Pa onda dodaj u onih 67% malo lažnih ili nemogućih
rezultata, pa neću da radim i slično.
No nije problem u tome, najlakši deo je napraviti štetu. Mnogo teži
(nemoguć?) deo je napraviti pouzdanu zaštitu.
razno.450kriss,
-> #439, bceklic˙˙ U danasnje vreme upotrebljivost ovakvih programa je skoro
˙˙ beskorisna...
Zavisi, zaista zavisi. Za nekog ko _zna_ za takve programe i ko ume da
napiše _solidnu_ zaštitu, jeste. Za mnoge, mnoge koji to rade laički
misleći da su iskopali Veliki Kanjon nije. Baveći se virusima, shvatio
sam jedno - dokle god bude bilo komjutera, biće i boot virusa koji su
stvar prošlosti, i to već daleke (da ne kažem da je sramota ako se
uvuče neki boot virus ;). Zašto? Zato što će uvek biti novih ljudi
koji pojma neće imati, zato što će se na nekoj zagubljenoj disketi
pojaviti mikelanđelo, i zato što će to biti butabilna disketa sa nekim
specifičnim autoexec-om. E tako će još uvek biti ljudi koji će
podmetati 'format c:' u program i misliće da su taj deo zaštitili.
Zato chk4bomb i slične programe nikako ne bacajte - vršiće još oni
posao dokle god je DOS-a. :)
razno.451cnenad,
-> #442, obradaŁŁŁ Sto se tice zastita, mislim da je najbezbolnija hardverska zastita.
Kako kad, ali zamisli sad za jedno 10 programa kobasicu iza kućišta računara
od HARD LOCK-ova ? Dalje ispostavlja se da ti HL-ovi prave velike probleme,
ili ne radi štampač, ili ne radi drugi HL. Veoma je mutna situacija oko
ovoga.
Uostalom, što bi ja još bio prinuđen da kačim tamo neke kutijice ?
Dalje, koliko je meni poznato i za AUTOCAD i za 3DStudio su potrebni
HL-ovi pa su se opet pojavile razbijene verzije.
razno.452mdrazic,
-> #438, bceklic> 1. Sam ga generise algoritmom koji je ugradjen u program.
> 2. Koristi vec gotov kljuc koji se nalazi kodu samog programa dakle nema
> algoritma za generisanje ali kljuc postoji.
> 3. Klijent unosi kljuc svaki put pri pokretanju programa.
> 4. Kljuc se nalazi u posebnom fajlu.
>
> U sva 4 slucaja kljuc postoji! na toj masini jer program RADI!
> Pozdrav! ŠAĆ
Da pojednostavim proces do kraja: recimo samo da čitam neke delove
memorije koji su recimo jedinstveni za mašinu (nije samo to, ali
zamislite da je tako). Kombinacijom tih podataka i malo dužeg
ključa koji je na disku zapisan (može se lako videti) dobijaš
nekim algoritmom nalik na razvlačenje lisnatog testa novi ključ
koji se ustvari koristi za dekodiranje. Onaj prvi ljuč na disku
menjaš za razne aplikacije/instalacije tako što ga generišeš
posebnim programom koji koristi (iste kao gore) podatke sa mašine
i neki tvoj interni ključ da znaš kojoj implementaciji pripada.
Šta ti možeš otkriti: ključ na disku nije tajna (K1), kodirani podaci
koji se dekodiraju (P1) imaš u formi đubreta na ekranu, nije teško ni
pohvarati šta se sa mašine čita (K2). Na instaliranoj mašini vidiš
i šta treba da se dobije (P2). P2 se dobija tako što prvo K1 i K2
daju u kombinaciji K3 kojim se dekodira P1 u P2. Recimo otkriješ i
K3. Tvoj je zadatak na drugoj mašini da nekako iščitaš K2 na način
kako ja to radim (nije veeliki problem) i da otkriješ: šta da uzmem
za K1 da bih za tuce-dva raznih P1 dobio opet odgovarajuće P2.
Algoritam za prelaz K1+K2-->K3 može čak i da ti je poznat (a nije)
pa opet da ne znaš da rešiš problem.
Milan
razno.453evlad,
-> #449, kriss>> No nije problem u tome, najlakši deo je napraviti štetu. Mnogo teži
>> (nemoguć?) deo je napraviti pouzdanu zaštitu.
Stvarno pouzdano je HardLock sa PAL-om ...
Sve ostalo se može 'razvaliti' pre ili posle ...
E sad se svodi na ono: Da li se isplati razbijati ?
Odnos uloženog vremena i živaca kroz novčanu dobit i ličnu satisfakciju !
Naši zakoni se menjaju vrlo često (knjigovodstveni programi) tako da dok
razbiješ jednu verziju izađe druga itd ... Jedino ako autor koristi uvek
istu zaštitu onda je lako ...
Lično više volim da 'njuškam' po programu da bih nešto naučio ...
Shvatite ovo kao jedno neutralno razmišljanje. žinjenica je da treba program
zaštiti, bez da pravi štetu ! (kojekava formatizovanja brisanja ...)
Izbaciš kopirajt poruku i pustiš ga da falično radi sa napomenom da ima
grešaka, i ukoliko kupac želi ispravnu verziju nek zove tel ... traži ....
To je najpoštenije i prema kupcu i prema hakeru. Lično postavim nekoliko
flag-ova, pa gde se zalomi ... Svaki put na drugo mesto ... Najviše mi se
sviđa kad izađe iz aplikacije i ostavim mu poruku:
Sve što ste danas radili ima sitne greške ...
(inače program se sasvim normalno ponašao O:)
razno.454ognjen,
-> #442, obrada)-> Za korisnika koji koristi takav softver, najveca steta je ako
)-> su mu pogresni podaci. Za to je sam odgovoran.
Bolje je da ipak keze 'Necu da radim sa tobom, kupio si me kod
ilegalaca'. Jer, ako neki posten knjigovodac kupi softver kod
nekog preprodaca, misleci da je sve legalno placeno 10 din, i
program mu radi pogresno, on ce pogledati ko je autor, i njegove
pregrame ce izbegavati i praviti im anti-reklamu.
razno.455mdrazic,
-> #443, obrada> Kako uspesno zastiti softver koji radi pod mrezom. Stavljati hard lock
> na svaku radnu stanicu, ili uopste vezati da radi na odredjenoj stanici,
> nije resenje.
Jedna je mogućnost da znaš na kom si serveru i to kontrolišeš. Druga je
mogućnost da ispituješ svaku stanicu i/ili mrežnu karticu. Treća je
mogućnost da im podeliš 50 hard-lockova. žetvrta mogućnost je da ako pišeš
softver koji nikom drugom ne treba ili je malo potencijalnih korisnika,
zaštita ti i ne treba. Peta mogućnost je da prodaš paket sa svim pravima
na dalju prodaju za veće pare (kao 4dos Nortonu) pa posle izdaš 'novu
verziju'.
Treba nekako vezati mušterije održavanjem softvera koje može raditi samo
onaj ko poznaje projekt.
Milan
razno.456mdrazic,
-> #445, nbatocanin> da zapomaže kako je program iskopiran? Zar nije daleko lukavije samo
> da mrdne koji svič kako bi ubuduće program po _malo_ za*ebuckavao?
recimo umesto seek da počne da koristi moćnu komandu locate :)))
Milan
razno.457mdrazic,
-> #447, ikordic> žekaj, bre, poenta je da potencijalni kupac ukapira da MORA da ti dođe i
> ostavi novce, a ne da gubiš vreme nadigravajući se sa hakerom.
Da je hteo, ostavio bi novce odmah u zamenu za miran san i održavanje.
A sa hakerom gubi vreme on, a ne ti.
> Mislim da je idealna stvar sredina, odn. da pravi opisane greškice ali da
> pritom povremeno kaže "alooo, zato što sam ilegalan zato sam i bugovit",
> ili slično, uglavnom da čovek ukapira da se pomenute greškice ne dešavaju
> zato što je program bugovit, već da tako treba ;)
Ili, program registruje da je 'nešto trulo u državi Danskoj', nastavi da
radi ali pri sledećim startovanjima paketa prvo izlista da je u nekom od
ranijih seansi otkrio nešto strašno, što neizostavno zahteva intervenciju
stručnog lica, pljuneš neki petocifreni kod greške i obaveštenje da se
ne garantuje dalji korektan rad paketa. Ono registrovanje 'truleži' ide
po nekom rnd. momentu da se hakeri malo načekaju.
Milan
razno.458dejanr,
-> #451, cnenad>> Dalje, koliko je meni poznato i za AUTOCAD i za 3DStudio su potrebni HL-ovi
Samo za evropske verzije. U Americi su probali da "uvale" ACAD sa dongle-om,
i na to je valjda IEEE rekao da takve programe neće uopšte da uzme u
razmatranje, a kamoli da preporuči svojim članovima. Potom se munjevito
pojavio nezaštićeni ACAD.
Uzgred, dongle nije savršena zaštita zato što se obično "kalemi" na program.
Ljudi napišu program, onda od nekoga kupe dongle i prateće biblioteke i
nekako ih ulinkuju, najčešće "površinski". Zato se to posle lako uklanja.
Ako bi neko u startu pisao program tako da bude zaštićen dongle-om, naročito
nekim novijim koji može da procesira podatke, bilo bi jako teško razbiti
zaštitu. Naravno, ne nemoguće, ali jako teško.
Lično mislim da je sasvim dovoljna neka zaštita koja će da spreči da
disketa prekopirana sa DISKCOPY ili COPYIIPC bude operativna. Dalje se
truditi nema svrhe - 99% potencijalnih pirata biće zaustavljeno, a onaj
1% koji ume da razbije neku elementarnu zaštitu (ili da nađe nekoga ko
bi to uradio za njih) verovatno će razbiti i neku znatno složeniju.
razno.459bceklic,
-> #450, kriss> Zavisi, zaista zavisi. Za nekog ko _zna_ za takve programe i ko
> 'format c:' u program i mislice da su taj deo zastitili. Zato
> chk4bomb i slicne programe nikako ne bacajte - vrsice jos oni
> posao dokle god je DOS-a. :)
I najgori pisac trojanca zna da svoje 'delo' kompresuje nekim od
izvrsnih kompresora i po potrebi zastiti nekim od SW programa.
Ovo dovodi do neupotrebljivosti programa kao sto je cjk4bomb.
Na to sam mislio...:)
Naravno to ni u kom slucaju ne znaci da ovakve programe ne treba
koristiti. Naprotiv, pokazalo se da su moderni pisci trojanaca
lose obradili tematiku pa je njihove proizvode zbog toga moguce
detektovati.
Pozdrav!
razno.460bceklic,
-> #451, cnenad> Dalje, koliko je meni poznato i za AUTOCAD i za 3DStudio su
> potrebni HL-ovi pa su se opet pojavile razbijene verzije.
Obican patcher po izvrsnom fajlu i hard lock puca (nazalost).
Primeri za to su gore navedeni programi...
POzdrav!
razno.461bceklic,
-> #452, mdrazic> Sta ti mozes otkriti: kljuc na disku nije tajna (K1), kodirani
> podaci koji se dekodiraju (P1) imas u formi dubreta na ekranu,
> nije tesko ni pohvarati sta se sa masine cita (K2). Na
> instaliranoj masini vidis i sta treba da se dobije (P2). P2 se
> dobija tako sto prvo K1 i K2 daju u kombinaciji K3 kojim se
> dekodira P1 u P2. Recimo otkrijes i K3. Tvoj je zadatak na
> drugoj masini da nekako iscitas K2 na nacin kako ja to radim
> (nije veeliki problem) i da otkrijes: sta da uzmem za K1 da bih
> za tuce-dva raznih P1 dobio opet odgovarajuce P2. Algoritam za
> prelaz K1+K2-->K3 moze cak i da ti je poznat (a nije) pa opet
> da ne znas da resis problem.
Na masini na kojoj je program instaliran mogu da dodjem do:
K1,K2,(naravno i K3 ako se poznaju prva dva imam i K3)
P1 (normalno..)
P2 (DOBIJA SE POSREDNO...)
Dakle mogu da dodjem do svega...(O tome sam ti govorio u prethodnoj poruci)
Dakle posedujem sve sto mi je potrebno da program uspesno radi na
toj masini. E sad, cini mi se da ti hoces da me pitas kako cu naterati
taj isti program da radi na bilo kojoj masini?
Izvrsicu potrebne izmene u tvom programu i naterati ga da radi na bilo
kojoj masini. Na taj nacin tvoj program nece raditi ono za sta je
predvidjen vec sasvim suprotne stvari.
Sam algoritam je sasvim dobar ali je u potpunosti bezvredan ako ja mogu
da pridjem tvom kodu. Ovo je bio nedostatak svih zastita na koje sam do
sada nailazio. PC GUARD pruza i jednu i drugu zastitu.
Pozdrav!
razno.462cira,
-> #437, spantic Ja sam jedan od tih za "dlaku", ali i onako po propozicijama ne bih
mogao da ucestvujem (samo oni koji su presli polovinu studija imaju
pravo ucesca, i to samo dva puta). Nasa ekipa je upala u gornju polovinu
vecinom zbog neodgovarajuceg test primera, tako da je prva bila ekipa
iz Ukrajine (valjda). Najtezi zadatak je bio :
Dato je m grana i n cvorova. Naci takav raspored grana i cvorova da
zbir kvadrata stepena cvorova bude maksimalan (stepen cvora je broj
grana koji ulazi u cvor). Na takmicenju su provaljene dve metode, koje
je (za najbolje resenje) potrebno udruziti i uzeti najbolji rezultat.
Nasi su uzeli samo drugu metodu (mada su otkrili i prvu), a test primer
je bio namesten za prvi postupak.
Zalim sto zadatak nisam bolje definisao "al' i ja sam ga tek onomad cuo".
razno.463obrada,
-> #453, evlad> Stvarno pouzdano je HardLock sa PAL-om ...
> Sve ostalo se moze 'razvaliti' pre ili posle ...
Ali obavezno bar PAL sa registrima. 16L8 se ili slicni se cas posla izvrti
i moze se zameniti ovbcinim EPROM-om, s obzirom na namenu.
razno.464obrada,
-> #458, dejanr> Licno mislim da je sasvim dovoljna neka zastita koja ce da spreci da
> disketa prekopirana sa DISKCOPY ili COPYIIPC bude operativna.
Tu je problem ako se osteti originalna instalaciona disketa. Onda
korisniku ne omogucavas da rezervne kopije originalnih disketa.
Sve to nije problem ako je korisnik u tvojoj blizini, ali ako je malo dalje
od tebe, onda moras da mu saljes diskete ili a ides do njega da se
uveris da li su diskete stvarno neispravne.
U principu, nije lose zastiti instaliran softver, tako da ga ne vredi
uzimati sa harda.
Pitanje zastite i stepena zastite je stvar konpromisa:
1. Koliko je program upotrebljiv za siru publiku (da li je pozeljno
zastititi)
2. Komfora i sigurnosti rada korisnika sa zasticenim softverom
3. Cene razvoja zastite, kao i odnosa cene prema zasticenom programu
Mislim da je najbolja zastita svest korisnika, koja ipak postoji kod onih
koji se ozbiljno bave poslom za koji su narucili program. Uostalom, ponekad
i nije lose da ukradeni program radi makar kao demo program. Neka vrsta
besplatne reklame.
Piratske vezijame domaceg softvera (pre svega knjigovodstvenog),
uglavnom koriste (od kojih ozbiljno rade) ljudi koji pocinju sa poslom.
Imaju relativno velike izdatke za racunar, stampac, pa jos i program.
Medjutim, vremenom...
Valjda ce doci i taj dan.
Dragan
razno.465obrada,
-> #446, dejanr> Nema potrebe, dosta je da se uzme neki od industrijskih procesora
> koji imaju na sebi EPROM. Vecina takvih procesora danas ima
> mogucnost da se, po upisu softvera, "sprzi" nekakav interni
> osigurac, i vise od spolja ne moze da se procita upisani softver.
I jos ako procesor ili neki PLD obavlja neke operacije (sabiranje...)
onda je zastita teska za razbijanje. Mnogo je lakse napraviti HL, nego
program koji zaobilazi zastitu.
Mali problem je sto te operacije rade sporije, ali ako se koriste povremeno
onda je to zanemarljivo usporenje.
Jedino ostaje problem prevelikog broja HL-ova.
razno.466max.headroom,
-> #431, mdrazic> u platama prebaciš nekih 200 dinara od Pere Miki, pa da
> vidiš štete koju papanu nisi ti napravio veš Pera (još
> kada bi znao koji su jači tipovi u
Princip: uporediš datume i aktiviraš svič mesec dana pred kraj
poslovne godine. Onda svi reporti počnu da izbacuju poruku "Plati
softver, pa će i reporti biti OK" umesto podataka. žovek zna šta mu je
raditi u takvom slučaju: ili plati i nastavi sa radom, ili ne plati pa
mora da juri novi program da bi uneo podatke i odštampao potrebno.
razno.467mdrazic,
-> #461, bceklic> Dakle posedujem sve sto mi je potrebno da program uspesno radi na
> toj masini. E sad, cini mi se da ti hoces da me pitas kako cu naterati
> taj isti program da radi na bilo kojoj masini?
>
> Izvrsicu potrebne izmene u tvom programu i naterati ga da radi na bilo
> kojoj masini. Na taj nacin tvoj program nece raditi ono za sta je
> predvidjen vec sasvim suprotne stvari.
Ako će da radi baš suprotne stvari, zaštita je bila uspešna :)
Nego, problem ti je u tome što se SVE procedure iz menija startuju sa
samo jednog mesta pomoću makro operatora u Clipperu (zamisli ga kao
run-time prevodilac). Na tom jednom mestu, sa jednim ključem koji
nažalost ne znaš, treba 20tak raznih kodiranih imena procedura
dekodirati u nešto što prevodilac razume. Baš zbog ovog uskog grla
je problem patch-ovati program. Šta patchovati? Znači problem se
svodi na otkrivaje ključa (generator nije u programu) koji še
više (poznatih) đubreta dekodirati u isti broj upotrebljivih imena
procedura.
> Sam algoritam je sasvim dobar ali je u potpunosti bezvredan ako ja mogu
> da pridjem tvom kodu. Ovo je bio nedostatak svih zastita na koje sam do
žak da ti i dam source (samo da brže zaključiš kako program radi, ne da
menjaš sistem pozivanja procedura, pa prevedeš) gornji problem ti ostaje
nerešen pošto je generisanje ključa na drugom mestu.
Milan
razno.468spantic,
-> #462, cira> pravo ucesca, i to samo dva puta). Nasa ekipa je upala u gornju polovinu
> vecinom zbog neodgovarajuceg test primera, tako da je prva bila ekipa
To "gornja polovina" je koje mesto? :)
razno.469jkpbvk,
Dali neko zna kako ubaciti gif,pcx ili bilo koji tip formata slike u jedan
exe fajl,znaci recimo napraviti jednostavan program koji bi prikazao sliku
koja bi bila u samom fajlu a ne ucitana iz drugog fajla.
razno.470andrejt,
-> #469, jkpbvk__> Dali neko zna kako ubaciti gif,pcx ili bilo koji tip formata slike u
__> jedan exe fajl,znaci recimo napraviti jednostavan program koji bi
__> prikazao sliku koja bi bila u samom fajlu a ne ucitana iz drugog fajla.
Koristiti neku od verzija Graphics Workshopa :)
razno.471bceklic,
-> #467, mdrazic>> Izvrsicu potrebne izmene u tvom programu i naterati ga da radi
>> na bilo kojoj masini. Na taj nacin tvoj program nece raditi
>> ono za sta je predvidjen vec sasvim suprotne stvari.
>
> Ako ce da radi bas suprotne stvari, zastita je bila uspesna :)
Ha, razumeli smo se :)
Naravno neke stvari bi bile eliminisane neke dodate itd. sve u cilju
optimizacije koda i brzeg rada, zastita je uspesna sve dok radi...:)
> Nego, problem ti je u tome sto se SVE procedure iz menija
> startuju sa samo jednog mesta pomocu makro operatora u Clipperu
> (zamisli ga kao run-time prevodilac). Na tom jednom mestu, sa
> jednim kljucem koji nazalost ne znas, treba 20tak raznih
> kodiranih imena procedura dekodirati u nesto sto prevodilac
> razume. Bas zbog ovog uskog grla je problem patch-ovati
> program. Sta patchovati? Znaci problem se svodi na otkrivaje
> kljuca (generator nije u programu) koji se vise (poznatih)
> dubreta dekodirati u isti broj upotrebljivih imena procedura.
Jasna mi je poenta, pretpostavljam da makro prvo izvrsi dekryptovanje
imena procedura a po zavrsetku rada pozvane procedure ponovo kryptuje
nazive procedura da pri ponovnom pozivu makroa ne bi dobio pocetno
djubre ukoliko postoji samo jedna kopija naziva procedura u memoriji.
Sve ovo za sam proces razbijanja zastite i nije toliko bitno.
Kljuc na masini na kojoj program radi nije problem otkriti, posle
toga se pristupa sredjivanju samog programa, bilo da se otkriju
dekriptovani nazivi procedura a zatim patchuju preko starih
(kryptovanih) i u samom programu iskljuci procedura za dekryptovanje
naziva, bilo da se primeni neki drugi nacin, zastita pada...
> Cak da ti i dam source (samo da brze zakljucis kako program
> radi, ne da menjas sistem pozivanja procedura, pa prevedes)
> gornji problem ti ostaje neresen posto je generisanje kljuca na
> drugom mestu.
Kao sto rekoh vec ranije sam algoritam za generisanje kljuca nije
ni potreban. Potreban je samo jedan kljuc za verziju koja radi
a potom..
Pozdrav...
razno.472sslavko,
-> #464, obrada>> Tu je problem ako se osteti originalna instalaciona
>> disketa. Onda korisniku ne omogucavas da rezervne kopije
>> originalnih disketa.
A da li Microsoft vodi računa o tome šta će se desiti ako oštetiš
originalne diskete? Oni doduše nemaju takvih zaštita ali mislim da
to ide isključivo na dušu korisniku. Uostalom on će taj program
instalirati jednom i sledeći put, eventualno, u slučaju havarije diska
ili promene diska-računara. A u međuvremenu neka disketu ne drži u
frižideru i sl.
razno.473maksa,
-> #472, sslavko>> A da li Microsoft vodi računa o tome šta će se desiti ako
>> oštetiš originalne diskete?
Vodi računa, i to tako što ti, ne samo dozvoljava, nego i
eksplicitno kaže da napraviš kopiju instalacionih disketa.
razno.475cnenad,
-> #473, maksaŁŁŁ Vodi računa, i to tako što ti, ne samo dozvoljava, nego i
ŁŁŁ eksplicitno kaže da napraviš kopiju instalacionih disketa.
I da se sa kopija izvrši instalacija ;)
razno.476mdrazic,
-> #471, bceklic> Jasna mi je poenta, pretpostavljam da makro prvo izvrsi dekryptovanje
> imena procedura a po zavrsetku rada pozvane procedure ponovo kryptuje
> nazive procedura da pri ponovnom pozivu makroa ne bi dobio pocetno
> djubre ukoliko postoji samo jedna kopija naziva procedura u memoriji.
Nije tako. Makro samo startuje dekriptovanu proceduru, a ako nije
dobro dekriptovano startuje nepostojeću proceduru i tras. Poenta i
jeste u tome što je ovde usko grlo koje startuje sve procedure i
što tu nema nikakvih if-ova.
Milan
razno.477maksa,
-> #475, cnenad>> ŁŁŁ Vodi računa, i to tako što ti, ne samo dozvoljava, nego i
>> ŁŁŁ eksplicitno kaže da napraviš kopiju instalacionih disketa.
>>
>> I da se sa kopija izvrši instalacija ;)
E, da, i to. ;)
razno.479bceklic,
-> #476, mdrazic>> Jasna mi je poenta, pretpostavljam da makro prvo izvrsi
>> dekryptovanje imena procedura a po zavrsetku rada pozvane
>> procedure ponovo kryptuje nazive procedura da pri ponovnom
>> pozivu makroa ne bi dobio pocetno djubre ukoliko postoji samo
> jedna kopija naziva procedura u memoriji.
>
> Nije tako. Makro samo startuje dekriptovanu proceduru, a ako
> nije dobro dekriptovano startuje nepostojecu proceduru i tras.
> Poenta i jeste u tome sto je ovde usko grlo koje startuje sve
> procedure i sto tu nema nikakvih if-ova.
Nisam ni ja bas Ljubisa Trgovcevic...;)
Poznato mi je da Clipper vrsi prevod macroa u toku izvodjena programa
i ono je bila moja pretpostavka na osnovu podataka koje si izneo.
Ovo je jos jednostavniji slucaj.
Dakle sam makro nije nikakav problem i ne treba ga dirati. Treba mu
samo obezbediti ispravnu (tacno dekryptovanu) listu procedura i sve ce
raditi kako treba. O tome da je do ove liste lako doci na masini na kojoj
program radi vec sam govorio pa da se ne ponovljam.
POzdrav!
razno.480valeksa,
Imam jednu molbu.
Imam fajl u kome su numeričke vrednosti koje odgovaraju intenzitetu
osvetljenja skenirane tačke na papiru. Treba mi program ili bilo
kakva informacija, kojim ovaj niz tačaka pretvaram u bilo koji
standardni grafički format.
Duzina jedne linije je 1200 bytes (1 byte po pixelu).
Pozdrav.
razno.481mdave,
Subject: Free Compilers
Last-modified: 1994/11/16
Version: 7.0
-------------------------------------------------------------------------------
Catalog of Free Compilers and Interpreters.
-------------------------------------------------------------------------------
Copyright (c) 1993, 1994, David Muir Sharnoff, All Rights Reserved
Copyright (c) 1994, Steven Allen Robenalt, All Rights Reserved
This list catalogues freely available software for language tools, which
includes the following: compilers, compiler generators, interpreters,
translators, important libraries, assemblers, etc. -- things whose user
interface is a language. Natural language processing tools may also
be included.
compiler.ziprazno.482mdave,
Subject: Modula-2 FAQ
Last-modified: 1994/11/17
Version: 1.10
Originally-By: mgallo@iptech.com (Mike Gallo)
Maintained-By: randy@psg.com (Randy Bush)
Copyright 1992-4, M Gallo and R Bush. All rights reserved. May be
distributed for free only in toto, including this notice.
CONTENT
1) What is comp.lang.modula2?
2) What is Modula-2?
3) What about Modula-2 standardization?
4) What are Oberon and Oberon-2?
5) What about Modula-3, Object Oberon, and Seneca?
6) Where can I find implementations of Modula-2?
7) Where can I find implementations of Oberon[-2]?
8) Where can I find interesting libraries and sources?
9) Some popular FTP sites
mod-2.ziprazno.483mdave,
Newsgroups:
comp.lang.c,comp.lang.c++,comp.lang.misc,comp.lang.pascal,comp.unix.
programmer,comp.programming
From: tomas@softwell.se
Subject: Re: Animals V1.00 - AI program that guesses the animals player has
thou
ght of!
Message-ID: <1994Nov16.121216.425@softwell.se>
Organization: SoftWell AB
References: <392q8j$nrh@oak63.doc.ic.ac.uk>
<GENE.94Nov7131023@insti.physics.sun
ysb.edu> <3a0l4e$2eb@nutmeg.csv.warwick.ac.uk>
Date: Wed, 16 Nov 1994 12:12:16 GMT
Lines: 28
In article <3a0l4e$2eb@nutmeg.csv.warwick.ac.uk> csusb@csv.warwick.ac.uk (Jules
) writes:
>In article <GENE.94Nov7131023@insti.physics.sunysb.edu>,
> gene@insti.physics.sunysb.edu (Eugene Tyurin) writes:
>>>>> "PB" == Predrag Bjelanovic <pb1@doc.ic.ac.uk> writes:
>>
>> PB> It's a (small) attempt on A(rtificial)(un)I(nteligence) -
>> PB> the computer tries to guess an animal the player has thought
>> PB> of, by asking yes/no type of questions.
>>
>>What? You wrote it in Pascal? Should have used Lisp instead (as I
>>did when I wrote it).
>>--
>
>If you can find a copy, there is a version of it in BASIC in the back of the
>Sinclair ZX Spectrum user's manual.
>Now that's ancient history for you...
>
I think this program has been written in several flavors. I have written
it in: BASIC, from a Creative Computing book, just to get it running; C,
while learning C; C with a tree structured database; C with database on
disk using record-locking to making it multi-user; client-server in C
using Unix System V IPC; client-server in C using UDP.
--
Tomas Ruden, tomas@softwell.se | Opinions expressed above are my
SoftWell AB, Box 47007, 100 74 Stockholm | own and is not necessarily shared
SWEDEN | by SoftWell AB.
ph: +46 8 19 52 90, fax: +46 8 19 52 53 | "For a nice date: call strftime(3C)"
razno.484mdave,
From: ichudov@wiltel.com (Igor Chudov)
Newsgroups:
comp.lang.c,comp.lang.c++,comp.lang.misc,comp.lang.pascal,comp.unix.
programmer,comp.programming
Subject: Re: Animals V1.00 - AI program that guesses the animals player has
thou
ght of!
Followup-To:
comp.lang.c,comp.lang.c++,comp.lang.misc,comp.lang.pascal,comp.unix
.programmer,comp.programming
Date: 16 Nov 1994 15:43:37 GMT
Organization: WilTel
Lines: 32
Message-ID: <3ad9b9$a1u@gateway.wiltel.com>
References: <392q8j$nrh@oak63.doc.ic.ac.uk>
<GENE.94Nov7131023@insti.physics.sun
ysb.edu> <3a0l4e$2eb@nutmeg.csv.warwick.ac.uk>
<1994Nov16.121216.425@softwell.se
>
Reply-To: igor_chudov@wiltel.com (Igor Chudov)
X-Newsreader: TIN [version 1.2 PL2]
tomas@softwell.se wrote:
: In article <3a0l4e$2eb@nutmeg.csv.warwick.ac.uk> csusb@csv.warwick.ac.uk (Jul
es) writes:
: >In article <GENE.94Nov7131023@insti.physics.sunysb.edu>,
: > gene@insti.physics.sunysb.edu (Eugene Tyurin) writes:
: >>>>> "PB" == Predrag Bjelanovic <pb1@doc.ic.ac.uk> writes:
: >>
: >> PB> It's a (small) attempt on A(rtificial)(un)I(nteligence) -
: >> PB> the computer tries to guess an animal the player has thought
: >> PB> of, by asking yes/no type of questions.
: >>
: >>What? You wrote it in Pascal? Should have used Lisp instead (as I
: >>did when I wrote it).
: I think this program has been written in several flavors. I have written
: it in: BASIC, from a Creative Computing book, just to get it running; C,
: while learning C; C with a tree structured database; C with database on
: disk using record-locking to making it multi-user; client-server in C
: using Unix System V IPC; client-server in C using UDP.
I wrote it in the special dialog language for which I wrote a compiler (to
test the compiler:), and also in C to make use of my own user interface
library.
Isn't the idea of this program great? It is so simple and so much fun....
----------------------------------------------------------------------------
Igor Chudov, Resource Solutions Intl office (918)588-2309
Consultant, for WilTel. home (918)585-5862
E-mail: igor_chudov@wiltel.com
http://m-net.arbornet.org/~ichudov
1819 South Jackson #32-P Tulsa OK 74107
f u cn rd ths, u cn gt a gd jb n cmptr prgrmmng.
razno.485mdave,
From: thant@ahclem.rd.wdi.disney.com (Thant Tessman)
Newsgroups:
comp.lang.misc,comp.lang.perl,comp.lang.scheme,comp.lang.tcl,comp.la
ng.python
Subject: Re: What language would you use?
Date: 18 Nov 1994 00:21:14 GMT
Organization: WDI
Lines: 21
Message-ID: <3ags1qINNhtt@ford.is.wdi.disney.com>
References: <39b7ha$j9v@zeno.nscf.org>
<JGOODSEN.94Nov10173231@trinidad.radsoft.
com> <id.L6NE1.1W5@nmti.com> <3a68n9$15j@avocado.pc.helsinki.fi>
<3aagv3$pcp@jab
ba.cybernetics.net>
In article <3aagv3$pcp@jabba.cybernetics.net>, ckp@cybernetics.net
writes:
> I've been taking a stab at some class libraries, to try to make some
> of the interesting software around more reusable. Before I put in
> too much effort, I would like to make sure that C++ is not a stupid
> choice for doing it. [...]
C++ is often the correct decision, but the factors that go into a
decision leading to the adoption of C++ are usually driven by politics
and/or the market (and/or ignorance), not by anything inherently
recommendable about C++.
If your concern is packagability alone, I think the designers of SML
and its functors had the best grasp of the issues I've seen. I'm told
Modula-3 is good that way too (and Modula-3 is more OO-ish than SML),
but I don't have any experience with it myself. The designers of
Dylan have also expressed their intent to facilitate modular software.
thant
------------------------------
razno.486mdave,
Newsgroups: comp.lang.misc
From: howardp@aston.ac.uk (P HOWARD)
Subject: Your perfect language.
Message-ID: <CzHD3v.Kon@aston.ac.uk>
Sender: usenet@aston.ac.uk
Reply-To: howardp@aston.ac.uk
Organization: Aston University
Date: Fri, 18 Nov 1994 20:33:31 GMT
Lines: 41
I've been avidly following this newsgroup for some time, and have noted
with interest the conversation about language syntaxes. Well, these are
really nothing more than quibbles (IMHO). So I ask this: what would you
like to see in your dream programming language? I'm not just talking about
minor syntactic points (though syntax plays a part, of course). I'm talking
about semantic concepts as well. So, it's an open question - what do you
say? What groundbreaking idea do you feel has been left out of the languages
you use, and might do better to include it? Be as theoretical (or otherwise)
as you like. Any programming paradigm: procedural, functional, logic,
object-oriented. What are your proposals?
If you like, post your own ideas, perhaps as an extension to a language you
know. Even include some supporting syntax features, perhaps.
Here's one from me: why do languages hold all their variables in main memory?
Variables held on disk, but behaving in an identical manner to ordinary
variables - anything from a single integer to an enormous array of records
(ie a database!). This would remove the need for clumsy IO routines that
simulate the same effect. I should say that this idea isn't mine - it's due
to D.A. Watt in "Programming Language Concepts and Paradigms."
Well, it's just an idea, and not fully developed. There needs to be a way
to declare such variables, or to declare that this program will access a
variable that is already existing. And then there's the mutual exclusion
problem if you're multitasking.
What are your thoughts, people?
---
=========================================================================
..Paul Howard, Computing Science, Aston University, Birmingham, ENGLAND. .
..Internet: howardp@aston.ac.uk .
-------------------------------------------------------------------------
..The opinions expressed in this message are my own, unless something's .
..happening that I don't know about... .
-------------------------------------------------------------------------
.. computer::sanity->insanity->total_despair .
.. || Internally defined... .
=========================================================================
razno.487mdave,
POPL '95 Advance Program
22nd Annual ACM SIGACT-SIGPLAN
Symposium on
PRINCIPLES OF PROGRAMMING LANGUAGES (tm)
San Francisco, California
22-25 January 1995
Sponsored by ACM SIGPLAN and SIGACT
........
Pročitajte...ima i pozivnica. ;)
popl.ziprazno.488djelovic,
> 13.481 razno mdave 25.11.Pet 18:41 compiler.zip
> 13.482 razno mdave 25.11.Pet 18:41 mod-2.zip
> 13.483 razno mdave 25.11.Pet 18:41
> 13.484 razno mdave 25.11.Pet 18:42
> 13.485 razno mdave 25.11.Pet 18:42
> 13.486 razno mdave 25.11.Pet 18:42
> 13.487 razno mdave 25.11.Pet 18:42 popl.zip
Hvala na zanimljivim prilozima. Mogu li samo da zamolim da sledeci put
kada ih ostavljas skines zaglavlje i potpis sa svake poruke? Tako ce u porukama
biti mnogo manje "suma", pa ce biti lakse za citanje.
razno.489jkpbvk,
Pitah pre jedno mesec dana ali ajde jos jednom,
dakle zanima me kako se ubacujslike (gif,pcx ...) u jedan exe fajl.
Koje su to biblioteke (ako ih ima),isto tako me zanima i za muziku.
Primera ima mnogo,najcesce demoa i raznih trainera za igre gde se u jednom
fajlu mogu videti i flicovi,moduli,gifovi .. , znaci moguce je.
Ima na sezamu biblioteka za C za rad sa gifovima,ako neko zna dali je
moguce sa njom uraditi to zamolio bih ga da pomogne.
razno.490omega,
-> #489, jkpbvkŢ dakle zanima me kako se ubacujslike (gif,pcx ...) u jedan exe fajl.
Hint: BGIOBJ
razno.491vitez.koja,
-> #490, omega#=> Ţ dakle zanima me kako se ubacujslike (gif,pcx ...) u
#=> jedan exe fajl.
#=>
#=> Hint: BGIOBJ
Hint: ne valja ti hint.
Kao što je već nţN puta rečeno, na kraj .exe fajla može se
upisati bilo šta, i ti podaci se kasnije mogu koristiti.
Postoji i drugi način (BC), a to je binobj, koji će bilo šta
(tekst, sliku, arhivu, ...) prevesti u .obj modul koji se
uključuje u tvoj program prilikom linkovanja, čime se omogućava
da podacima pristupiš direktno iz programa preko labele, umesto
da ih 'ručno' čitaš iz fajla.
Ovo drugo rešenje je za male količine podataka lepo i elegantno,
ali ako imaš npr. tekst od 1 MB koji hoćeš da ubaciš u .exe fajl
nije upotrebljivo.
E, da. bgiobj služi za ubacivanje BGI objekata (drajveri,
fontovi, ?) u izvršni fajl.
razno.492omega,
-> #491, vitez.kojaŢ#=> Hint: BGIOBJ
Ţ
Ţ Hint: ne valja ti hint.
Ne bih bas rekao. Ja sa tim radim stalno i funkcionise.
Ţ Postoji i drugi nacin (BC), a to je binobj, koji ce bilo sta
U BC-u NE postoji binobj. Samo u BP-u.
Ţ E, da. bgiobj sluzi za ubacivanje BGI objekata (drajveri,
Ţ fontovi, ?) u izvrsni fajl.
I nista drugo ne moze da se ubaci? Vazi ako ti tako kazes.....NOT :>
razno.493jkpbvk,
-> #491, vitez.koja>< Kao sto je vec nţN puta receno, na kraj .exe fajla moze se
>< upisati bilo sta, i ti podaci se kasnije mogu koristiti.
Bojim se da te nisam dobro razumeo,znaci uzmem neki exe fajl,
editujem ga,ubacim mu na kraj fajla sta god hocu i pozovem
taj deo kad hocu.
Kako ?? :))
>< Postoji i drugi nacin (BC), a to je binobj, koji ce bilo sta
>< (tekst, sliku, arhivu, ...) prevesti u .obj modul koji se
>< ukljucuje u tvoj program prilikom linkovanja, cime se omogucava
>< da podacima pristupis direktno iz programa preko labele, umesto
>< da ih 'rucno' citas iz fajla.
To mi vec zvuci logicnije samo sto malopre probah sa par bmp-ova i
pcx-ova i nista,u kom formatu treba da bude slika da bi je bgiobj
progutao.
razno.494vision,
-> #493, jkpbvk>> Pitah pre jedno mesec dana ali ajde jos jednom,
>> dakle zanima me kako se ubacujslike (gif,pcx ...) u jedan exe fajl.
>> Koje su to biblioteke (ako ih ima),isto tako me zanima i za muziku.
HI :). Ja bih prvo napravio .C za citanje grafickog formata i prebacivanje
istog file-a u ukran (ili u zvucnik :)), e zatim bih napravio drugi
program - takozvani instalacioni, on ce u stvari da pita koji file treba sa
kojim file-om da se ulinkuje :), npr: giflink ime.exe slika.gif. Ovaj program
bi mi radio sledece: Prvo program bi uzeo duzinu .exe file-a (4 byte-a),
iskopirao bi mi ceo file (.gif, .wav, ...) u .exe file, zatim u .exe file
bih na kraju upisao ona 4 byte-ova :).
E sada pre citanja sa file-a (iz programa ime.exe) znaci nemas vise
slika.gif vec argv[0], onda ides sa fseek(in, -4L, SEEK_END) i procitas ona 4
byte-a sa fread(&sz, 4, 1, in), onda ides sa fseek(in, sz, SEEK_SET) i tu ti je
pocetak slike.gif file-a.
P.S. Za neupucene :), sve ovo je na C-u :)).
Da ne bi ostalo sve ovo crno slovo na papiru (u comp-u ne bas :)), evo ti na
source za nesto ..... :)
inwavgif.ziprazno.495dejanr,
Kako se programira na sistemu koji ima malo memorije? NOVOSTI/microb 4.2834.
razno.496vision,
.LSP problem. Dali neko oce da mi kaze zasto primer 1. ne radi, a
drugi radi?? Ovo mi treba zbog crtanja npr. mreze sa while-om i promenljivom
<<i>>, ali izgleda "i" je kriva :).
///////////////////////////////////////////
(setq i 1)
(setq x1 '(i 0))
(setq y1 '(i 9))
(command "line" X1 Y1 "")
///////////////////////////////////////////
(setq x1 '(1 0))
(setq y1 '(1 9))
(command "line" X1 Y1 "")
///////////////////////////////////////////
razno.497superhik,
Jel može neko da me uputi na poruke gde je objašnjeno kao se
pravi probot!?
razno.498mjova,
-> #495, dejanr> Kako se programira na sistemu koji ima malo memorije?
> NOVOSTI/microb 4.2834.
na 'kant' ;)
razno.499mboban,
-> #497, superhik**> Jel može neko da me uputi na poruke gde je objašnjeno kao se
**> pravi probot!?
Uff.. Ne znam tačno. Lupi LIST pascal /a/t i nađi gde je zakačen fajl
probots.arj pa dalje prati diskusiju...
razno.500spece,
HI
imam jedan problem
treba da uradim ozbiljnu bazu (ne preveliku, ali 'preciznu') -
radi se o katalogizaciji nekih umetnickih predmeta (kartoni sa
memo poljima, itd, sa dosta pretrazivanja i muzickim zeljama
tipa 'ako trazim ovo ili ono, hocu da nadjem i to...'). Polja
na kartonima ima nekih 30 komada. Program treba da radi na DOSu
pod mrezom. Ne zahteva se arhiviranje slika (samo tekstualnih
podataka). Ide se do brojke od maksimalno 10 000 komada
(rekorda). Baza bi bila staticna (samo pretrazivanje), malo
dodavanja.
Problem je to, sto bi to trebalo i naplatiti. Posto necu da
napravim damping cene ;) interesuje me koliko se moze
tu traziti od drustvene firme za neki takav posao? Dali da
covek trazi preduljam, i ako da, koliko % ?
e da, ponudu treba da dam sto hitnije...
razno.501nbatocanin,
Sveže vesti sa strane: moj prijatelj je u timu koji testira beta
verziju novog Microsoft proizvoda: Visual FoxPro! Po njegovim rečima,
radi se o izuzetnom proizvodu i (navodno) to Microsoft još uvek drži
u strogoj tajnosti. Novi Fox ima niz novosti, od kojih su
najznačajnije da je jezik drastično izmenjen. Postoji puna
implementacija OOP-a. Ono što se najviše svidelo mom prijatelju je
novi pristup bazi podataka. Sad se menja terminologija i uvodi se
pojam "table" koji je DBF datoteka i "database" koji predstavlja
skup tabela. Naime, sada pored standardnog USE/REPLACE pristupa,
postoji mogućnost definisanja "pogleda" koji se iz programa koriste
kao jedna tabela, a u stvari se sastoje iz više DBF tabela koje su
povezane relacijama. Takođe postoji mogućnost korišćenja trigera
prilikom raznih operacija sa bazom podataka. Na primer, triger
funkcija se aktivira prilikom upisa novog sloga u bazu, brisanja
postojećeg i sl.
razno.502duzle,
-> #497, superhik>**>
>**> Jel može neko da me uputi na poruke gde je objašnjeno kao se
>**> pravi probot!?
co jo pc.pr
co re 7.699 :) O.K. ?
razno.503vision,
Ima li ovde .LSP programera ???
razno.504pedjak,
Jes' da je bajato, ali možda može nekom biti interesantno..
--------------------
April 16, 1987
Microcom MNP Library
(Microsoft C Version)
This diskette contains code and documentation for an IBM
PC/compatible implementation of Class 2 of the MNP link
protocol. This is suitable for use with a Microsoft C
application using the small code/small data model.
See the programmer's manual, in file 'mnpc.doc', for
further details.
These files are in the public domain and may be copied,
distributed, etc. Note, however, that these materials are
made available by Microcom, Inc., on an 'as is' basis and,
while it is believed that the code here is a correct
implementation, Microcom does not warrant them to be error-
free or suitable for any particular purpose.
mnpc12.ziprazno.505dr.grba,
E, šta mi se danas desilo....
Zove me finansijski direktor da dođem u njegovu kancelariju...
A tamo došli tip i cura iz neke eminentne šklj beogradske firme i kaže mi da
ako firma kupi poslovni adresar njegove firme dobijam gratis program za
proveru kontrolnog broja žiro računa, pretvaranje starog žiro računa u
novi...
Prekidam ga i odgovaram:
- Znam o čemu se radi.
Pet sekundi dramska pauza...
- ...To je napravio Dejan Ristanović, ne znam da li ste čuli za njega.
- žuo sam.
- E, pa onda je možda moguće da znate šta on radi.
- Ja sam član Sezama.
Tip se preznojava. Ne dam mu da udahne. Nastavljam:
- Prošle godine sam sa kolegom izboksovao algoritam kontrolnog broja, pa
poslao na Sezam. Objavljeno je u "Računarima". Imam razvijenu rutinu.
(idem do kraja, baš da mu vidim facu) Od vas očekujem tantijemu za
distribuciju moje rutine (paz' ovo: "moje" (((: ), ali verujem da neću
videti ni konte za to.
Jadnik se toliko spleo i pocrveneo da mi ga je bilo žao... (((:
- Ali mi to ne prodajemo, mi to dajemo gratis, ko kupi adresar....
- Zar je adresar toliko neažuran da vam treba konverzija starih u nove žiro
račune? (već bih se smejao, ali smeje se cura koja je došla sa tipom (:,
pa mi žao da joj kvarim ugođaj) Koliko ste primeraka programa dosada
podelili?
Tada uleće direktor sa pitanjem o ceni i objašnjenjem da je konkurent bio
brži. Poslednji, očajnički argumenat:
- Ali mi ćemo štampati logotipe firmi svih kupaca, i to u boji!!!
Tada sam se pozdravio sa genijem i preporučio mu svoje usluge (((:
====================
Deki, je l' to stvarno tvoj program? (((:
razno.506duzle,
Tehnicke specifikacije Gravis Ultrasounda, njegovo programiranje, faq o
zvucnim karticama, soundex algoritam itd... Enjoy.
Ogi
sndspecs.arjrazno.507duzle,
Tekstovi o soundblaster programiranju. Mislim da je sada sve jasno, ne ?
:))
Ogi
razno.508duzle,
Sorry ako sam promasio conf., ali stvarno ne znam gde da ga stavim :). Radi
se o fajlu PCX2DXF.
Ogi
pcx2dxf.ziprazno.509djelovic,
-> #508, duzle Hvala na veoma zanimljivim prilozima!
razno.510evlad,
-> #505, dr.grba>> E, šta mi se danas desilo....
Što me nisi zvao da dođem, pa tek ondak da vidiš znojenja O;)
razno.511nebul,
-> #496, vision
> (setq i 1)
> (setq x1 '(i 0))
> (setq y1 '(i 9))
> (command "line" X1 Y1 "")
Izraz '(i 0) je navedena lista. AutoLisp ne vrsi vrednovanje
njenog sadrzaja. Zato prvi clan liste x1 vidi kao i, a ne
kao vrednost uz koju je ova promenljiva prikljucena. Ako se iz
komandne linije isproba:
Command:!i
1 <- vracena vrednost za promenljivu i
Command:!x1
(I 0) <- vraceno (I 0), a ne (1 0) za promenljivu x1
Kada se funkciji command kao prvi argument zada "line" onda je
drugi ili "", ili koordinata tacke. Ocigledno da x1 ovde nije
ispravan argument. Jedno od resenja jeste funkcija list.
(setq x1 (list i 0))
Ona formira listu (i 0). Evaluator ce prepoznati promenljivu i
u njoj i izvrsiti njeno vrednovanje.
Command:!x1
(1 0)