-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


     Heretics Inc. presenterar....






                              [ Outlaw Informativa ]

                                 issue 9, 99-12-18

                               ___________________

                                 O U T L A W  9

                                18 December, 1999
                               ___________________

                          - A Heretics Inc. Production -



             "Cryptography products may be declared illegal, but
              the information will never be"
                 - Bruce Schneier


 nnu ett nummer slppt av Heretics. Mitt humr r ganska  hyffsat  nu, vilket
 det oftast inte brukar vara. Snart  kommer  Dreamhack  ocks, jag  r  tyvrr 
 ganska orolig ver hur det kommer att bli, antagligen kommer det bara vara en
 massa gAmE gEeKs dr som kr Quake turnering, det tycker jag r jvligt trk-
 igt. Men det finns ju stora frdelar ocks: Man fr  trffa  polare  p  IRC, 
 diskutera med andra Data intresserade  om  Skerhet, Unix  osv  och  byta  ut
 kunskaper verhuvudtaget. Jag kommer dit helt ensam  s  det  blir  en  liten
 utmaning faktiskt, det r ju trevligt och s. Jaja, ver  till  numret. Detta
 nummer kommer innehlla lite blandat information om Linux, Nya attacker, Lite
 fula mobil tips och lite annat tjafs. 


 
 
 -----------------------------------------------------------------------------
                                  Disclaimer
 -----------------------------------------------------------------------------
 All information r helt skrivet i utbildnings syfte och vi har  inga  budskap
 eller uppmaningar att ni ska beg brott. Serist, jag bryr mig  inte  vad  ni
 gr med  informationen. Om du skulle beg brott s r ansvaret helt riktat t
 din sida.



 -----------------------------------------------------------------------------
                                    Medverkande
 -----------------------------------------------------------------------------
 En enkel lista med folk  som  skrivit fr detta nummer och hur du kan komma i
 kontakt med personen.


 Alias: diox1de                    Contact: keytrace@usa.net
                                     
 Alias: crazy-train                Contact: crazy-train@telia.se
                                 

 Alias: Gazzaud                    Contact: gazzaud@operamail.com      
                                     



 -----------------------------------------------------------------------------



                 I N N E H  L L S F  T E C K N I N G



         $ Staff          
 
           1:1. Editor                                
           1:2. Disclaimer                          
           1:3. Medverkande                         
           1:4. Innehllsfrteckning
           1:5. Aktuellt
           1:8. Filosofi och tankar


         $ Nyheter

           2:1. Sun Microsystems konkurrerar inte med Linux
           2:3. Skrare SIM kort genom ny allians
           2:4. Amazon sponsrar Krypto-tvling


         $ Phreaking och Telefoni
  
           3:1. Hur du buggar ett rum med en mobil        av: diox1de
           3:2. Ett papper om GSM Systemet, del #1        av: diox1de


         $ Hacking, Ntverk, Skerhet, Unix etc.

           4:1. Buffer overflow i amd                     av: crazy-train
           4:2. Linux fr dumma, del #2                   av: diox1de
           4:3. Hur du Crackar Tolken97                   av: diox1de
           4:4. Andvnd Doom vid System Administration    av: diox1de
           4:5. Windows peer-to-peer Networking           av: diox1de
           4:6. Hur vi hade det p Dreamhack              av: diox1de


         $ Programmering
 
           5.1. Windows Programmering i C++               av: gazzaud        
  

         $ Insndare
 
           5:1. Netscape 4.05 (Messenger) kryptering
           5:2. CuteFTP 3.0.2 krypterings metoder         av: diox1de     


         $ Ngra ord innan slutet

           6:1 . Copyright
           6:2 . kill -9 666





             "It is insufficient to protect outselves with laws;
              we need to protect outseves with mathematics"
                 - Bruce Schneier


 -----------------------------------------------------------------------------
                                                                 Aktuellt  []
 -----------------------------------------------------------------------------
 | --> Outlaw Informativa lggs i vilolge                                   |
 |---------------------------------------------------------------------------+ 
 | Outlaw Informativa kommer lgga sig i vilo lge, vi  kommer  ett tag fram |
 | ver inte satsa s mkt p sjlv zinet utan mer tenskilda textfiler.Detta |
 | leder till att det tar ett tag innan nsta  nummer  av Outlaw Informativa |
 | kommer  ut.                                                               |
 +---------------------------------------------------------------------------+
 | --> Kunskapsplanen forstter                                              |
 |---------------------------------------------------------------------------+
 | Jag diox1de fortstter med kunskapsplanen jag lagt upp som jag berttade  |
 | om i frra numret (#8).                                                   |
 +---------------------------------------------------------------------------+
 | --> Serie #2 av textfilen om abbonent vxeln a345 har pbrjats           |
 |---------------------------------------------------------------------------+
 | crazy-train brjade skriva serie #2 i textfil serien om a345              |
 +---------------------------------------------------------------------------+



 -----------------------------------------------------------------------------
                                                      Filosofi och tankar  []
 -----------------------------------------------------------------------------
 Jag har frsttt att mnga gillar Heretics men tycker  inte  att  det  r  en
 seris satsning. Men egentligen varfr skulle det vara en ?...jag  kommer  ju
 inte slppa den hr gruppen i frsta taget. Ingen vet vad som kommer att hn-
 da med Heretics egentligen. Vi kan bli  en  framtida  fretag  som  utvecklar
 skra krypterings algoritmer eller  rent  av  utveckla  skra  telefonvxlar.

 Det va ngon p IRC som frgada varfr vi har mer Hacking och Datalogi n vad
 vi har Phreaking eftersom vi r en Phreaking grupp. Jag svarade att  vi  inte
 va en Phreakin grupp, vi r  helt  enkelt  en  grupp  data/tele  intresserade
 ungdomar. Det mesta av vran information r huvudsak inte skriven fr er  som
 ska lsa det utan fr oss sjlva, dels fr att det r kul och fr att man lr
 sig och kommer ihg det bttre som kan underltta senare i andra fall.



 -----------------------------------------------------------------------------
                              Sun Microsystems konkurrerar inte med Linux  []
 -----------------------------------------------------------------------------
 Sun Microsystems tillbakavisar vad fretaget kallar "spekulationer" om att de 
 vill konkurrera direkt med Linux.

 Dagen efter  att  nyheten  spridits  ver vrlden  om  att  Sun  Microsystems 
 beslutat slppa  kllkoden  fr  sitt  flaggskepp, operativsystemet  Solaris, 
 fritt  fr  utvecklare  (med vissa restriktioner, naturligtvis) tillbakavisar
 de nu att deras avsikt med planerna r att konkurrera direkt med Linux. 

 "Linux kan ha kompabilitetsproblem att vnta i framtiden, och oavsett  vilken 
 distribution av Linux man vljer s ligger den mycket  nra  Sun:s teknologi" 
 sger George Paolini, vice-VD fr Sun Microsystems marknadsavdelning. 

 Paolini avsljade ocks att fretaget ven planerade att slppa kllkoden fr 
 Java enligt samma modell som Solaris, men  ngon  tidsplan  fr  detta  finns 
 enligt Paolini inte.

  Klla: linux.idg.se



 -----------------------------------------------------------------------------
                                        Skrare SIM kort genom ny allians  []
 -----------------------------------------------------------------------------
 Schlumberger, vrldens strsta SIM-kortstillverkare har inlett ett  samarbete 
 med Certicom, ett av vrldens ledande krypteringsfretag. I och med samarbet-
 et kan  Schlumberger  bygga  in  Certicoms  senaste  krypteringsteknologi ECC 
 (Elliptic Curve Cryptography) i sina kommande SIM-kort. ECC r en  kryptering 
 som utvecklats fr att passa till handdatorer, mobiltelefoner och s  kallade 
 smart cards. Frdelen med systemet r att det r energisnlt och  inte heller
 krver s mycket bandbredd fr att hlla hg skerhet. Hgre skerhet r  ett 
 krav bde frn operatrer och anvndare nu nr WAP-teknologin med mjlighete-
 rna att handla till exempel aktier och utfra bankrenden direkt frn mobilt-
 elefonen komemer.

  Klla: Veckans notiser om Mobil



 -----------------------------------------------------------------------------
                                           Amazon sponsrar Krypto-tvling  []
 -----------------------------------------------------------------------------
 Amazon sponsrar en krypto-tvling som gr ut  p  att  kncka  ett  Krypterat 
 meddelande och priserna blir grymma bcker s som Cryptonomicon, Applied Cry-
 ptography, The Code Book, och Between Silk and Cyanide.

 Ls mer om bckerna p:

 [The CODE book]
 http://www.amazon.com/exec/obidos/ASIN/0385495315/002-2655284-3468228

 [Applied Cryptography]
 http://www.amazon.com/exec/obidos/ASIN/0471117099/002-2655284-3468228

 [Between Silk and Cyanide]
 http://www.amazon.com/exec/obidos/ASIN/0684864223/002-2655284-3468228

 [Cryptonomicon]
 http://www.amazon.com/exec/obidos/ASIN/0380973464/002-2655284-3468228


 Meddelandet som ska knckas ser ut s hr:
 -106
 047-111-70-99-24-21-25-12-53-22-56-8
 038-097-34-64-242-335-51-377-183-168
 038-097-34-64-380-330-115-289-273-189-56
 068-486-42-23-87-434-10-468-151-345-150-494-376-415-426
 038-549-53-15-1-193-121-29-109-66-28-160


 Hur du gr fr att vara med:

 Tyvrr det gr inte om du inte bor eller befinner dig i  USA, trkigt  tycker
 jag.

  Klla: www.amazon.com



 -----------------------------------------------------------------------------
                                       Hur du buggar ett rum med en mobil  []
 -----------------------------------------------------------------------------
 Detta r s enkelt s jag vill inte ha ngra klagoml helst. Hela grejen  gr
 ut p att bugga ett rum. Bla. Nokia och Ericsson r mycket bra fr a tt  gra
 detta. Du utrustar mobiltelefonen med handsfree och stller  in  s  att  den
 ska svara automatiskt och stller den i rummet du villa avlyssna  och  ringer
 upp mobilen. Huvudsyftet med det hr r att enkelt kunna prata  nr man sitt-
 er i bilen osv. Men det har visats sig kunna andvndas i andra syften  ocks.



 -----------------------------------------------------------------------------
                                       Ett papper om GSM Systemet, del #3  []
 -----------------------------------------------------------------------------
  [Frord]

 Eftersom jag skrev en artikel serie om Skerhet i GSM Systemet s tnkte  jag
 skriva nnu en artikel serie om hur sjlv GSM Systemet r  uppbyggt  och  hur
 det fungerar. Denna artikel serie r mycket bra att komplettera med min tidi-
 gare serie om Skerhet i GSM systemet, som du kan hitta  i  nummer #6, #7 och
 #8.

  [Inledning]

 Egentligen borde alla veta vad GSM r, men jag tnker end frklara  vad  det
 r fr det finns mnga  som  saknar  det  som  kallas  i  allmnbildning. GSM
 str frst och frmst fr  Global System for  Mobile  Communications. GSM  r 
 ett   helt  digitalt  ntverk  fr  Cellulr  Mobiltelefoni. Sjlva  mobilens 
 abonemang r r knutet till ett kort som sitter i  mobilen, ser  ut  som  ett
 litet chip och kallas fr SIM kort. GSM r en ersttare fr de gamla  analoga
 systemet NMT (Nordisk Mobil Telefon) GSM har frbttrat  tekniken  och  gjort
 bde hastigheten snabbare  och  ljudkvaliteten  bttre. Sjvla  GSM  Systemet
 bygger p CME20 som kommer diskuteras senare.

  [CME20]

 CME20 r utvecklat av Ericsson. Den  r  uppbyggd  enligt  ETSI/GSM  Tekniska  
 Specifikationer fr ett Digitalt Cellulrt  Radio  Ntverk. CME20  inkluderar
 vxelcentraler, basstaions  controllers,  basmottagare, lokaliseringsregister
 och funtkioner fr centralicerad andvnding och underhll. 

 Vilka Ntversk element bestr d CME20 av ?

  --> Vxelsystemet      : The Switching System (SS)
                           Vxlar och handlar alla mobiltelefon samtal.

  --> Basstation Systemet: The Base Station System (BSS)
                           Hr koncentreras alla radiobeslektade funktioner

  --> Drift och underhll: The Operation and Support System (OSS)
                           Drift och Underhlls funktioner vilket krvs av 
                           Ntverket.

 Nedan ska jag frklara vad de olika elementen har fr uppgifter  och  hur  de
 arbetar.

  [The Switching System (SS)]

 Vxelsystemet bestr av 5 fljande delar:
 
   The Mobile services Switching Centre (MSC)
   The Home Location Register (HLR)
   The Visitor Location Register (VLR)
   The Authentication Centre (AUC)
   Equipment Identity Register (EIR)


     --> The Mobile services Switching Centre (MSC)

 MSC tar hand om alla telefonvxelrelaterade funktioner i systemet. En Gateway 
 funktion (GMSC) koordinerar trafikverfringen med de fasta ntet Public Swi-
 tched telepone network (PSTN). MSC handlar allt som har med kanalsignalering,
 vxelfunktioner, ntinterface och avgiftsdebitering  att  gra. Hela  MSC  r 
 byggd i samma fljd som en AXE vxel.

     --> The Home Location Register (HLR)
 
 


 -----------------------------------------------------------------------------
                                                    Buffer overflow i amd  []
 -----------------------------------------------------------------------------
 Automounter daemon (amd) har en buffer overflow  i  mount  koden  som  skadar
 Linux och ngra BSD plattformer. Amd mountar automatiskt fil  system  i  svar 
 till frsk att komma t filer som finns  i  filsystemet. Att  gra  en  lng 
 string till AMQPROC_MOUNT proceduren, kan gra att attackeraren kan  f  root 
 access.

 Dessa plattformer har detta problem:

  FreeBSD 
  Linux Red Hat 4.2
  Linux Caldera
  Linux Red Hat 5.2
  Linux Red Hat 6.0
  BSD/OS 4.0.1
  BSD/OS 3.1
  BSD/OS 4.0

 Konsekvenser:
  
  Fr rootuid 

 Fix: Ladda hem patchen, info eller nyaste versionen av amd hr:

 http://www.redhat.com/corp/support/errata/RHSA1999032_O1.html <RedHat> 
   (Ladda bara hem am-utils.rpm senaste versionen ifrn t.ex Sunet p 
    RedHat updates fr ovanstende versioner.
 ftp://ftp.calderasystems.com/pub/info/security/CSSA-1999:024.0.txt <Caladera>
 http://www.bsdi.com/services/support/patches/patches-4.0.1/ <BSDi>
 ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-99:06.amd.asc <FreeBSD>
 ftp://info.cert.org/vert_advisories/CA-99-12-amd.html  

 Nyhets klla: http://xforce.iis.net



 -----------------------------------------------------------------------------
                                                  Linux fr dumma, del #2  []
 -----------------------------------------------------------------------------
 I dag hade jag tnkt att ta upp hur man andvnder kill fr att stnga program
 som stannat och ta upp kommandona chmod, chown och vad  Multitasking  r  och
 hur det fungerar


  [+] Kill samt ps [+]
  ====================

 ps r ett komando fr att lista program processer som r igng, ps  str  fr
 Process Status.


  [+] Filrttigheter samt Filgare [+]
  ====================================

 Det finns mnga olika anledningar till att du vill  ndra  gare  p  en  fil
 eller ndra gare.
 
 4 elr. r--: read-only
 2 elr. -w-: write-only
 1 elr. --x: execute
 6 elr. rw-: read/write
 5 elr. r-x: read/execute
 3 elr. -wx: write/execute
 7 elr  rwx: read/write/execute


  [+] Hur ndrar man rttigheter p en fil d ? [+]
  =================================================

 Som du ser s str det bde en siffra och en bokstav. Siffrorna andvnds  nr
 du ska ndra rttigheter p en fil och bokstverna nr du  visar  rttigheter
 p en fil.

  # chmod 345 <fil>
  # ls -l <fil> 
  --wxr--r-x   1 g1mp     users         114 Oct  15 15.11 trashfile


  [+] Multitasking [+]
  ====================

 Ni har skert hrt mnga gnger d sett folk frgat Varfr Linux  r  s  bra
 och dom svarar multitasking, opensource osv.

 Nu ska jag frklara  vad  Multitasking (Multikrning)  r. Man  kan  jmnfra
 Linux  med  MSDOS  (Microsoft Disk Operating System). Visst har  DOS  en  del
 program  fr  ntverk,  bla.  netuse,  tracert,  ping  osv. Om  du  ska  kra
 Internet i DOS s mste du  ladda  ner  en  massa  program  fr  att  f  ett
 komplett Ntverks system. Linux r ocks ett  operativsystem  som  bestr  av
 en  kommando  prompt  som andvnds av en  kommandotolk (shell) bla. csh, ksh,
 bash. I DOS andvnds  skalet  command.com. 

 Ok,  lt  oss  sga  att  du  ftt
 igng en Internet anslutning laddad ner en IRC klient f r  DOS  osv. Det  r
 hr Linux kommer in i bilden. Du vill oftast kunna gra flera  saker  n  att
 sitta p IRC och dega. I Linux finns det ngot som kallas  Multitasking, ven
 kallat Multikrning. Vad som menas med Multitasking r att du kan kra  flera
 Program Processer p samma gng, det r en frdel med  Linux. Sen  finns  det
 redan Ntverks applikationer till Linux som kan installeras vid Linux  Setup.
 Du kan ven lgga till dem med pkgtool (Package Tool).

 Hur fungerar Multitasking d?
 Multitasking delar upp Program Processerna i sm processer  och  som  med  en
 viss prioritetsindelning fr andvnda processorn under en viss  tid. Det  gr
 s pass snabbt s att vi uppfattar det som de krs sammtidigt.
 
 Denna uppdelning av Processor kraft sker med en sk. scheduler och som  r  en
 special process som ser till att processerna delas upp rttvist mellan syste-
 mets olika processer. 



 -----------------------------------------------------------------------------
                                                  Hur du Crackar Tolken97  []
 -----------------------------------------------------------------------------
 Frst och frmst s r Tolken97 ett versttningsprogram som kan vara andvn-
 dbart om man skulle vilja verstta ord/texter osv. Tolken r programmerat av
 Brje Hagsten. I denna artikel hade jag tnkt frklara hur du Crackar Tolken.
 Ok, jag vill inte kalla det fr ett Crack eftersom det r  s  otroligt  ltt
 och att det inte behvs ngra kunskaper inom Cracking verhuvudtaget.

 Den filen vi ska editera r "Tolken97.ini" och det r tv rader vi ska edite-
 ra, nrmare bestmt tv rader under [Program], dvs. Reg och UserName.

 Nedan kommer ett urklipp frn en oregistrerad version av Tolken97.ini. Notera
 att det bara r raderna under [Program] som visas.

 [Program]
 Reg=00100                       # Hr kommer den frsta raden som ska ndras.
 Signal=1
 LoadBas=1
 LangVal=6
 LangText=Engelska till Svenska
 FrasFil=fras0001.dat
 LangFile=ord0001.dat
 TransStyle=0
 DosText=47690
 MenyRad=0
 StatusRad=1
 RadBryt=0
 Undos=250
 ProgStart=0
 Bubble=-1
 ShowTip=0
 WhatTip=0
 MakeList=-1
 PanelColor=8421440
 ShowList=-1
 CountWords=-1
 CapsLocked=0
 SelectLang=0
 SeLang=1
 UserName=                       # Hr kommer den andra raden som ska ndras.

 Du ska lgga till 329716 istllet fr 00100 under "Regname" och  sedan  lgga 
 till ett valfritt username under UserName. Nr den r "Crackad" s ska den se
 ut ngot i den hr stilen:

 [Program]
 Reg=329716
 Signal=1
 LoadBas=1
 LangVal=6
 LangText=Engelska till Svenska
 FrasFil=fras0001.dat
 LangFile=ord0001.dat
 TransStyle=0
 DosText=47690
 MenyRad=0
 StatusRad=1
 RadBryt=0
 Undos=250
 ProgStart=0
 Bubble=-1
 ShowTip=0
 WhatTip=0
 MakeList=-1
 PanelColor=8421440
 ShowList=-1
 CountWords=-1
 CapsLocked=0
 SelectLang=0
 SeLang=1
 UserName=Apocalyptica
 
 Ok, jag fr urskta fr en lam artikel. Men jag r inte den enda som hatar en 
 massa fula fnster som sger att man ska registrera. Det r hr Linux  kommer
 in i bilden =)



 -----------------------------------------------------------------------------
                                    Andvnd Doom vid System Administration []
 -----------------------------------------------------------------------------
 Fick en sida av en snubbe och tnkte skriva lite om det jag sg. Jag r  helt
 emot spel, men det r nd en kul grej.

 Ett program fr Linux som ddar processer genom att springa omkring  med  ett
 vapen och dda dem helt enkelt istllet fr att andvnda kill -9.

 1981, Vernor Vinge filosoferar mycket om virtuella vrldar och  fantasiser, i
 hans novell beskrivs bla. att vandra genom ett svrthittat trsk skulle kunn-
 a vara att g frbi en Firewall. Detta skulle kunna vara nnu  ett  steg, fr
 ven datorn, typ bash r ju bara en fantasi rm -r <bibbla> skulle kunna  vara
 100101001010010101010 egentligen, men nsta steg  skulle  typ rm -r vara  ett
 monster i ett spel som du ska dda.

 Hmm, mer tnker jag inte skriva. Tnkte bara meddela er om en liten rolig sak
 , om ni vill veta mer s kan ni g till kllan.

  Klla:



 -----------------------------------------------------------------------------
                                           Windows peer-to-peer Networking []
 -----------------------------------------------------------------------------
 Nedan fljer en artikel  om hur  du  stter  upp  ett "peer-to-peer" ntverk.
 peer-to-peer r allts ett ntverk utan server. Det kan tyckas  vara lamt att
 skriva om Windows. Men sjlv tycker jag att allt  som  har  med  Ntverk  att
 gra r intressant.

   Koppla upp de Fysiska Ntverket
   Lgg till Tjnster och Protokoll
   Stt ett frbestmt lokalt IP
   Stt ett domainname istllet fr IP
   Dela ut mappar och skrivare
   Testa om det fungerar
   Efterord


  [- Koppla upp de Fysiska Ntverket -]

 Det hr kommer jag inte skriva om s djupgende.Men det r det frsta steget.
 Hr utgr jag ifrn att du ska koppla ihop tv datorer, det  r  bara  koppla
 kablarna frst frn dator 1 till hubben sen frn dator 2 till hubben. Printe-
 rn behver inte kopplas till hubben. Du installerar en  ntverksskrivare  sen
 end.

 
   --> En enkel skiss:
 
                                 ______
 ||        ______         |      |
 |Dator1|-------|EthHub|--------|Dator2|          
 |      |                 |      |]----.       _______
                                 |      |Printer|
                                              

   [- Lgg till Tjnster och Protokoll -]
 
 I ett Windows peer-to-peer ntverk andvnds frmst  netbios  och  TCP/IP, men
 ven andra protokoll behvs. Jag vill ju inte att artikeln ska bli  allt  fr
 grundlggande och detaljerad, men jag  kan  sga  att  du  ppnar  Ntverk  i
 Kontrollpanelen fr att lgga till Protokoll och Tjnster. Det som ska lggas
 till om det redan inte finns r: 

    Fil- och skrivardelning fr Microsoft Network
    IPX/SPX Kompatibelt-protokoll
    NetBEUI
    TCP/IP

 Lgg till tjnsterna och protokollen ovan p alla datorer som ska inkludera i
 Ntverket.


   [- Stt ett frbestmt lokalt IP -]

 Fr att datorerna ska kunna kommunicera med varandra  s  krvs  det att  man
 stter en slags identifikation p varje dator, dvs. IP nummer.

 Ta egenskaper fr Ntverk, sedan Egenskaper fr TCP > Namn  p  ntverkskort.
 Vlj IP Address och klicka lite p Specify an IP Address. Skriv in en IP Add-
 ers, t.ex. 192.168.0.2 som r en standard fr Ntverk. Om du  vill  veta  mer
 kan du ska efter info om  Class  Ntverk. Subnet  Mask  ska  du  stta  till
 
 255.255.255.0.


    [-  Stt ett domainname istllet fr IP -]
 
 kan du ska efter info om  Class  Ntverk. Subnet  Mask  ska  du  stta  till
 Det kan tyckas jobbigt att skriva in en ip address s for t man  ska connecta
 till en dator. ppna filen c:/Windows/hosts  eller  hosts.sam. Blddra  frbi
 alla kommentarer (#). Du kommer se 127.0.0.1 localhost. Lgg till dina egna
 IP addresser och hitta p nt coolt domainname. t.ex.

  127.0.0.1       localhost
  192.168.0.3     bad_s1n
  192.168.0.2     hypocrisy
  192.168.0.1     mortal


    [-  Dela ut mappar och skrivare -]

 Fr att du ska kunna ge tillgng frn andra datorer att  se  vissa  bibliotek
 eller devices s  behver  du  dela  ut  dem  ocks. Hgerklicka  p  t.ex. C
 enheten och vlj "Dela ut" och tryck fr Delad. Dr kan  du  namnge  dem  och
 kommentera och stlla in vilken tkomsttyp + stta passwd p dem.

 Om du ska dela p en skrivare s gr du i princip samma sak. Du vandrar  ver
 till den datorn dr skrivaren r inkopplad och hgerklickar p den och vljer
 dela ut.


    [- Testa om det fungerar -]

 G ut i DOS och kr ping <ipnummer>. Exempel fljer nedan:


 C:\> ping syrgas

 Pinging syrgas [192.168.0.2] with 32 bytes of data:

 Reply from 192.168.0.2: bytes=32 time=1ms TTL=32
 Reply from 192.168.0.2: bytes=32 time<10ms TTL=32
 Reply from 192.168.0.2: bytes=32 time<10ms TTL=32
 Reply from 192.168.0.2: bytes=32 time<10ms TTL=32

 Jaupp, det funkade.


    [- Efterord -]

 Mer var det inte. Det kanske kommer eventuella tutorials dr du kan lra  dig
 IP addressering, arp och mer om tcp/ip och p ett  roligt  praktiskt  stt :)
 Har du ngra frgor s finns jag p DALnet (#swehack)
 Just det!, en sak till var det..Jag brukar inte hlla  mina  lften, men  den 
 hr gngen ska jag frska s gott  jag kan. Jag  tnker  nmligen skriva  en
 tutorial eller  en  artikel  om  Ntverk  och  Ntverksskerhet  i Linux. Den
 kompletta guiden  kommer  allts  innehlla  hur  du  stter  upp  en ntverk 
 mellan flera Linux datorer och hur du stter upp samba  fr  att  koppla ihop
 Windows klienter i Ntverket och till sist hur du stter  upp  en  dator  som
 Firewall fr att skydda ditt ntverk.


 -----------------------------------------------------------------------------
                                             Hur vi hade det p Dreamhack []
 ----------------------------------------------------------------------------- 
 Jag  kom  dit  brande  med  mina  grejer  och  lastade  upp  dom p ett bord
 och kopplade ihop alla kablar, ntverket  var  inte  kopplat  n  pgrund  av
 att dom inte hade ftt  hrdvaran  till  Ntverket.

 Men  iafs, jag  satt  och
 pillade med Linux ett tag och sg att klockan tickade runt 13 tiden sdr,jag 
 begav mig till informationen fr att ropa upp axxezz, han kom inte frsta g-
 ngen jag ropade upp han men dremot andra, jag flyttade bort till  honom  och 
 startade Linux och brjade pilla igen. Sneglade mig omkring och sg  att  jag 
 befann mig dr folk i alla fall krde ngot Unix  system, vilket  var  ganska 
 lttande.

 Flera timmars vntade, inte mkt hade hnt. Jag kkade en  pizza  p 
 kvllen och fortsatte pilla. Klockan slog runt 5:00 och d brjade switcharna 
 komma upp p borden. Jag sprang med TP kabeln i handen och kopplade in den  i 
 switchen, precis som manslemen i vaginan :P. Frst funkade det  inte, och det 
 var pgrund av att dom inte ftt upp routern  n. Men  nr  den  kom  upp  s
 funkade allt fint i nn timme sen pajade switchen, ngra timmars vntade  sen
 funkade det igen. Klockan slog 14.00 och jag gick och sov i en timme och gick
 upp och ircare lite, och brjade trffa folk.

 Den frsta jag trffade d  var
 dizze aka philtre som kom frbi och hlsade trevligt. Jag som tyckte synd  om
 mig sjlv fick  d hra hur dligt han hade det. Han hade inget  ntverkskort
 verhuvudtaget. Vad gjorde axxezz d ? .. han installerade om  Linux  25  grr
 p rad och upptckte att hans  ntverksskort  inte  funkade, jag  lnade  han
 lite deg s ha n kpte  sig  ett  litet  fint  ne2000  kort. Han  kopplade in  
 kortet och installerade Slackware (igen) och upptckte att Lilo hade  skrivit
 ver hans boot parametrar. Han va fast i Linux!, som iofs inte var ngot  att
 lida med, snarare tvrt om. Han fick dhcp att funka  sen  var  han  redan  d 
 framfr IRC klienten. 

 Jag kom ett par  timmar  senare. Jag  kpt e ocks  ett  nytt  ntverksskort.
 Anledning vill ni inte vet :) Tillslut var korte t och  dhcp  klienten  fullt 
 fungerande i mitt fina Linux  system. Jag  satt  och  pilla  lite, fick  ven
 ljudet att fungera. phreedom kom ver med en cd metal mp3. S  jag  kopierade
 ver lite till /dev/hda7 och brjade  digga  lite. Sen  begav  jag  mig  till
 kiosken och kpte en platta cola till. Tillslut, vad gjorde man p dreamhack? 

 Man drack cola, pillade med Linux och trffade IRC folk.  Den hr  lilla  lt
 oss kalla historien r inte komplett, men jag hoppas att ni verlever ?


 -----------------------------------------------------------------------------
                                               Windows Programmering i C++ [] 
 -----------------------------------------------------------------------------
      CCC 
     C       
    C       +    + 
    C      +++  +++ 
     C      +    + 
      CCC            Windows Programmering  / [#Define Version 1] 
 
 
 [Inledning] 
 
 Orsaken till den hr artikeln  r  tristess  och  hos  skribenten  en  allmn
 avsaknad  av  programmeringsdiskussioner, s  ta  inte  alltihop  p  blodigt
 allvar. Det  kan verka serist frn en brjan, men allting r  objektivt. Jag
 vet att  intresset fr Windoze-programmering r ganska lgt, men jag  ska  om
 jag fr  tid/ork skriva ngonting om  X11/GDK/QT-programmering  istllet. Den
 hr  artikeln, kan jag redan nu ppeka, kommer inte innehlla ngot om VC++'s 
 klasser/metodik  eller Builder. I min  sikt  r  det  bttre  att  lra  sig 
 frn  grunden  och *sedan* lra  sig  att anvnda frenklingar och eventuella 
 utkningar. Innan vi brjar s ska jag  bara  dra  en  vldigt  grundlggande 
 sak: variablers storlek. Dessa  varierar  som  ni  skert  vet,  beroende  p 
 platform. S jag tar upp de som gller fr Windows (dvs 32-bit). 

 unsigned	CHAR	8 bits       0 till 255 
 		CHAR    8 bits       -128 127 
 short 		INT 	16 bits	     -32,768 till 32,767 
 unsigned 	INT	32 bits	     0 till 4,294,967,295  
		INT     32 bits      -2,147,483,648 till 2,147,483,647 
 unsigned	LONG    32 bits      0 till 4,294,967,295 
		ENUM    32 bits      -2,147,483,648 till 2,147,483,647 
		LONG    32 bits      -2,147,483,648 till 2,147,483,647 

  Dessa anvnds uteslutande, men det finns fler. Windows har  en  (o)vana  att 
 anvnda andra variabler, allt fr att kompilatorn ska kunna  kontrollera  att 
 korrekt data anvnds. Dessa faller dock tillbaks  p  ovanstende  variablers 
 (eller i andra fall tex float, double och dom andra)  storlek. Innan  vi  gr 
 vidare vill jag bara ppeka att variablers storlek r ganska viktig,speciellt  
 om  ni tnker anvnda fljande exempel, eller programmera Win32, i assembler.
 Drfr ska ni akta er fr pstenden som tex att en char och en int r  lika.
 Sdana pstende m  vara  sanna  nnstans, men  inte   hr, och  skulle  det 
 implementeras  s  kan  man  frvnta  sig  en massa ondigt krngel. Jag ska
 frska att vara s detaljerad som det bara gr,men knner du  att det saknas
 ngot, eller vill ppeka ngot s gr  grna  det. ven  kritik, ven  om jag
 sjlvklart kommer att ignorera alla personangrepp. S fr att ta det  riktigt
 frn brjan. 
   
 [Hur r Windows uppbyggt?]  
 

 Jag har fr mig att jag tagit upp  det  tidigare, men  en  repetition  skadar 
 aldrig :-). 


     Windows r uppbyggt fr en klient-server milj. Frvxla inte det hr med 
 ngon kommunikationsmodell, ven om det finns likheter. Tanken r  sdan  att 
 servern (sjlva operativsystemet i det  hr  fallet) ska  tillhandahlla  med 
 resurser (grafiska ytor, medel fr kommunikation med enheter  osv) som  sedan 
 klienter  (enskilda  program)  ska  kunna  anvnda. Denna  implementering  r 
 fr   att skilja operativsystemet frn programmen. Teoretiskt ska det  betyda
 att   nr en klient kraschar s ska servern vara  oberrd. Det  funkar  inget
 vidare   i Windoze, men det funkar desto bttre i tex X11. Vad detta  betyder
 r att   programmet r uppbyggt annorlunda frn program i DOS  eller  Windows
 3.x.


   ---* Windows Multi-Tasking 
 
   Windows r Multi-tasking vilket vi under lng tid  blivit  varse. Medan DOS 
 program  var  ganska  statiska  (om  programmet  inte  gjorde  ngonting,  s 
 hnde   ingenting och skulle det hnda ngonting s var det upp till program-
 met att   se till att det hnde) s r  Windows  program  dynamiska. ven  om
 programmet   inte gr  ngot, skickas  data  till  det, andra  program  utfr
 saker och s  vidare. Vad betyder detta programmeringsmssigt? Jo det betyder
 att Windows   mste hela tiden ha en mjlighet att terge hndelser till ditt
 program,  detta sker igenom en sk Message-Queue. Nr Windows vill kommunicera
 med   ditt program, skickar den ett message, vilket placeras i en k, och som 
 sedan Windows frvntar sig att programmet ska behandla. Meddelanden r  helt 
 enkelt en struktur, kanske ska tillggas. Jag gr nrmare in p detta  utbyte 
 lngre fram.       

   ---* Windows API (Application Programming Interface)   
 enkelt en struktur, kanske ska tillggas. Jag gr nrmare in p detta  utbyte 
 Det interface som anvnds fr att kommunicera med Windows och andra  program.
 Lite grovt skulle man kunna sga att  det  r  en  vidareutveckling av INT's.   
 S  eftersom  ni  nu  genast skaffat denna felaktiga uppfattning, ska jag dra
 skillnaderna. Medan  INT's  var  deklarerade  i  operativsystemet  sjlvt  r
 API  en  samling  funktioner  i  olika .DLL's, Dynamic Link Libraries. Sjlva
 samlingen  kan drfr enkelt expanderas med funktioner som inte operativsyst-
 
 operativsystemet  sjlv  handhar, utan  som  r  frn   olika   program.  Den 
 grundlggande  kommunikationen  med enheter (som INT's hade hand  om)  ligger
 inte  hos API, utan  dessa  r  istllet  ytterligare ett lager, allt fr att
 underltta kommunikationen, och  skert  ven  utvecklingen  av  program. Ska 
 ocks ppekas att Windows anvnder en 32-bit flat memory model till  skillnad 
 frn  DOS, men  det har jag tagit upp tidigare och en repition r verfldig.  
 S fr att ni inte ska d av tristess innan artikeln ens  brjat s  ska  jag 
 skriva ett litet HelloWorld program. Dom brukar  vara  populra :-).        
 NOTeringar  innan exemplet: Alla  variabler  som  brjar  p  h  r generellt
 handles, fr en beskrivning av variabel-prefix se slutet.  
   

 #include <windows.h>  /* Sjlvklart */    
 LRESULT CALLBACK WindowFunc(HWND, UINT,  WPARAM, LPARAM);   
 /*Funktionsdefinition fr att vi ska slippa errors  pga  att vi placerar
 funktionen sist. */     

 char szWinName[] = "MinWinKlass";   /* Vad vran
 Window-klass ska heta. Mer om det under genomgngen */   
 int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE hPrevInst, LPSTR lpszArgs,
 int nWinMode) {  	 
 HWND hwnd; 
 
 MSG msg; 
 WNDCLASS wcl; 
 /* En titt p ovanstende skadar inte. */ 
 
 
 /* Okey, s ltom oss tala om hur vran fnster-klass ska vara. Det gr vi 
 igenom att manipulera medlemmarna i den (WNDCLASS) wcl vi just deklarerat. */ 
 
 wcl.hInstance = hThisInst; /* handle till vran instans. */ 
 wcl.lpszClassName = szWinName;  /* Namnet p vran klass */ 
 wcl.lpfnWndProc = WindowFunc; /* Den CallBack window-funktion som sedan ska
ta hand  om de meddelanden (messages) som Windows skickar till vrt program
*/  wcl.style = 0;  wcl.hIcon = LoadIcon(NULL, IDI_APPLICATION); /*
standardikon hmtas med LoadIcon */  wcl.hCursor = LoadCursor(NULL,
IDC_ARROW); /* ditto (fast pekare givetvis ;-) */  wcl.lpszMenuName = NULL; /*
ingen meny den hr gngen */   
wcl.cbClsExtra = 0; 
wcl.cbWndExtra = 0; 
 
/* Det var dom grundlggande medlemmarna det. Uhm. Just det, kanske ska 
tala om frg p bakgrunden ocks */ 
wcl.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);  
/* detta gr vi igenom att lmna tillbaks handle'n till en vit pensel med GetStockObject(). */ 
 
if(!RegisterClass(&wcl)) return 0; /* s frsker vi registrera vr fnsterklass s att 
Windows ska veta vad vi pratar om sedan nr vi kommer att referera till den. Skiter det 
sig hr r det allvarligt och det r stort sett bara att avlsuta. */ 
 
/* sdrja men eftersom att mickla med en klass inte stadkommer nnting (mer n att 
se till att det hr programmet funkar ;-) s ska vi ocks skapa ett fnster (wheee)... */ 
hwnd CreateWindow( 
   szWinName,  /* Vilken window-klass vi ska anvnda */ 
   "HelloWorld Example",  /* vad som ska st i title-bar'en */ 
   WS_OVERLAPPEDWINDOW,  /* vilken stil vi ska ha p vrat fnster */ 
   CW_USEDEFAULT, /* X koordinat, lt windows bestmma */ 
   CW_USEDEFAULT, /* Y koordinat, ditto */ 
   CW_USEDEFAULT, /* bredd, ditto */ 
   CW_USEDEFAULT, /* hjd, ditto */ 
   HWND_DESKTOP, /* Frlder? Skrivbordet. Mer om det senare. */ 
   NULL,  /* ingen meny */ 
   hThisInst, /* vilken instans av programmet */ 
   NULL);  /* inga extra parametrar */ 
 
/* Sdr ja. Ett fnster. Men eftersom vi inte angett WS_VISIBLE som stil, s 
   syns det inte nnu. Drfr s visar vi det, och passar p att uppdatera */ 
ShowWindow(hwnd, nWinMode); 
UpdateWindow(hwnd); 
 
/* Nu, ytterligare en viktig del, vran messageloop. Den kommer att fnga upp alla 
   messages som kommer att riktas till vrat program och sedan skicka dom till vran 
   Window CallBack funktion (WindowFunc). Loopen avslutas nr 0 lmnas, vilket 
   betyder att programmet ska avslutas. */ 
while(GetMessage(&msg, NULL, 0, 0)) { 
TranslateMessage(&msg); 
DispatchMessage(&msg); /* lmna tillbaks kontrollen till Windows */ 
} 
return msg.wParam; 
} 
 
/* Dags fr vran CallBack funktion. */ 
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { 
   switch(message) { 
       case WM_DESTROY : 
          PostQuitMessage(0); /* kommer gra s att vran MessageLoop fr 0 och 
                                 hela programmet avslutas */ 
          break; 
       default :   /* alla andra meddelanden hamnar hr men det r ju logiskt */ 
          return DefWindowProc(hwnd, message, wParam, lParam); 
       /* Lt Windows avgra hur meddelandet ska hanteras, slags standardbehandling */ 
    } 
   return 0; 
}
 

 Knner  ni  igen  programmet BTW? Bra, d  har  ni  lst  min  tidigare, lite
 spartanare text  om grundlggande Windows programmering. Jag r hemskt ledsen
 om det blir ngot av en  upprepning. Det fr ni tla.Jag frutstter att alla
 vet hur man anvnder klasser,  switch-satser och  liknande  eftersom  det  r
 grundlggande  C++. Annars  fr  ni  vl  sklla   p   mig :-).  Programmets
 exekvering  brjar vid WinMain() och fr frn Windows lite data  som kan vara
 anvndbart. hThisInst  refererar  till nuvarande instans, och hPrevInst  till
 den frra. Anvnds om man tex vill  frhindra  att  flera  instanser  av  ens
 program  finns samtidigt. lpszArgs r en pekare till en strng som innehller
 all command-line  data.nWinMode innehller en parameter som sger hur Windows
 vill att ditt program  frst ska visas. Gr att bortse ifrn.
    
 szWinClassName[] innehller vad n vi mnde vilja  kalla  vran  Window-klass 
 (WNDCLASS).  Strngen anvnds sedan fr att referera till just  denna  klass.
 hwnd  eller  hWnd om ni hellre vill det, r en handle till vrat fnster. Vid 
 alla  operationer igentemot det mste vi ha denna handle. ven fr att  kunna
 pverka andra fnster mste vi ha deras handle's, men mer om hur man fr fram
 dessa senare. Grundlggande faktum: Ingen handle, ingen pverkan. wcl behver 
 jag vl inte g igenom, eller hur? Bra. Dremot kan vi titta lite nrmare  p
 LoadIcon & LoadCursor. HICON LoadIcon(HINSTANCE hInst, LPCSTR lpszName);    
 HCURSOR LoadCursor(HINSTANCE hInst, LPCSTR lpszName);  hInst anger  instansen
 fr den modul som innehller resursen, eftersom vi  hmtar  en standardresurs
 anger vi NULL. lpszName identifierar resursen.  
  
    Exempel p standardikoner (\include\windows.inc) 
 IDI_APPLICATION          32512 
 IDI_ASTERISK             32516 
 IDI_EXCLAMATION          32515 
 IDI_HAND                 32513 
 IDI_QUESTION             32514 
 
   Exempel p standardpekare  (\include\windows.inc) 
 IDC_ARROW                32512 
 IDC_CROSS                32515 
 IDC_IBEAM                32513 
 IDC_WAIT                 32514 

 Som tidigare ppekats skaffar vi oss en vit  bakgrund  igenom  att  lmna  en
 handle till en pensel (brush) som r vit. Detta grs med GetStockObject() som
 anvnds fr  att hmta standardresurser. Orsaken till (HBRUSH) konverteringen
 r fr att   GetStockObject() ser ut shr:

 HGDIOBJ GetStockObject(int object); 
 
    Exempel p standardpenslar (\include\windows.inc) 
 BLACK_BRUSH              4 
 DKGRAY_BRUSH             3 
 HOLLOW_BRUSH             5 
 LTGRAY_BRUSH             1 
 WHITE_BRUSH              0 

 Nr vi skapade vrat fnster anvnde vi en ganska extensiv stil,  
 WS_OVERLAPPEDWINDOW, men vi kan vara mycket  petigare  om  vi  vill. Fljande
 stilar kan  OR'as ihop fr att stadkomma en mer anvndardefinierat  fnster.
    
     Exempel p fnsterstilar (\include\win32\winuser.h) 
 WS_BORDER(0x80)              --    Enkel ram 
 WS_OVERLAPPED(0x00)          --    Fnster med border. 
 WS_MAXIMIZEBOX(0x01)         --    Fnster med Maximize-ruta 
 WS_MINIMIZEBOX(0x02)         --    Fnster med Minimize-ruta 
 WS_SYSMENU(0x08)             --    System meny 
 WS_CAPTION(0xC0)             --    Alt WS_BORDER | WS_DLGFRAME 
 WS_THICKFRAME(0x04)          --    Fet border 
 WS_OVERLAPPEDWINDOW(WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | 
                     WS_MINIMIZEBOX | WS_MAXIMIZEBOX) 

 n s lnge har jag inte bidragit med s mycket nytt, men  ha  lite  tlamod,
 det kommer.  Frst bara en  snabb  frklaring  av  WM_DESTROY. Detta  r  ett
 meddelande som skickas av  Windows nr din applikation hller p  att avslut-
 as. S inom  denna  case  s  ska  frslagvis  all  upprensning  ske  s  att
 programmet  kan  avslutas 'rent'. Slpp  lsta   resurser, frigr  minne  och 
 snygga upp efter programmet. Observera att WM_DESTROY postas *efter* det  att
 fnstret redan tagits bort, avslutning  har p detta vis redan pbrjats.Vill
 man ingripa tidigare i avslutningsprocessen  (som  tex  frga  om  anvndaren
 verkligen vill avsluta) ska  man  anvnda  sig  av  WM_CLOSE.  I DefWndProc()
 anropar WM_CLOSE helt enkelt DestroyWindow() som  i  sin  tur  genererar  ett
 WM_DESTROY meddelande, som anropar PostQuitMessage() som i sin tur  genererar 
 ett WM_QUIT meddelande.

 WM_CLOSE -> DestroyWindow() -> WM_DESTROY -> PostQuitMessage() -> WM_QUIT 

 Program har ocks s att dom frgar 'Vill du verkligen avsluta?'. Det kan  vi
 lgga   till. D ska vi anvnda oss av MessageBox() som ser ut p detta  vis:
   
 int MessageBox(HWND hWnd, LPTCTSTR lpText, LPTCTSTR lpCaption, UINT uType); 
  
 Exempel p typer fr MessageBox'es: 
 MB_ABORTRETRYIGNORE 
 MB_ICONASTERISK 
 MB_ICONERROR 
 MB_ICONEXCLAMATION 
 MB_ICONHAND 
 MB_ICONSTOP 
 MB_ICONINFORMATION 
 MB_ICONQUESTION 
 MB_ICONWARNING 
 MB_OK 
 MB_OKCANCEL 
 MB_RETRYCANCEL 
 MB_YESNO 
 MB_YESNOCANCEL 
 
 Det gr i den mn det r praktiskt att anvnda fler typer. Tex: 
 MessageBox(hwnd,"Vill du verkligen avsluta?","Avsluta",MB_YESNO |
 MB_ICONQUESTION);  fr vran avslutningsfrgare. Return-vrden r: IDABORT,
 IDCANCEL, IDIGNORE, IDNO,  IDYES, IDRETRY och IDOK, med reservation fr  att
 jag kan ha glmt ngon. 
  
 case WM_DESTROY : 
    PostQuitMessage(0); 
    break; 
 case WM_SYSCOMMAND : 
    if(wParam == SC_CLOSE){ if(MessageBox(hwnd,"Vill du verkligen avsluta?", "Avsluta",MB_YESNO) == IDYES)
  PostQuitMessage(0);      
 } 
  else return
DefWinProc(hwnd,message,wParam,lParam);     
break;    


 En kort frklaring av
 
 MB_YESNOCANCEL 
 
 Det gr i den mn det r praktiskt att anvnda fler typer. Tex: 
 MessageBox(hwnd,"Vill du verkligen avsluta?","Avsluta",MB_YESNO |
 MB_ICONQUESTION);  fr vran avslutningsfrgare. Return-vrden r: IDABORT,
 IDCANCEL, IDIGNORE, IDNO,  IDYES, IDRETRY och IDOK, med reservation fr  att
 jag kan ha glmt ngon. 
  
 case WM_DESTROY : 
    PostQuitMessage(0); 
    break; 
 case WM_SYSCOMMAND : 
    if(wParam == SC_CLOSE){ if(MessageBox(hwnd,"Vill du verkligen avsluta?", "Avsluta",MB_YESNO) == IDYES)
  PostQuitMessage(0);      
 } 
  else return
DefWinProc(hwnd,message,wParam,lParam);     
break;    


 En kort frklaring av
 WM_SYSCOMMAND kan vara p sin plats fr alla er som inte  orkar kolla upp
 saken. Detta meddelande genereras nr ngonting vljs antingen  frn ett
 fnsters system-meny eller snabbsystem-knapparna till hger.   Vgar man ta
 med lite kass ASCII?  
  
 .-------------------------------------------------. 
 |Ikon |     Program-titel           |Min|Max|Close| 
 |_____|_____________________________|___|___|_____| 
   |                                      \|/ 
   |                                       | 
 System-meny                           Snabbval 
 
    Exempel p SYSCOMMAND-alternativ 
 SC_CLOSE      0x0F060               Stng, avsluta fnstret 
 SC_DEFAULT     ?                    Dubbelklick p system-menyn 
 SC_MAXIMIZE   0x0F030               Maximera 
 SC_MINIMIZE   0x0F020               Minimera 
 SC_RESTORE    0x0F120               terstll 
 SC_ICON       SC_MINIMIZE 
 SC_ZOOM       SC_MAXIMIZE 
  
Jaja, det dr kan ni skert redan. Vi gr ver till kontroller. Dessa r 
pre-definierade fnster-klasser och sonika behver vi inte skapa nya klasser 
utan kan beropa dem direkt med CreateWindow(). Vi lgger detta under 
initierings-fasen av ovanstende program, nmligen i WM_CREATE.  
 
RECT rect; 
HWND hButton; 
 
---- 
 
   switch(message) { 
       case WM_CREATE : 
   hButton = CreateWindow("BUTTON", "Quit", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 
                0, 0, 65, 25,hwnd,NULL, hThis  
Jaja, det dr kan ni skert redan. Vi gr ver till kontroller. Dessa r 
pre-definierade fnster-klasser och sonika behver vi inte skapa nya klasser 
utan kan beropa dem direkt med CreateWindow(). Vi lgger detta under 
initierings-fasen av ovanstende program, nmligen i WM_CREATE.  
 
RECT rect; 
HWND hButton; 
 
---- 
 
   switch(message) { 
       case WM_CREATE : 
   hButton = CreateWindow("BUTTON", "Quit", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 
                0, 0, 65, 25,hwnd,NULL, hThisInst, NULL); 
   if(hButton == NULL) MessageBox(hwnd, "Kunde inte skapa knapp.", "Error",MB_OK); 
       break; 
       case WM_DESTROY : 
          PostQuitMessage(0); /* kommer gra s att vran MessageLoop fr 0 och 
                                 hela programmet avslutas */ 
          break; 
       default :   /* alla andra meddelanden hamnar hr men det r ju logiskt */ 
          return DefWindowProc(hwnd, message, wParam, lParam); 
       /* Lt Windows avgra hur meddelandet ska hanteras, slags standardbehandling */ 
    } 
   return 0; 
} 
 
Hmmmm... Ingen vidare placering, eller hur? Nja. Lt oss rtta p det innan vi gr 
vidare med att f knappen att fungera. (Observera RECT rect; som vi deklarerade i 
exemplet ovan, men som egentligen inte anvnds frrens nu). 
 
       case WM_CREATE : 
   GetClientRect(hwnd, &rect); 
   hButton = CreateWindow("BUTTON", "Quit", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 
                (rect.right / 2) - 30, rect.bottom-26, 65, 25,hwnd,NULL, hThisInst, NULL); 
   if(hButton == NULL) MessageBox(hwnd, "Kunde inte skapa knapp.", "Error",MB_OK); 
       break; 
 
 
Koordinaterna *borde* gra s att knappen hamnar i mitten-lngst-ner, stmmer inte 
det s korrigera koordinaterna tills knappen r dr du vill ha den. Innan jag 
glmmer, shr ser RECT ut: 
 
typedef struct _RECT {    
 
    LONG left;  
    LONG top;  
    LONG right;  
    LONG bottom;  
} RECT;  
 
GetClientRect() hmtar datan fr den rektangel som r klient-omrdet p ett 
fnster. Den r ocks relativ till sig sjlv s left & top r alltid 0.  
Fr att hmta ett fnsters rektangel relativ till skrmen anvnds 
GetWindowRect(), men bgge fungerar p samma stt.  
 
Men varfr funkar inte knappen? Helt enkelt drfr att vi lter Windows hantera 
dess funktionalitet ;-). Allvarligt, s beror det p att vi verlter de 
meddelanden som knappen generar till DefWndProc() som helt sonika inte gr ngot 
t dem. S lt oss ndra p det. De flesta kontroller skickar sk notify-messages 
till sina frldrar nr ngot hnder dem, eller nr de frvntar att ngot ska 
hnda. Notify-messages gr igenom WM_COMMAND, s vi fngar upp dessa.  
 
HWND hwndCtl; 
long wNotifyCode; 
 
---- 
 
    case WM_COMMAND : 
        hwndCtl = (HWND) lParam; 
        wNotifyCode = HIWORD(wParam); 
        if(wNotifyCode == BN_CLICKED) PostQuitMessage(0); 
    break; 
 
Trevligt. Nu kan vi avsluta vrat program med knappen. Fast det finns en liten 
skavank i det hr programmet. Lgger vi till ytterligare en knapp, s kommer 
inte programmet att gra ngon skillnad p dem och bda kommer drfr att skicka 
ett PostQuitMessage(). Det vill vi ju inte. S vi modifierar den lite. 
 
HWND hwndCtl; 
long wNotifyCode; 
 
    case WM_COMMAND : 
        hwndCtl = (HWND) lParam; 
        wNotifyCode = HIWORD(wParam); 
        hButton = GetWindow(hwnd, GW_CHILD); 
        if((wNotifyCode == BN_CLICKED)&&(hwndCtl==hButton)) PostQuitMessage(0); 
    break; 
 
Nu kommer bara den knapp som skapats frst att avsluta programmet. En liten 
frklaring kan nog vara p sin plats. GetWindow() hmtar en fnsterhandle som har 
en specifik relation till en annan fnsterhandle. I det hr fallet, barnet till 
vrat huvudfnster, vilket rkar vara knappen, eftersom vi skapade den med WS_CHILD. 
 
HWND GetWindow(HWND hWnd, UINT uCmd); 
 
  Exempel p relationer i GetWindow(): 
GW_CHILD                5 
GW_HWNDNEXT             2 
GW_HWNDPREV             3 
GW_OWNER                4 
 
Nu r det ju s att vran knapp har en ganska statisk position. Den placeras nr 
fnstret skapas, men det r allt. Sedan sitter den bara dr. Det fixar vi igenom 
att fnga upp WM_SIZE (jupp, ni gissade rtt, skickas nr storleken p ett 
fnster ndras). S vad ska vi gra i WM_SIZE? Knner du att du brjar f grepp 
om det hela, s prva sjlv att lista ut hur det ska se ut, mlet r en knapp 
som dynamiskt flyttar sig efter hur stort fnstret r. Drav att jag placerade 
den i mitten :-).  
 
Under tiden kan jag ta upp relationer mellan fnster som vi var inne p tidigare. 
En Frlder kan ha hur mnga Barn som helst, men ett Barn kan bara ha en Frlder 
(inga familjevrden dr inte ;-). Frutom detta faktum finns det vissa andra saker 
som gller Frlder-Barn relationen. Ett Barn r begrnsat av sin Frlders klient 
area, dvs ett Barn kan inte ritas utanfr sin Frlder. Istllet blir barnet  
'clipped' som det kallas, arean som egentligen r utanfr Frldern ritas helt 
enkelt inte. Dremot kan (om inte WS_CLIPCHILDREN angetts) Frldrar rita ver 
sina Barn. Syskon kan ocks rita ver varann s lnge inte ett av syskonen har 
WS_CLIPSIBLINGS. Relationer mellan fnster kan ndras med tex SetParent(). Andra 
funktioner gllande relationer r GetParent(), IsChild() och EnumChildWindows().  
Den sistnmnda kan krva en frklaring.  
 
BOOL EnumChildWindows( HWND  hWndParent, WNDENUMPROC  lpEnumFunc, 
                         LPARAM  lParam); 
 
Denna funktion frpassar alla Barn-handle's till en specifierad CallBack 
funktion, lpEnumFunc. lParam r en applikationsdefinierad parameter som 
kan skickas med som ytterligare argument. Denna funktion r mycket mer 
plitlig n att anropa GetWindow() i en loop d den inte pverkas av 
yttre pverkan p Barnen.  
  
Nr en Frlder ska frstras skickas en WM_DESTROY till alla Barn.  
Som tidigare ppekats skickar system-definierade Barn sk Notify messages 
till sina Frldrar, men det r viktigt att veta att alla messages skickas 
direkt till Barnen, utan att processeras av Frldern. Enda undantaget r 
om ett Barn har blivit Disabled, Frldern mottar d alla input messages som 
skulle frpassats till Barnet fr att kunna avgra nr det terigen ska 
bli Enabled.   
 
... 
 
Fr att terigen terg till vran knapp. Hr r ett exempel p hur det 
skulle kunna se ut. 
 
case WM_SIZE : 
   hButton = GetWindow(hwnd, GW_CHILD); 
   GetClientRect(hwnd, &rect); 
   MoveWindow(hButton, 
   (rect.right / 2) - 30, rect.bottom-26, 65, 25, TRUE); 
   UpdateWindow(hwnd); 
break; 
 
... 
 
   ---* Leka med musen (det vill vi alla... ) 
 
Eftersom Windows i hgsta mjliga mn faller tillbaks p musen s kan det vara 
passande att g igenom hur den fungerar och vad man kan tnkas ha fr kul med 
den. Istllet fr att g igenom ngot oproduktivt exempel dr ngon text skrivs 
ut dr muspekaren befinner sig, ska vi istllet brja direkt med att gra 
ngonting nyttigt med den. Vissa applikationer har som bekant en bakgrund som 
r en interaktiv del av programmet sjlvt, ven om det i mnga fall bara handlar 
om att byta just utseendet p bakgrunden. Men jag ska frska visa hur detta gr 
till, igenom den flytande meny som ska dyka upp nr man hger-klickar inom ett 
fnsters klient-area. Nu dyger det dock upp en kompilator-kompabilitets frga, 
nmligen med hur resurser inkluderas i ett program. I Borlands kompilator r 
det bara en frga om att inkludera en text-fil som heter *.rc. Hur det gr till 
med just eran kompilator r en sak som ni sjlva fr utforska. Men med alla 
'bloated' kompilatorer ska det inte vara ngot strre problem. Kr ni direkt 
versttning till assembler blir det lite jobbigare, observa detta, men inte 
svrare eftersom assembler har den mest genuina approachen av alla. Eftersom 
vi bara ska (iaf just nu) ha en meny s kan man i viss mn komma runt anvndandet 
av .rc filen. Men det blir till utvarens eget infinitum indoles.  
 
   S vi brjar med att lgga till vran lilla popup-meny till en .rc fil. 
 
POPPIE MENU { 
   POPUP "PopupMeny" {    
      MENUITEM "&Alt 1",601 
      MENUITEM "&Alt 2",602 
   } 
} 
 
Klar? Aurum. Vi ska nu se till att den kommer till anvndning ocks. Fr att 
skapa en flytande popup meny kommer vi att anvnda TrackPopupMenuEx().  
 
BOOL TrackPopupMenuEx(HMENU hmenu, UINT fuFlags,int x, int y, HWND hwnd,  
                        LPTPMPARAMS  lptpm); 
 
Frgan r nu nr vi ska skapa denna meny. Ett frslag r WM_RBUTTONDOWN. 
Eftersom ingen har mjlighet att i denna redan verggna presens, protestera 
s anvnder vi det.  
 
POINT pt; 
HMENU hMenu, hSubMenu; 
 
---- 
 
    case WM_RBUTTONDOWN : 
       pt.x = LOWORD(lParam); 
       pt.y = HIWORD(lParam); 
       ClientToScreen(hwnd, &pt); 
 
       hMenu = LoadMenu(hInst, "POPPIE"); 
 
       hSubMenu = GetSubMenu(hMenu, 0); 
 
       TrackPopupMenuEx(hSubMenu, 0, pt.x, pt.y, hwnd, NULL); 
 
       DestroyMenu(hMenu); 
    break; 
 
Egentligen inte s mycket konstigheter men vi gr igenom det nd fr 
skerhets skull. POINT r en struktur som innehller x & y positionen av en 
punkt. 
 
typedef struct tagPOINT { 
    LONG x;  
    LONG y;  
} POINT; 
 
I deklarationen av WM_RBUTTONDOWN ser vi att lParam innehller positionen 
fr pekaren nr meddelandet postas. Sedan anvnder vi ClientToScreen() vilket 
kan verka ngot kryptiskt, men r fullt logiskt nr man vet var det handlar 
om.  
 
BOOL ClientToScreen( 
    HWND  hWnd,	 
    LPPOINT  lpPoint); 
 
ClientToScreen() verstter helt enkelt koordinaterna frn en punkt, relativ 
till ett fnsters klientomrde till skrmkoordinater. Sedan laddar vi vran 
menu frn nuvurande instans' resurser med LoadMenu(). Vi anvnder oss av den 
identifierare som vi anvnt oss av i .rc'n.  
 
HMENU LoadMenu( 
    HINSTANCE  hInstance, 
    LPCTSTR  lpMenuName);  
 
BOOL DestroyMenu(HMENU  hMenu); 
 
Efter detta plockar vi fram vran sub-meny, som vi sedan anvnder nr vi 
anropar TrackPopupMenuEx(). Hmmm. Den deklarationen hade jag redan haft 
med, s var det ja. Eftersom vran meny-resurs inte lngre behvs, frigr 
vi den med DestroyMenu(). S lngt har vi en meny. Men den stadkommer 
inte vidare mycket. Varfr inte? (Fr jag hra i kr nu:) Drfr att  
meddelandena som menyn genererar hamnar hos DefWndProc(). Eller om ni sparat 
tidigare ndringar s ignoreras de totalt (de gr nmligen igenom 
WM_COMMAND). Men innan vi gr vidare och ger vran lilla popup-meny en orsak 
fr sin existens s ska vi g in lite som hastigast p ngra system 
definierade funktioner som finns fr att programmeraren ska slippa behva 
ha med vissa grundlggande uppgifter i sitt program. En av dessa r 
GetOpenFileName().  
 
BOOL GetOpenFileName(LPOPENFILENAME  lpofn); 
 
Denna struktur (LPOPENFILENAME) r stor och smtt otymplig, men jag ska, s  
gott jag kan, frska redovisa hur den anvnds. S vi skriver om vran 
WM_COMMAND. Observera att IDM_ALT1 kan bytas ut mot 601 eller om vi ska 
anvnda den, s mste vi ha en #define IDM_ALT1 601, antingen tillsammans 
med includes'en i brjan, eller i en separat .h fil (som givetvis mste lnkas 
till projektet i Borland).   
 
char szFileHolder[256]; 
bool resp; 
 
------ 
 
case WM_COMMAND : 
   switch(LOWORD(wParam)) { 
       case IDM_ALT1 : 
          OPENFILENAME ofn; 
 
          ofn.lStructSize = sizeof(OPENFILENAME); 
          ofn.hwndOwner = hwnd; 
          ofn.hInstance = hInst; 
          ofn.lpstrFilter = "All files\0 *.*\0Bitmap Files\0*.bmp\0\0"; 
          ofn.lpstrCustomFilter = NULL; 
          ofn.nMaxCustFilter = NULL; 
          ofn.nFilterIndex = 0; 
          szFileHolder[0]='\0'; 
          ofn.lpstrFile = szFileHolder; 
          ofn.nMaxFile = NULL; 
          ofn.lpstrFileTitle = NULL; 
          ofn.nMaxFileTitle = 0; 
          ofn.lpstrInitialDir = NULL; 
          ofn.lpstrTitle = "Vlj fil..."; 
          ofn.Flags = OFN_FILEMUSTEXIST | OFN_LONGNAMES; 
 
          resp = GetOpenFileName(&ofn); 
       break; 
     default : 
     break; 
   } 
UpdateName(hwnd); 
} 
 
Jahopp. Fr att ni nu inte ska bli helt uppgivna ver denna struktur s fr jag 
vl g igenom lite mer detaljerat.  
 
-- 
lStructSize = sizeof(OPENFILENAME); 
Deklarerar att storleken p vr struktur r lika stor som en OPENFILENAME 
struktur. Se den som mer eller mindre standard. 
 
-- 
hwndOwner = hwnd; 
Vilket fnster som ska 'ga' dialogen nr den skapats.  
 
-- 
hInstance = hInst; 
Vilken instans det r som vill skapa dialogen. 
 
-- 
lpstrFilter = "All files\0 *.*\0Bitmap Files\0*.bmp\0\0"; 
De filter alternativ som ska finnas och deras motsvarande pattern. Observera 
de NULL som anvnds fr att separera dem t och att den avslutas med NULLNULL. 
 
---- 
lpstrCustomFilter = NULL; 
nMaxCustFilter = NULL; 
Dessa anvnder vi inte. Har samma anvndningsomrde som lpstrFilter, och fungerar 
p liknande vis (fast sparas frn en dialog till nsta). nMaxCustFilter anger 
lngden p lpstrCustomFilter.  
 
-- 
nFilterIndex = 0; 
Anger vilket filter som ska vara aktivt nr dialogen skapas. Anges noll 
s anvnds lpstrCustomFilter, r denna NULL, s anvnds frsta paret i  
lpstrFilter.  
 
-- 
szFileHolder[0]='\0'; 
lpstrFile = szFileHolder; 
Nr dialogen skapas anger denna medlem vilken fil som ska anvndas vid 
initialiseringen, NULL anger att en sdan inte behvs. Nr dialogen 
avslutats innehller den filen som valts av anvndaren. 
 
-- 
nMaxFile = NULL; 
Anger storleken p lpstrFile om denna anvnds.  
 
-- 
lpstrFileTitle = NULL; 
En buffer som mottar titeln p den valda filen. 
 
-- 
nMaxFileTitle = 0; 
Maxlngden p lpstrFileTitle, ignoreras om denna r NULL. 
 
-- 
lpstrInitialDir = NULL; 
Vilken katalog som ska vara ppnad nr dialogen skapats. Vid NULL s anvnds 
systemkatalogen.  
 
-- 
lpstrTitle = "Vlj fil..."; 
Titeln p dialogrutan. Om NULL anvnds systemdefinitionen ("ppna" alt "Spara"). 
 
-- 
Flags = OFN_FILEMUSTEXIST | OFN_LONGNAMES; 
Vilka flaggor som ska glla.  
 
   Exempel p flaggor till GetOpenFileName(): 
OFN_ALLOWMULTISELECT    0x200      Tillt att flera filer vljs. Ifall den anvnds 
                                   s pekar lpstrFile till en buffer som innehller 
                                   den aktiva katalogen och alla valda filer. Dessa 
                                   separeras med space (' '). Fr de nya Explorer 
                                   dialogerna anvnds '\0' som separator och buffern 
                                   avslutas med '\0\0'.  
 
OFN_CREATEPROMPT       0x2000      Anger att dialogen ska frga anvndaren om denne 
                                   vill skapa en icke-existerande fil.  
 
OFN_EXPLORER          0x80000      Skapa en 'Explorer-lik' dialog. 
 
OFN_FILEMUSTEXIST      0x1000      Den valda filen mste existera, anvndaren kan allts 
                                   inte skriva in en fil som inte existerar.  
 
OFN_LONGNAMES        0x200000      Visa filnamnen i Win32's lnga format istllet fr 
                                   i 8.3-format som r standard.  
 
OFN_NONETWORKBUTTON   0x20000      Visa inte Ntverks-knappen. 
 
OFN_PATHMUSTEXIST       0x800      Path'en mste existera.  
 
terstende medlemmar tas inte upp utan lmnas till er sjlva att underska nrmare. 
De har ingen effekt fr det exempel jag just redovisat.  
 
  ---| 
 
Muspekaren i sig sjlv har ofta en funktionell betydelse i att tala om fr en anvndare 
vad han kan gra. Pekaren talar ofta om vilken funktion som kan utfras just dr. Nr 
muspekaren placeras ver en Edit-control s ndras pekaren till en textmarkr, nr 
applikationen r upptagen visas ett timglas, nr man ska f hjlp om ett freml visas 
ett frgetecken, osv. Detta r saker som oftast bara implementeras av standardkontrollerna 
och bortses ifrn av nya programmerare. Fr att nu genomfra detta anvnder vi LoadCursor() 
och SetCursor().  
 
HCURSOR LoadCursor( HINSTANCE  hInstance, LPCTSTR  lpCursorName); 
 
HCURSOR SetCursor(HCURSOR  hcur); 
 
Ett exempel vore: 
 
HCURSOR hCurse; 
 
hCurse = LoadCursor(NULL, IDC_WAIT); 
SetCursor(hCurse); 
 
/* Operation som kommer att ta mrkbart med tid */ 
 
hCurse = LoadCursor(NULL, IDC_ARROW); 
SetCursor(hCurse); 
 
Sjlvklart kan man ocks ladda egna pekare som inkluderas som resurser i ens 
applikation, dessa hmtas sedan med LoadCursor(), eller s kan man hmta en pekare 
direkt frn en fil med LoadCursorFromFile(). Formatet mste vara .ANI eller .CUR. 
 
HCURSOR LoadCursorFromFile (LPCTSTR  lpFileName); 
 
Denna funktion kan ocks anvndas fr att hmta systemdefinierade pekare. Till 
exempel, lt oss sga att Win.INI innehller: 
 
[Cursors]  
    Arrow = "arrow.ani"  
 
Om vi d exekverar fljande: 
 
LoadCursorFromFile((LPWSTR)OCR_NORMAL); 
 
S kommer pekaren, tergiven i Arrow.ANI att hmtas. Returnerar NULL om funktionen 
misslyckas. vriga noteringar r att pekaren inte ritas om frrens den flyttas, 
eller ritas om (tas bort och plockas fram igen).  
 
 
---*  Iam Tandem 
    
   ---# Slarv, buggar & fel 
Jag redan nu passa p att i frhand be om urskt fr alla fel, slarv (jag vet att jag 
slarvar med benmningen klass/struktur) och buggar som tyvrr ftt plats i denna text. 
Men om inte annat fr ni knna p den andra halvan av programmering: debugging.  
  
    ---# Slutord 
 Artikeln har blivit ganska lng, men nd tagit upp bara det absolut mest
 grundlggande.   r det ngonting som jag missat, eller borde ta upp, s
 ppeka det, d kan det kanske   tas upp i ngon framtida text. Som ni frstr
 r det ett stort omrde (drav att det   finns flertalet bcker om mnet) och
 exakt allt kan inte inkluderas. Jag hoppas dremot   att jag gett er en
 tillrckligt inblick fr att kunna studera mnet vidare. Det r inte   vidare
 komplext, och med enkel initiation blir resten desto enklare. Jag skriver
 grna   mer inom omrdet om intresse finns. Frslag p saker att ta upp plus
 medium fr framtida   text skulle ocks uppskattas.     
    ---# Standard prefixes till variabler 
 b           bool 
 c           char  
 dw          long unsigned integer 
 f           16-bit bitfield (flags) 
 fn          Function 
 h           Handle 
 l           long integer 
 lp          long pointer 
 n           short integer 
 p           pointer 
 pt          Long integer holding screen coordinates 
 w           Short unsigned integer 
 sz          Pointer to null-terminated string (zero) 
 lpsz        Long pointer to null-terminated string 
 rgb         Long integer holding RGB color values 
 

 Skriven av: R.G. Gazzaud     E-Mail: Gazzaud@operamail.com                  
      


       "Ignorans r inte en urskt" - Adept 29                     
       "Ipsa scientia potestas est" - Francis Bacon        
       " Thou what you wilt shall be the whole of the Law"                    
          -Liber AL vel Legis I:40                  



 -----------------------------------------------------------------------------
                                                                 Insndare []
 -----------------------------------------------------------------------------
 Insndare som inte har blivit kommenterade eller besvarade stannar kvar tills
 dom blir det, ni fr  ta  och  skicka  in  brev  till  oss, kan  du  gra  p
 diox1de@hacksweden.com.

 
  --> Netscape 4.05 (Messenger) kryptering 

      Nu r det jag som har en frga, eftersom det inte r ngon n som har
      skickat in ngra frgor. Men jag undrar om det r nn som  vet  ngon
      dokumentation eller c-script som har  med  algoritmen  som  krypterar
      Netscape Messenger i Netscape Communicator 4.05. Jag har mrkt att om
      du vljer att Messenger ska komma ihg lsenordet till din mailserver
      s sparas det i en  fil /users/username/prefs.js. Kolla  raden  nedan
      hur du nu hittar det krypterade lsenordet.
     
      user_pref("mail.pop_password", "krypterat passwd");
      user_pref("mail.remember_password", true);

      Frsta raden handhller det krypterade lsenordet och den andra om du
      valt att composer ska komma ihg ditt lsenord  till  ditt  konto  p
      mailservern. Frsta raden finns allts inte om du inte har satt andra
      raden till "true"

        keytrace@usa.net


  --> CuteFTP 3.0.2 krypterings metoder

      Nr jag letade upp var de krypterade lsenordet i  Netscape Messenger 
      fanns s tnkte jag passa p att kolla det i  CuteFTP, eftersom  mina
      kunskaper r begrnsade s kan jag inte  kncka  dem, drfr  skickar
      jag in dom som insndare och se om  det  r  ngra  serisa  som  har
      teorier eller tips osv. Jag fann de  krypterade  lsenordet  i  filen
      /CuteFTP/smdata.dat som visserligen va vldigt otydlig men  det  gick
      nd att se ungefr var de krypterade lsenordet befann sig.
 
      De sg ut s hr:
 
      ftp.sunet.se anonymous櫧 

      Jag vet att "櫧 " som antagligen r de krypterade  lsenordet
      r i klartext "me@u.com". Ngra som har tillgng till  kllkoder  som
      dekrypterar krypterade lsenord  eller  dokumentation  som  beskriver
      algoritmen dom andvnder kan maila den genast. Eller om ni har  ngra
      ideer eller teorier s kan ni maila dem s  publicerar  jag  dem  som
      svar.



 -----------------------------------------------------------------------------
                                                                Copyright  []
 -----------------------------------------------------------------------------
 Sjlvklart fr numret spridas  var  du  vill, men  detta  verkstlls  p  ett
 villkor: att du inte ndrar NGONTING i zinet.



 -----------------------------------------------------------------------------
                                                              kill -9 666  []
 -----------------------------------------------------------------------------
 Slut p de intressanta, nsta steg nu r allts att sitta p IRC  till  nsta
 nummer kommer.





-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 6.0.2i

iQA/AwUBN5zSsnRmgGlPBhFaEQLQngCgjAdjJAjiAqYXs9YTnGFjd0/VaXYAnj+Q
X3pmKDomoNWBQp8LyYIdwbqm
=estT
-----END PGP SIGNATURE-----
 
