PDA

View Full Version : Dialers e anti-dialers quale api da intercettare?


verloc
13-01-2004, 17:56
..o messaggio (più semplice in questo caso).

cionci
13-01-2004, 18:15
L'API è RasDial...ma è difficile intercettare una funzione soltanto (che io sappia)... L'unico modo è fare un wrapping delle API più importanti di RASAPI32.DLL...e rimapparle sulla RASAPI32.DLL originale...

verloc
13-01-2004, 20:31
La questione è nata così:
Cedendo alle pressioni di un amico e per la curiosità,ho installato
per provarlo Antidialer.

http://www.digisoft.cc//download/SetupAntiDialer.exe

Il giorno dopo spendo circa 3 euro in tentativi di connessione dato che il server del mio provider mi dice CHE LA PASSWORD E' SBAGLIATA!!!!!!!!

Avevo installato e disinstallato velocemente l'AD.Il log di Innosetup non mi segnala files strani (dll) nell'installare il programma.Quindi provo a reinstallare accesso remoto e tcp:niente.Rifaccio l'installazione di AD e mi accorgo che passa in una frazione di secondo rasapi32.dll(difetto di innosetup:quando copia i files non ti da il tempo di osservare cosa copia)...

NON SEGNALATO DAL LOG.

Vedo la versione di rasapi32.dll attualmente installata: versione per MILLENNIUM!!!!


La cambio da dos puro perchè ovviamente è in uso e caricata dal sistema e mi collego finalmente per scrivervi.

La domanda:
se il programma è free ho il diritto di lamentarmi(nonstante il disclaimer faceva menzione di un aggiornamento automatico non
avvertiva che non c'era il ripristino della dll originale alla disinstallazione)?Ma sopratutto,
se fosse stato a pagamento?

verloc
13-01-2004, 20:35
La mia opinione e che sarebbe da considerarsi scorretto anche e sopratutto se fosse stato a pagamento,e dato che il disclaimer non aveva avvertito del non ripristino della dll originale,forse(dico per assurdo)si sarebbe potuto portare il caso in tribunale.

cn73
13-01-2004, 20:45
Se il programma fosse stato a pagamento e se la licenza lo avesse previsto, l'autore, o la sw house che gli stava dietro, avrebbe senza dubbio dovuto risarcire i danni (dimostrabili) provocati dal sw... Questo è uno dei punti che mi ha impedito ad oggi di mettermi in proprio... le penali possono essere davvero alte.

Questo non toglie che le responsabilità di un baco non possono essere attribuite al solo programmatore, ma a tutto il team che solitamente sta dietro a prodotti commerciali. Pensiamo ad esempio a chi deve testare il sw. O a chi ha realizzato l'analisi.

Sai perchè nell'altro post ho commentato in quel modo? Recentemente è successo che il sw alla cui realizzazione partecipo, ha evidenziato un baco, non bloccante e comunque non gravissimo, ma pur sempre un baco. Un utente si è permesso di telefonare direttamente a me e di sbraitare. Semplicemente l'ho mandato al diavolo. Il programmatore non è una macchina, non è perfetto e può sbagliare. Non siamo schiavi e siamo pagati (poco) per realizzare al meglio del sw, non per ricevere insulti o urla. Per i danni rivolgersi alla ditta :D

verloc
14-01-2004, 08:19
invece devi proprio metterti in proprio se non vuoi fare lo schiavo...non c'è alternativa.

Passai da ing aero a civile proprio per questo motivo.

Fai la società con un avvocato come socio. ;)


Ma veniamo a noi...la classica avvertenza:se ti distruggo il computer (anche involontariamente)sono cavoli tuoi.

E' un falso mito.

Bene,è mia opinione che anche un avvocato di medio valore farebbe risultare questa clausola del contratto (perché è una clausola)come "vessatoria" rendendo il "contratto" nullo.


Programmatori,dentisti,ingegneri sono tutti soggetti al concetto di
"normale diligenza del professionista".
Per questo motivo se muori sotto i ferri per una appendicite il primario viene condannato e l'assistente no.

La legge non ammette sbagli per operazioni professionali normali.
per questo se il primario sbaglia qualcosa durante una operazione difficile di cardiochirurgia non viene condannato.

Chi prende i soldi,la ditta?
Paga la ditta :D

verloc
14-01-2004, 08:26
Ritornando ad AD,dice che se il S.O è XP comunque fa uno scatto...
mhhh...
mi sa che non ha intercettato la RasDial ma ha fatto qualcos'altro.
Chi è in grado di scoprirlo?


A proposito chi di voi sa qual'è il miglior API Monitor gratisse?

cionci
14-01-2004, 12:38
Per intercettare la RasDial credo che l'unica cosa da fare sia creare una DLL con nome RasAPI32.dll... Quindi se non sostituisce (e rinomina) la DLL corrente non ha fatto quello...

Probabilmente controlla periodicamente con

RasEnumConnections

Se il numero composto non è fra quelli in lista allora chiude la connessione... Però uno scatto lo fa...

RASCONN * lpRasConn;
DWORD lpcb;
DWORD lpcConnections;

lpRasConn = (LPRASCONN) GlobalAlloc(GPTR, sizeof(RASCONN));
lpRasConn->dwSize = sizeof(RASCONN);
lpcb = sizeof(RASCONN);

nRet = RasEnumConnections(lpRasConn, &lpcb, &lpcConnections);
if (nRet != 0)
{
printf("RasEnumConnections failed: Error = %d", nRet);
}
else
{
printf("The following RAS connections are currently active\n\n");
for (i = 0; i < lpcConnections; i++)
{
printf("Entry name: %s\n", lpRasConn->szEntryName);
lpRasConn++;
}
}

verloc
14-01-2004, 13:06
ci si dovrebbe procurare le librerie di api-hooking (alcune costano anche 1000 €).
Devo scartabellare un po l'HD. ;)

infatti mi sembrava troppo sofisticata (per lui,e per me) come metodologia.

grazie per il codice cionci ...moooooolto interessante. :)

cionci
14-01-2004, 13:10
Originariamente inviato da verloc
grazie per il codice cionci ...moooooolto interessante. :)
Ringrazia MSDN... Anche se una volta l'ho usato per fare un prgoramma di disconnessioen automatica...
La disconnessione automatica di Windows funziona solamente se hai una media di 0 byte spediti/ricevuti nell'intervallo di controllo...
Io ho messo un limite di 2Kbyte per 5 secondi...