==============================================================================
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
--------------------[ previous ]---[ index ]---[ next ]---------------------

--------------------------[ CALLERiD: RiFLESSi0Ni ]---------------------------
----------------------------------[ pIGpEN ]----------------------------------

C0NSUM0: 2 barattoli di CocaCola
         4 Nesquik (quelle palline di cioccolato)

MUSiCA: Pearl Jam - (non mi ricordo il nome del cd)
ATTACHMENT: callerid.gif [phreak.tgz]

Avete presente quei temi che vi davano a scuola nei compiti in classe su cui
riflettete se scrivere quello che pensate o quello che il prof. pensa :))
Beh qui non centra un cazzo :)))

WoW! CALLERiD che bella cosa 8)
Okok voi phreaker penserete, niente piu' green... ahahhaha come se questo
bastasse a fermarvi :)) Sinceramente penso che in Italia tra i phreaker sara'
importata la legge "smerdamento dei log" in fondo piu' uno logga e piu' ha
piacere di trovarci qualkosa dentro ;)))
Hummm... pensate ai vantaggi che pero' si puo' avere dal CallerId.

Parlo del fatto di poter mettere qualkosa di simile ad un firewall sulla
propria linea... Della serie:

"Firewalls are also important since they can provide a single "choke point"
where security and audit can be imposed. Unlike in a situation where a
computer system is being attacked by someone dialing in with a modem, the
firewall can act as an effective "phone tap" and tracing tool."

Sisi' non vedo l'ora...

Qui le idee sono veramente tante... mi chiedo: "Perche' semplicemente
loggare?" In fondo un'aspirante phreaker o un phreaker deve farsi
rispettare :)

Se il callerid va in porto... o meglio se mai e poi mai raggiungera' casa
mia... cazzo allora si' che mi potrei divertire.

In America da quel che ne so tale funzione puo' essere attivata (poi non so
se l'attivazione consiste nell'aggiunta di tale opzione o se questa e' gia'
attiva e vi danno soltanto il device per il monitoraggio) con semplice
richiesta alla compagnia telefonica dell'abbonato (probabilmente pagando
qualcosa in piu' vicino).

Fatto sta che questi device, collegabili ad un computer via seriale, sono
facilmente controllabili via PC e aggiungendoci vicino un po' di mente
deviata potremo avere cose assurde :)

Le cose piu' semplici sono:

- Filtraggio di particolari numeri telefonici o di interi range
  (Vi sta sulle palle il numero della vostra scuola?
   Volete che mai e poi mai questa vi possa chiamare a casa?
   Un bel ban su quel numero farebbe comodo)
   Questa fa parte della semplice "Ignore List"
   Uhmm mi sembra di leggere un libro di Gibson :)

- Passiamo a quella che potrebbe essere l'opzione WARNING.
  Per esempio un semplice programmino (su linux occupa poche righe)
  che prenda un file come input (ottenuto dall'output di un programma un
  po' piu' serio che elabora le informazioni ottenute dal device) e che
  faccia una chiamata ai numeri della Ignore List o della Shit List
  o magari trasmetta un wave del tipo "Caro pezzo di merda il vostro numero
  non ha accesso alla mia linea"... vedete di programmare bene la funzione...
  non vorrete di certo spendere troppi soldi per fare la chiamata al
  pezzo di merda :))

- Che ne dite poi di avere sul vostro HD un bel file tipo "BLACK LIST"
  Della serie metteteci dentro i numeri delle vostre ex-ragazze/i, dei
  vostri nemici ecc...
  Il programma che si occupa della gestione del device potrebbe avere
  una funzione che ogni qualvolta ricevete una chiamata fa il compare
  del numero telefonico con quelli inseriti nella BLACKLIST e se lo
  trova fa un NUMBER FL00DER oppure i piu' bastardi potrebbero prendere
  in considerazione il fatto di costruire un BLAST B0X collegato al vostro
  HI-FI in piena

  SCHEMA DI BLAST BOXING VIA CALLER-ID
        (disegno molto merdoso)

  -------------------
  |                 |
  |      PROG       |
  |                 |                             M0DEM
  |                 |                         (ok fa cagare)
  -------------------                               ||
          | |                                       \/            
  -------------------                            ---------  tramite jack (IN)
  |                 | [COM1]<--------/---------->|0|0|0|0| <------
  -------------------                            ---------       | 
                      [COM2]<--CALLER-ID          ^              |
                                DEVICE+iNTERFACE  |          ---------
                                   |              |          | BLAST | *
                                   v              v          |  B0X  |
                                   ----------------          ---------
                                         |
                                         |
                                         |
                                    linea telefonica
                                  (eventualmente usando
                                     prese multiple)

* Esistono varie versioni da quella usata per i Crossbar (semplice
microfono collegato a linea telefonica) a veri e propri amplificatori :)
C'e' anche una versione che si mette in mezzo tra modem e HI/FI ad ogni
modo basterebbe pure l'HI-Fi al posto del BOX...
Non so fino a che punto si possa blastare un orecchio ;)) ... credo e spero
non molto con le nuove linee ... boh ... In fondo lo speaker della cornetta
e' merdosetto ... boh non mi sono mai messo con la trombetta dello stadio a
provare, forse se chiedete a qualcuno della drug division se puo' provare
con uno dei suoi due .. dite che a chiesto pIG se puo' sacrificare un
orecchio per BFi ;))
Scommetto che vi risponde ... per il progresso della scienza questo e
altro :))
Eh si noi non useremo mai le caprette o i topini come cavie, esiste il
proprio corpicino per certe cose ;)))

Ah si' lancio un appello: qualcuno di voi ha un fegato sano?
Lo sto cercando prima di un futuro trapianto...
Visto i tempi di consegna... e' meglio premunirsi.

Cmq questa cosa e' solo per sapere che puo' esistere... 
Schemi sui blast box sono facilmente trovabili su Internet... che poi
fungano o meno ci si puo' anche ridere sopra...

Uhm avete un BBS?

- Il vostro bel programmino potrebbe trasmettere al modem di fare un HANGUP
  se il numero telefonico non e' quello di uno degli utenti.

- Uhm vi immaginate che bello? Su Last Login invece del vostro ip viene fuori
  il vostro numero telefonico... Se qualkuno vi usa il vostro account e non
  si e' zappato potreste chiamarlo per insultarlo :))

- Avete presente i moduli PAM su Unix? Sisi' prendete per esempio la funzione
  che limita l'accesso di un utente o di un gruppo di utenti a determinate
  ore... che figo sarebbe fare le stesse cose con i numeri telefonici 8)
  Della serie l'ufficio puo' chiamare il mio computer di casa solo se ci
  troviamo nel range di ore in cui sono in ufficio e lavoro :)

Okok ce ne vorra' di tempo? ahahhaha neanche tanto :) cmq...

CREDETE che Sia Impossibile?
Uhmm guardate questo pezzo di codice di Mace Moneta

-- CallerID Support Code - COPYRIGHT 1989, 1990 BY Mace Moneta

--===========================================================
-- ALL RIGHTS RESERVED.
-- FOR MORE INFORMATION CONTACT THE AUTHOR DIRECTLY.
-------------------------------------------------------------

--
-- Put the IDLE handler to sleep while editing a field
--
on openField
  global editingField
  put true into editingField
end openField

--
-- Wakeup the IDLE handler when finished field editing
--
on closeField
  global editingField
  put false into editingField
end closeField

--
-- OPEN STACK
--

on openStack

  --
  -- Cache the stack in memory for fastest access
  --
  set cursor to watch
  set lockScreen to true
  show all cards
  set lockScreen to false
  set cursor to none
  --
  -- Initialize Variables
  --
  global editingField,lastLookup
  global globalATPData, globalResponseData
  global globalReceiveData, myEntityName
  global globalSKTData, globalNBPData
  global modemData,myName,serverName,EotDC2,EotHT
  global soundList,soundCount,serialBuffer
  put false into editingField
  put sndList() into soundList
  put the number of lines in soundList into soundCount
  put empty into globalResponseData
  put empty into globalAppleTalkData
  put empty into modemData
  put empty into serverName
  put numToChar(4) & numToChar(18) into EotDC2
  put numToChar(4) & numToChar(9) into EotHT
  put the seconds into lastLookup
  --
  -- Before we can become an entity on the network, we must first
  -- open up access to the network.  ATPOPEN performs this function
  -- and relies on the variable "globalAppleTalkDATA".
  -- Since ATPOPEN is not given a parameter, it will open both a client
  -- and a server side allowing us to both issue requests and respond
  -- to requests.
  --
  ATPOpen
  if the result is empty then
    --
    -- If ATPOPEN was successful we can go ahead and register our name
    -- with the network.
    --
    NBPOpen
    --
    -- We'll use the number of elapsed 1/60's of a second since IPL
    --
    -- as our unique "name".
    --
    put the ticks into myName
    put "CallerID" into myType
    NBPRegisterName myName,myType
    if the result is not empty then
      --
      -- We had a problem connecting!
      --
      answer "Error connecting to AppleTalk!" with "Ok"
    end if
end if

  --
  -- Initialize the serial port to 1200bps, 1 stop, 8 data bits,
  -- no parity.
  --
  put serialHandler("open","A",1200,8,"none",1,"CTS",1024) B
  into serialBuffer

end openStack

on goingElsewhere
  --
  -- If we are leaving this stack (quiting or opening another stack)
  -- terminate our session on Appletalk and close the serial port.
  --
  global serialBuffer
  put empty into globalResponseData
  put empty into globalAppleTalkData
  NBPClose
  ATPClose
  get serialHandler("close","A",serialBuffer)
end goingElsewhere

--
-- CLOSE STACK
--

on closeStack
   goingElsewhere
end closeStack

--
-- IDLE
--

on idle
  global editingField,lastLookup
  global talkName,talkKeyword,EotDC2,EotHT
  global globalResponseData,globalReceiveData
  global modemData,myName,serverName,dataSource
  global soundList,soundCount,serialBuffer

  if editingField then exit idle

  --
  -- Initialize variables
  --
  put empty into modemData
  put empty into talkName
  put empty into talkKeyword
  put false into outOfArea
  set cursor to hand
  --
  -- Check for activity on the serial port
  --
  put serialHandler("get","A",3) into modemData
  --
  -- If we got something, remember where it came from.
  --
if modemData is not empty then put "fromComm" into dataSource
--
-- If nothing came in over the serial port, check the other Mac,
-- to see it it got anything
--
-- First, check to see if a "CallerID" server is on the network
-- (a copy of this Hypercard stack, running on another machine)
--
put the seconds into it
if serverName is empty and it > lastLookup then
   set cursor to watch
   put the seconds + 30 into lastLookup
   put NBPLookupNames("CallerID","*","20","2","8") into entityNames
   repeat with x=l to the number of lines in entityNames
      put line x of entityNames into it
      if "CallerID" is in item 2 of it and myName is not in item 1 of it then
        put item 1 of it into serverName
        exit repeat
      end if
   end repeat
end if
--
-- Now ask the network for data
--
if modemData is empty and serverName is not empty then
  ATPReceive "HandleReceive"
  --
  -- If we got something, remember where it came from.
  --
  if modemData is not empty then put "fromAT" into dataSource
end if
--
-- Scan the data for EOT DC2 sequence (header for known number)
-- or EOT HT (header for Out of Area call or Private - Blocked)
--
if modemData is not empty then
  repeat with i = 1 to the length of modemData
  if char i to i+1 of modemData is EotHT then put true into outOfArea
  if char i to i+1 of modemData is EotDC2 or outOfArea then
      --
      -- Header found.  Extract the phone number of the caller
      --
      if outOfArea then
        if char i+6 of modemData is "P" then
          --
          -- We've got a blocked call!  Announce as such by
          -- looking up the record with pseudo phone numbe
          -- CAL-LER-IDBL.
          --
          put "CAL" into areaCode
          put "LER" into exchange
          put "IDBL" into number
          put "CAL-LER-IDBL" into phone
          else
          --
          -- Just an out of area call.  Look up the record
          -- with pseudo phone number ???-???-???? and announce.
          --
          put "???" into areaCode
          put "???" into exchange
          put "????" into number
          put "???-???-????" into phone
          end if
          else
        --
        -- We have an actual phone number!
        --
        put char i+10 to i+20 of modemData into phone
        put char 1 to 3 of phone into areaCode

   put char 4 to 6 of phone into exchange
   put char 7 to 10 of phone into number
   put areaCode & "-" & exchange & "-" & number into phone
   end if
--
-- If we obtained data from the serial port,
-- see if anyone on the network wants our data
--
if dataSource contains "fromComm" then
   ATPSendRequest serverName,modemData, B
   "HandleSend", 2, 2 0
   --
   -- If we got an error, the server went bye-bye. Clear
   -- the serverName, so that we will re-issue the Lookup
   -- for a server.
   --
   if the result is not empty then put empty into serverName
   put empty into modemData
   end if
--
-- Define a "trunk" number to search for, incase the full
-- number is not found.
--
put areaCode & "-" & exchange & "-" & "????" into trunk
--
-- Search the directory for the phone number.
-- In this stack, each record can contain up to 3 phone
-- numbers. They are kept in the background field variables
-- (bg fld) "Phone1", "Phone2" and "Phone3".
--
get the short name of this card
if it is "Index" then go to next card
find phone in bg fld "Phone1"
if the result is "not found" then
  find phone in bg fld "Phone2"
  if the result is "not found" then
    find phone in bg fld "Phone3"
  end if
end i f
--
-- If the number was not found, see if we have a trunk line
--
if the result is "not found" then
   find trunk in bg fld "Phone1"
   if the result is "not found" then
     find trunk in bg fld "Phone2"
     if the result is "not found" then
       find trunk in bg fld "Phone3"
     end if
   end if
end if
--
-- If we found the entry, extract the callers name and
-- invoke the announceCaller routine
--
if the result is empty then
   put bg fld "Name" into talkName
   put bg fld "Keywords" into talkKeyword
   announceCaller
   --
   -- Annotate the entry so we know the last call date and time
   --
   get line 1 of bg fld "Note"
   if it is "NOTE PAD" or word 1 to 2 of it is "Last Call: " then
     set locktext of bg fld "Note" to false
     put "Last Call: " && the long date && the time B
     into line 1 of bg fld "Note"
     set locktext of bg fld "Note" to true
   else
     set locktext of bg fld "Note" to false

            put "Last Call:" && the long date && the time & return B
            before line 1 of bg fld "Note"
            set locktext of bg fld "Note" to true
            end if
          --
          -- An unknown caller; just announce that there is a call
          --
          if talkName is empty then
            put "Unknown Caller NOSUFFIX" into talkKeyword
            put "Telephone Call" into talkName
            announceCaller
            end if
          --
          -- Log the call to file "CallerID Log", if on main machine
          --
          if dataSource contains "fromComm" then
            put "CallerID Log" && word 2 of the long date && B
            word 4 of the long date into logFile
            open file logFile
            --
            -- Position at EOF
            --
            repeat
              read from file logFile for 16834
              if it is empty then exit repeat
              end repeat
            --
            -- Place the data in the log
            --
            put the time into timeStamp
            if the length of timeStamp < 8 Then B
            put "O" & timeStamp into timeStamp
            put the long date into dateStamp
            put word 1 of dateStamp & tab & B
            word 2 to 4 of dateStamp into dateStamp
            write dateStamp & tab & timeStamp & tab & phone & tab & B
            talkName && "(" & talkKeyword & ")" & return B
            to file logFile
            close file logFile
        end if
        exit repeat
     end if
    end if
  end repeat
 end if
end idle

--
-- This routine is invoked when someone is requesting our data.
-- Return the last caller info, and clear it.
--
on HandleSend
  global globalResponseData
  put empty into globalResponseData
end HandleSend

--
-- A server is responding to our request for the caller information.
-- Place it in modemData, for normal processing.
--
on HandleReceive
  global globalReceiveData,modemData
  if globalReceiveData is not empty then B
  put globalReceiveData into modemData
end HandleReceive

--
-- Dummy handler to provide NOP response.  This is automatically
-- invoked by the Appletalk routines, when there is no data to transfer.
--
on okay
end okay

--
-- Here we vocalize the name of the caller using MacinTalk, or if a
-- digitized sound is available with the same name, we play the sound.
--
-- Special values may be passed in the Keyword entry of the directory
-- as follows:
--
-- 24HR         - This caller will be announced no matter what time it is.
--                     Normally, calls between lOPM and 5AM are not announced.
-- IGNORE      - This caller will never be announced (call screening).
-- NOSUFFIX  - This caller will not have the "Calling" word appended
--              to his/her name when being announced.  Normally, callers
--              are announced as "name Calling" (eg. Joe Shmoe Calling).
--
on announceCaller
  --
  -- Get the callers name and the keywords defined for him/her
  --
  global talkName,talkKeyword,soundList,soundCount
  --
  -- Get the current hour, in 24 hour format
  --
  put the time into timeCheck
  convert timeCheck to dateitems

  -- If it is after 1OPM and before 5AM, don't announce the caller.
  -- If the caller has the special "IGNORE" keyword, never announce
  -- the caller (call screening).

  put true into sayingIt
  if item 4 of timeCheck > 22 or B
  item 4 of timeCheck < 5 or B
  talkKeyword contains "IGNORE" then put false into sayingIt
  --
  -- If the caller has the special "24HR" keyword, announce the caller
  -- no matter what time it is.
  --
  if talkKeyword contains "24HR" then put true into sayingIt
 --
 -- If we should announce this caller, do it three times
 --
  if sayingIt then
    put true into soundNotFound
    repeat with soundName = 1 to soundCount
      if line soundName of soundList is talkname then B
      put false into soundNotFound
    end repeat
    put getPVolume() into saveVolume
    setPVolume(7)
    if soundNotFound then
      if "NOSUFFIX" is not in talkKeyword then B
      put talkName && "Calling" into talkName
      talk talkName,140,120
      wait 1 seconds
      talk talkName,140,120
      wait 1 seconds
      talk talkName,140,120
    else
      play talkname
      wait until the sound is "done"
      wait 1 seconds
      play talkname
      wait until the sound is "done"
      wait 1 seconds
      play talkname
      wait until the sound is "done"
      end if
      setPVolume(saveVolume)
    end if
end announceCaller

-----------------------------------------------------------
-- CallerID Support Code - COPYRIGHT 1989, 1990 BY Mace Moneta
-- ALL RIGHTS RESERVED.
-- FOR MORE INFORMATION CONTACT THE AUTHOR DIRECTLY.
-----------------------------------------------------------

Un po' di info :)

All that is necessary to connect the Caller*Id unit to your RS-232 port are:
an MC1488 integrated circuit (available from Radio Shack, for about $l) and
a resistor (lOOK Ohm 1/4 watt, also available from Radio Shack).

The MC1488 "boosts" the output voltage to the level expected by the RS-232
port on your computer, and the resistor provides some isolation and reduces
the voltage drop on the output of the MC1488.

The MC1488 needs a +/- 12volt power supply.  If you have one, you're all set.
If not, Radio Shack sells small 9 volt power supplies for S5-6 each; you can
put two back-to-back to get a +/- 9 volt supply, which is close enough.
You could use a couple of 9volt batteries, too.

Everything, excluding the power supplies, fits into the Caller*id interface
case. I used a little hot-melt glue to place the MC1488 in an unused circuit
board area (watch out for the plastic standoffs on the case!).  Small gauge
wire (or wire-wrap wire) connects the components together.  If you're
uncomfortable soldering to the integrated circuits, you can pick up IC jumper
      clips at Radio Shack as well (that way you can easily remove the
"modification").

I bring the RS-232 pin 3 and pin 7 connections to a 1/8 inch mini-phone jack,
which I mounted on the case near the existing telephone jacks.

Once the circuit is built, what do you do with it?  I use a Hypercard Stack
built on the EXCELLENT Portfolio Hyper System (PHS), by Bob Davis 70625,717,
to look up the phone number, announce the caller (using Macintalk) and provide
filtering (based on time of day and flags on the caller's record).  I log all
incoming calls, both to a separate file and to the record of the caller.

My stack also contains records for telephone exchanges, so if the specific
number is not found, it will announce where (what town) the call is coming
from.

In addition, since I have two Macintosh computers, I broadcast the information
over Appletalk, so both machines can announce the caller.

That should give you enough ideas!  Following is an extract of the major
portion of the Hypercard script I use.  I can't upload the entire stack, since
it's part of PHS.  It should give you enough of the logic needed to build your
own application.

Includo pure lo schemino dovreste trovarlo dentro il file phreak.tgz
allegato a BFi.

Letterina per MAMMA TELEC0M (che puttana ;)

" Vogliamo il CallerId per ogni abbonato! ;)) "

bauz

pIGpEN


--------------------[ previous ]---[ index ]---[ next ]---------------------
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
==============================================================================