Hollosi Information eXchange /HIX/
HIX CODER 69
Copyright (C) HIX
1998-04-04
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: CODER #68 / DN-birizga... (mind)  23 sor     (cikkei)
2 Re: mesterseges problemak (mind)  120 sor     (cikkei)
3 Re: Sziasztok ! (DosNav) (mind)  22 sor     (cikkei)
4 Re: adatok az exe-ben (mind)  33 sor     (cikkei)
5 Re: primszamolas (mind)  33 sor     (cikkei)
6 Re: Torles DN-al (mind)  35 sor     (cikkei)
7 Dos Nav (mind)  16 sor     (cikkei)
8 Re: adatok az exe-ben (mind)  23 sor     (cikkei)
9 C++ Builder komponensek futaskori felrakasa az ablakra (mind)  10 sor     (cikkei)
10 Re: Adat include to C (mind)  26 sor     (cikkei)

+ - Re: CODER #68 / DN-birizga... (mind) VÁLASZ  Feladó: (cikkei)

> Felado :  [Romania]
> nem enged torolni. Ezt a 21h megszakitas atirasaval ertem el es figyeltem
> a torlo funkciokat es ha az en konyvtarambol probalt torolni akkor hibat
> teritettem vissza. A NAGY baj az, hogy a Dos Navigatornak van egy olyan
> funkcioja amely kikuszoboli hogy ne az OS fuggvenyeivel kezelje a lemezt.

Itt alignanem a DN kozvetlen lemezhozzafereserol van szo... a DN ilyenkor nem
fordit nagy figyelmet az INT21 hasznalatara, hanem kozvetlenul modositja a
FAT-et, es DIR-listat... A megirt INT21-handlereddel ezt max. csak ugy lehetne
(piszkosan) elintezni, hogy a program nem csak a vedett konyvtarakat figyelne,
hanem az EXEC  funkciot is, es akkor is hibat jelezne vissza, ha valami a
DN.PRG-t probalna meg elinditani... tehat megakadalyozna a DN elinditasat... Ez
viszont nem valami DN-barat modszer, tehat masikat kell keresni. A DN a
kozvetlen irkalasnal nagy valoszinuseggel az INT13-at hasznalja, tehat erre
kellene irni egy elegge (sot...) bonyolult uj kezelorutint, amely figyelne a
beerkezett irasi kerelmeket, es ha az egy DIR-strukturara mutatna, akkor
megvizsgalna a tartalmat, nem akar-e megszuntetni valamit egy vedett konyvtaron
belul, es ettol fuggoen modositana a beirando adatokat... Az utolso lehetoseg
ami most eszembe jut pedig egy uj file-rendszer felrakasa (HPFS, FAT32...),
amit a DN (legalabbis az enyem) meg nem tud kozvetlenul kezelni...

Bicskei Alen
/  /
+ - Re: mesterseges problemak (mind) VÁLASZ  Feladó: (cikkei)

Bocs mindenkitol, hosszu lett. De remelem, erdekes is :)

On  3 Apr 98 at 7:59,  wrote:

> Hello,

Szia zsembes estvany :)

> Vajon miert van az, hogy olyan gyakran, az itt (de nem csak az itt)
> kozolt programozasi problemak annyira a valosagtol elrugaszkodottnak
> latszanak?

Mert a valosagos feladatok olyan termeszetuek, hogy azokat mindenki 
unna, ha tet nelkul vegig kellene csinalnia.

> A peldakra gondolok amelyekben egy programot kell ugy megirni hogy ne
> hasznaljunk benne valamilyen ervenyes konstrukciot ( ez pont olyan mintha
> valaki azt mondana meseld el a kedvenc konyved tartalmat de ugy hogy az o
> es z betuket soha se hasznald)

Nem rossz otlet, szerintem nagyon jo szorakozas lehet. Dérynek
(emlekeztek meg ra? Nem Tibor, hanem János) a radioban volt egy
olyan jateka, hogy 3 percig kellett beszelgetni vele ugy, hogy nem
volt szabad kimondani azt, hogy igen, vagy nem. Nem konnyu! :))

> kulonbozo furcsa szamok generalasa, vagy

pl. a Fibonacci szamok is milyen erdekesek. Vannak viragok, amiknek
a szirmai eppen ilyen sorozatban vannak: pletyka (3), sarkantyuka
(5), szellorozsa (8), koromvirag (13), csillagvirag (21), dalia (34).
(Persze vannak olyan viragok is, amiknek nem F.szamu szirma van :)

Masik erdekesseg, hogy a szomszedos F.szamok hanyadosa az
(sqrt(5)+1)/2 (=1.618...) szamhoz tart. Ezt a szamot aranyszamnak
vagy aranymetszesnek nevezik, (az A = 1/A + 1 egyenlet megoldasa,) es
mar az okorban is ugy tartottak, hogy nagyon esztetikus geometriai
arány (ara'ny) :) 

Raadasul a szomszedos F. szamok egymassal relativ primek.

Ezeket tudni nem hordoz semmilyen gyakorlati hasznot, eppen csak 
esztetikai elmenyt nyujt (az arra fogekonyaknak) :)

> eppen annak eldontese hogy egy szam primszam-e. Nem igazan tudok
> elkepzelni egy progit melyben esszencialis volna egy primszamrol tudni
> hogy prim-e.

Pedig nagyon hasznos, es tenyleg esszencialis dolog. (Magas labda!!!
Biztos lesz mas is most, aki erre rajtam kivul valaszol) : szoval a
titkositasnak a tipikus megoldasa az, hogy valasztani kell egy olyan
matematikai problemat, amire nem letezik altalanos (elmeleti)
megoldas, es ennek hianyaban csak a nyers ero modszeret lehet
alkalmazni a kodolas feltoresere. Az egyik ilyen modszer az, hogy (ha
jol emlekszem a DES titkositasban) ket elegendoen nagy prim szamnak a
szorzata az a kulcs, amivel valahogy kodolva van az uzenet (valami
ilyesmi...), es ezt a primek ismerete nelkul lehetetlenseg
visszafejteni, es a szorzatbol sem lehet a ket primre kovetkeztetni.
(Nem vagyok egy titkositasi szakerto, szoval ez a magyarazat csak TIT
szinture sikeredett :))

> C konyvek tucatjai a "Rekurzio" cimu fejezetnel faktorialis szamolas
> hasznalataval abrazoljak a rekurziv fuggvenymeghivast ami maga nemcsak
> hogy teljesen nevetseges de  veszelyes is, egesz konnyen okozhat
> rendszerosszeesest ha nem vigyazunk.

??? Rendszerosszeomlast??? Nem rendszer az, ami egy faktorialis 
szamitasba beleomlik :)

> (Az egesz faktorials tema egy
> egyszeru ciklussal megoldhato akkor minek az egesz fontoskodas?)

Mert igy sokkal erdekesebb, es elgondolkodtatobb.

Egyebkent a faktorialissal igazad van, nem igazan jo pelda a
rekurziora. Van ennel sokkal jobb, ami nem vezetheto vissza egyetlen
ciklusra, pl. hogy ki kell irni egy szamot a kepernyore. 
(A printf("%d",n); megvalositasa.) Assembly-ben:

KiirDecimalis proc  ; ax=elojeltelen szam, 10-es szamrendszerben kiirja
  cmp ax,10
  jb  egyjegyu
  push dx
  mov dx,0
  div wordTiz ; osztas utan ax=hanyados, dx=maradek
  call KiirDecimalis  ; hagyadost (n/10) kiirjuk
  mov ax,dx           ; es mogeirjuk a maradekot
  pop dx
egyjegyu:
  add al,'0'
  call KiirAscii
  ret
KiirDecimalis endp

Remelem, mindenkinek ertheto, nem magyarazom meg.

(Amikor egy olyannak, aki nagyon a magasszintu nyelvekben el, ezt
megmutatom, mindig elcsodalkozik, hogy "je, ez ilyen egyszeru?" :))

> Olvastam, a megirt szoftwerek 98% tradicionalis modon mindenfele
> ravasz trukkok nelkuli modon van megirva.

Ez teljesen normalis dolog. Nem is szabad nagyon trukkozni, mert 
egyebkent nehany honap utan nehezseget okoz visszaemlekezni, hogy 
"miert is csinaltam en ezt pont igy?".

> Akkor minek mind cikizik az
> embert hujesegekkel (gondolok itt a tanitto-bacsikra elsosorban)?

Hogy fejlodjon az agyad :))

Miert, eddig azt hitted, hogy _barmit_, amit tanulsz akarmilyen 
suliban, azt fogod tudni hasznalni? Meg azt sem kell hasznalnod, hogy 
mennyi 1+1!! Nem arra valoak! Kesz megoldasokat egy igazi problemara 
_nem_ tanitanak sehol sem, mindig Neked kell kitalalni! Tanulni azert 
kell, hogy treningben legyen az agyad, es kepes legyen uj dolgok
felfedezesere.

István
--  Istvan Marosi  --  http://www.sch.bme.hu/~marosi  --
--  Recosoft Ltd.  --  mailto:  --
+ - Re: Sziasztok ! (DosNav) (mind) VÁLASZ  Feladó: (cikkei)

On  3 Apr 98 at 8:33,  wrote:

> teritettem vissza. A NAGY baj az, hogy a Dos Navigatornak van egy olyan
> funkcioja amely kikuszoboli hogy ne az OS fuggvenyeivel kezelje a lemezt.
> Ilyenkor persze a programom az bukik.
>   Nos a kerdes : mi erre a megoldas ?

A legegyszerubb, hogy nem raksz a gepre DosNav-ot, es a floppyt is
kiveszed a gepbol, nehogy hozzanak. A bonyolultabb, hogy hosszas
debug-olassal kiderited, hogy a DosNav hol jar, amikor beallitod ezt
az opciot, es ezt a reszt megpatch-eled.

A masik lehetoseg (talan egyszerubb), hogy bekoltozol az int13
hivasaba is (ha a DosNav azt hasznalja?), es nezed, hogy nehogy
valaki _irjon_ abba szektorokba, ahol a konyvtarad van. Azt nem
tudom, hogy a FAT-et a dir elott, vagy utan irja at a DN? Ha a dir
utan, akkor OK, ha elotte, akkor a megfelelo FAT szavak felulirasat
is figyelni kell minden egyes file-ra, ez mar hosszadalmasabb...

István
--  Istvan Marosi  --  http://www.sch.bme.hu/~marosi  --
--  Recosoft Ltd.  --  mailto:  --
+ - Re: adatok az exe-ben (mind) VÁLASZ  Feladó: (cikkei)

On  3 Apr 98 at 16:57,  wrote:

>   1. Kideritteted a programmal a sajat nevet (micsoda.exe) -- ezt egy
> DOS-hivas megoldja.

DOS hivas ilyet kozvetlenul nem mond meg, de mondjuk kideritheto 
viszonylag egyszeruen...

>   2. Megnyitod ezt a file-t es kiolvasod belole a meretet, ami a fejlecben
> megtalalhato. Ez a valodi meret lesz, a hozzamasolt adatfile(ok) nelkul.
> Innentol pontosan tudod, hogy hol kezdodnek az adataid.

Erre egyaltalan nincs szukseg. Amit Arp irt, az sokkal egyszerubb: A 
file VEGEHEZ kepest negativ offsettel lehet pozicionalni. Ez tenyleg 
egyetlen DOS hivas.

Egyebkent nem lehetetlen olyat sem csinalni, amit Gabor kert
eredetileg: C-ben olyan, hogy INCBIN (binaris include), sajnos
nincsen, de olyat nem nehez csinalni, hogy irsz akar C-ben, akar egy
shell script-tel (akar dos alatt, pl. 4DOS shellben) egy kis nehany
soros programot, ami a binaris file-bol egy szovegeset csinal, az
elejere pedig betesz egy valtozo deklaracio sort, valahogy igy:

unsigned char adatok[] = {
 12, 33, 54, 66, ... stb, sortoresekkel pl. 16 byte-onkent
}

Ezt akar egy kulon modulba rakod, akar belerakod vagy beinkludolod a
megfelelo forrasodba, es kesz.

István
--  Istvan Marosi  --  http://www.sch.bme.hu/~marosi  --
--  Recosoft Ltd.  --  mailto:  --
+ - Re: primszamolas (mind) VÁLASZ  Feladó: (cikkei)

> Szerintem azert nem szoltak olyan sokan hozza, mert mas (effektivebb)
> modszer nem is nagyon ismert. Nem hiaba hasznalja az asszimetrikus
> kodolas a primeket. Ha letezne egyszerubb algoritmus, akkor hamar
> fel lehetne torni a PGP & Co-t. (talan ezen dolgozol? ;-)

Udv!

Azert nem szoltam hozza, mert meg uj fiu vagyok ezen a listan.
(Meg lusta is vagyok :)
Szoval, osszevontad a ket problemat: 

a/ nagy primek keresese 
b/ nagy szamok felbontasa

A masodik valoban nehez, bar az sqrt(p) -ig lepegetve probalgatonal mar
vannak sokkal jobb modszerek is.
Nagy primet keresni viszont egyszeru.  Rengeteg primszam van ugyanis.
A szazjegyu szamoknak is meg tobb mint egy ezredresze prim.  Vagyis nehany
ezer veletlen szam kiprobalasaval valoszinuleg talalunk primszamot.
Az pedig, hogy a szam prim-e, viszonylag egyszeru ellenorizni,
pl. a kis Fermat tetellel(*):

	Ha p prim es (a,p) = 1 akkor a^p = a (mod p)

Ez egyszeruen es gyorsan, O(log p) lepesben, ellenorizheto.

(*) A tetel ugyan nem garantalja, hogy ha az ellenorzes teljesul, akkor p
prim, de egyreszt ugy tunik, hogy nagyon keves a kivetel, masreszt, ha az
RSA titkositashoz keresunk primeket, akkor ilyen hamis primek is
hasznalhatok.  
Vannak meg hasonlo modszerek, olyan is amelyik tutti eredmenyt ad, meg olyan
is, amelyik valoszinusiti (meghatarozhato valoszinuseggel), hogy egy szam
prim-e.
+ - Re: Torles DN-al (mind) VÁLASZ  Feladó: (cikkei)

Szia!

>  Gondolom kozuletek sokan ismerik a Dos Navigatort.
>  Nos a helyzet az, hogy irtam egy programot amely bizonyos konyvtarakbol
> nem enged torolni. Ezt a 21h megszakitas atirasaval ertem el es figyeltem
> a torlo funkciokat es ha az en konyvtarambol probalt torolni akkor hibat
> teritettem vissza. A NAGY baj az, hogy a Dos Navigatornak van egy olyan
> funkcioja amely kikuszoboli hogy ne az OS fuggvenyeivel kezelje a lemezt.
> Ilyenkor persze a programom az bukik.
>   Nos a kerdes : mi erre a megoldas ?

A problema az, hogy a DN direkt INT 13 hivasokat hasznal (vagy esetleg
int 26-ot?, passz).

A megoldas az lehet, hogy a rezidens programod elkapja az INT 13-at es
az INT 26-ot is, es tiltja a szektorszintu irasi muveleteket. Ez persze
behoz meg egy problemat: a DOS sem tud irni a lemezre. Ezert tehat az
INT 13-handlerben meg kell vizsgalni, hogy a hivas a DOS kernelbol
jott-e (a stack-en van a hivo kodszegmense). Ha a DOS hivta az INT 13-at
akkor a stack-en a DOS kodszegmensenek kell lennie. A DOS adatszegmenset
(ez azt hiszem ua, mint a kodszegmense) le lehet kerdezni valamelyik INT
2f-es hivassal (keress ra a Ralf Brown-fele interrupt list-ben).

Szoval, ha a DOS-tol jott a hivas, akkor engedni kell, egyebkent pedig
write-protect hibauzenettel kell visszaterni. 

Ezek utan csak a DOS torles fuggvenyevel lehet file-okat torolni, azokat
viszont mar amugy tudja korlatozni a programod.

Udv:

Somogyi Akos
Mystery Arts
http://astrobase.bajaobs.hu/~m_arts
mailto:
+ - Dos Nav (mind) VÁLASZ  Feladó: (cikkei)

>
>=======================================================
>Felado :  [Romania]
>Temakor:   Sziasztok ! ( 11 sor )
Szia.


>nem enged torolni. Ezt a 21h megszakitas atirasaval ertem el es figyeltem
>  Nos a kerdes : mi erre a megoldas ?
szerintem tanulmanyozd a 13h bios megszakitast, de lehet
hogy meg lejjebb kell menni.

Egy a sok kozul: :-)
>-------------------------------------------------------<
Kovacs Karoly (   )
>-------------------------------------------------------<
+ - Re: adatok az exe-ben (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok coderek!

   irta :

>  Ez jo modszer, en is ezt hasznalom, de nem kell hozza tudni, mekkora az
>adatfile. A DOS ugyanis megmondja, hogy mekkora az exe file-od. Az 
>eljaras
>a kovetkezo:
>  1. Kideritteted a programmal a sajat nevet (micsoda.exe) -- ezt egy
>DOS-hivas megoldja.

A progi megkapja parameterkent a sajat nevet is. Nem kell hozza DOS 
hivas. Hivatkozhatsz ra:

void main(int argc,char *argv[], char *env[])
{
    // az argv[0] tarolja a program nevet.
}


Üdv.
Csaba

+ - C++ Builder komponensek futaskori felrakasa az ablakra (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!
	A problemam az, hogy nem tudom megcsinalni, hogy program futasa soran
keruljenek fel a komponensek az ablakra. TLabelekrol van szo, de
gondolom ez majd mindegy. Az, hogy elore felrakjam a komponenseket, az
nem megoldas, mert forditaskor meg nem ismert a szamuk, es kb 500-1000
db-rol lenne szo. 
	Ha tudod a megoldast, kerlek ertesits! Es meg valami. Ha Delphiben
tudod a megoldast, akkor az is jo.

			Udv: NaP
+ - Re: Adat include to C (mind) VÁLASZ  Feladó: (cikkei)

Hi Gabor!

Szerintem az eddigi megoldasok nem igazan voltak nyeroek. En ugy 
csinaltam, hogy -> atalakitod .obj-be az adatfilet, megadod a public 
nevet es a segmentet, ahova rakja (alt. _DATA segment, DATA class, de 
ebben nem vagyok biztos). Innen egyszeru: a forrasban, ahol szukseged 
van az adatokra, deklaralsz egy extern valtozot:
     extern char kulsoadat[];
es igy tudod elerni (ha _kulsoadat volt a public name). Az .obj-t 
persze linkeled az .exe-hez, de az .exe-t magat nem kell 
megnyitni, se pozicionalni. Amugy ha nem tul nagy az adatfile, az is 
megoldas, hogy pl. a bin2c nevu prog atkonvertalja egy normal C 
array-be (hexa kodok...) es ezt normal #include-al behozod a 
forrasba. Ha kell a program, irj. 

On  2 Apr 98 at 4:42, Csordas Gabor wrote:
> Hali coderek!
>	C-ben programozok, es arra lennek kivancsi,
>	hogy a az exe- be hogyan lehet belepakolni az adatokat.
>	Az addig ok, hogy az adatfajlomat ->.obj ba atnyomom,
>	aztan projectbee beillesztem, de a kerdesem az, hogy
>	programombol hogy ferhetek hozza ?

Bye,
Rayden -- mailto:
'The Truth is out there...'

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS