Giulia006 (Normal User)
Newbie
Messaggi: 5
Iscritto: 22/05/2014
|
Salve gente )
Sto creando un Speditore di SMS ,
Come faccio a mettere un limite ? ovvero dopo 5 messaggi spediti , anche nella prossima apertura il programma non funziona .
il testo (sono stati spediti il limite , ecc) si attiva dopo che sono stati spediti 2 messaggi , vorrei che una volta che da quel messaggio non faccia spedire altri messaggi quindi che il codice sotto non venga attivato ! , grazie
sto utilizzando questa dll
Imports TrialCounter.MainTrial
ecco il codice sorgente
Codice sorgente - presumibilmente VB.NET |
MsgBox(Attivazione(2, "Sono stati spediti il limite massimo di messaggi , acquistare un nuovo paccheto per continuare", False)) ' il testo sopra (sono stati spediti il limite , ecc) si attiva dopo che sono stati spediti 2 messaggi , vorrei che una volta che da quel messaggio non faccia spedire altri messaggi quindi che il codice sotto non venga attivato ! , grazie ' dichiara la variabile per accedere al servizio Dim MyService As ServiceReference1.ManageSmsClient = New ServiceReference1.ManageSmsClient() ' dichiara le variabili necessarie per l'invio sms Dim MyGroups(0) As String Dim MyRnd As New Random Dim MyResult As ServiceReference1.sendResponse ' dichiara l'array contenente i destinatari Dim MyMsisdn_array(0) As ServiceReference1.msisdn MyMsisdn_array(0) = New ServiceReference1.msisdn() MyMsisdn_array(0).customerId = "destinatario" MyMsisdn_array(0).number = txtDest.Text ' riempe la struttura necessaria richiesta dal metodo send() Dim MySendPayload As ServiceReference1.sendPayLoad = New ServiceReference1.sendPayLoad MySendPayload.username = "username" MySendPayload.password = "psw" MySendPayload.from = txtSender.Text MySendPayload.dateTime = "" MySendPayload.text = txtMessage.Text MySendPayload.groups = MyGroups MySendPayload.transactionId = MyRnd.Next() MySendPayload.numbers = MyMsisdn_array ' chiama il metodo send() del servizio MyResult = MyService.send(MySendPayload) MsgBox("spedito")
|
Ultima modifica effettuata da Giulia006 il 22/05/2014 alle 17:16 |
|
Thejuster (Admin)
Guru^2
Messaggi: 2305
Iscritto: 04/05/2008
|
|
|
Giulia006 (Normal User)
Newbie
Messaggi: 5
Iscritto: 22/05/2014
|
ho chiesto un aiuto , non un progetto che già ho !
|
|
Roby94 (Member)
Guru
Messaggi: 1170
Iscritto: 28/12/2009
|
La soluzione che cerchi tu non è di facile ideazione. Stai cercando di far girare un applicativo sulla macchina di una persona che fisicamente non conosci nemmeno, per tanto se vogliamo essere più possibilmente pragmatici, è lui che tiene il coltello dalla parte del manico. Mi spiego meglio; per cercare di imporre un limite ad una tua applicazione del genere, (puoi fare un azione un determinato numero di volte) dovresti salvare sulla macchina dove è in esecuzione il programma un contatore. Dato che sei in "Territorio nemico"(la macchina del fruitore del programma) questo individuo avrà uguali o maggiori permessi riservati alla tua applicazione, per tanto, ogni dato che tu andrai a scrivere potrà essere sovrascritto dall'utente stesso bypassando il tuo "controllo di sicurezza". (Es tu tieni il tuo conto nel file bla.txt arrivati al conteggio 5 l'utente prende e reimposta il conteggio a 0 o ancora più facilmente cancella in file bla.txt) Non a caso tecniche di anti-pirateria vengono studiate per mesi se non anni (voglio citare l'Ubisoft, che per questo inconveniente ha ritardato l'uscita di parecchi giochi per PC di diversi mesi).
Il gioco si riduce a una gara di astuzia tra il programmatore e l'utente, o se vogliamo stereotiparlo col nome di "cracker" (mi è sempre piaciuto come suona XD).
Per tanto dovrai ideare un sistema con informazioni adeguatamente cifrate, che lasceranno una difficile comprensione del modo in cui l'applicazione si comporta, "ahime"(si scrive cosi??) comunque facilmente bypassabile da un utente con un minimo di conoscenza di queste tecniche.
Il discorso, in ogni caso, si ribalta completamente se porti l'utente a dover combattere nel tuo territorio, esempio costringendolo ad un autenticazione su un server o direttamente ad interagire da esso attraverso pagine web(Voglio lasciare come esempio il rilascio recente di EveryCircuithttp://www.everycircuit.com/ per GC che eseguito direttamente da smartphone Android non presenta grandi difficoltà nel bypassare le sue restrizioni, ma con questa ultima release, agibile da PC direttamente sul loro server rende l'operazione impossibile.)
Spero di essere stato il più chiaro possibile, ti invito a porre qualche domanda, se ne riterrai utile un approfondimento di qualche caratteristica/argomento particolare.
|
|
Giulia006 (Normal User)
Newbie
Messaggi: 5
Iscritto: 22/05/2014
|
Email e password vengono spediti via email ,
e vanno scritti tramite textbox , questi dati sono in una rete sicura , criptati , nessuno può scoprirli , ovviamente il codice è ancora da modificare , per usufruire della spedizione dei sms appunto serve essere connessi con i dati spediti via email
|
|
Roby94 (Member)
Guru
Messaggi: 1170
Iscritto: 28/12/2009
|
E allora la soluzione l'hai già creata tu! Implementa un dato che risiede sul tuo web server che non passera per l'applicazione ma che conteggi l'utilizzo di tale funzione e il gioco è fatto
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
A me sembra tutto molto debole.
Non ho capito ancora quali passi effettua il tuo programma all'apertura per controllare che il limite è stato superato.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Roby94 (Member)
Guru
Messaggi: 1170
Iscritto: 28/12/2009
|
Diciamo che più che debole ora come ora sembrerebbe inesistente. Aspettiamo che ci mostri un qualcosa di finito e si vedrà che aggiustamenti occorreranno.
|
|
MpxOS (Normal User)
Newbie
Messaggi: 8
Iscritto: 20/04/2014
|
Ciao, secondo me dovresti creare un impostazione di tipo integer e poi ecco il codice:
Codice sorgente - presumibilmente VB.NET |
If My.Settings.iniviati = 5 Then MsgBox(Attivazione(2, "Sono stati spediti il limite massimo di messaggi , acquistare un nuovo paccheto per continuare", False)) Else ' dichiara la variabile per accedere al servizio Dim MyService As ServiceReference1.ManageSmsClient = New ServiceReference1.ManageSmsClient() ' dichiara le variabili necessarie per l'invio sms Dim MyGroups(0) As String Dim MyRnd As New Random Dim MyResult As ServiceReference1.sendResponse ' dichiara l'array contenente i destinatari Dim MyMsisdn_array(0) As ServiceReference1.msisdn MyMsisdn_array(0) = New ServiceReference1.msisdn() MyMsisdn_array(0).customerId = "destinatario" MyMsisdn_array(0).number = txtDest.Text ' riempe la struttura necessaria richiesta dal metodo send() Dim MySendPayload As ServiceReference1.sendPayLoad = New ServiceReference1.sendPayLoad MySendPayload.username = "username" MySendPayload.password = "psw" MySendPayload.from = txtSender.Text MySendPayload.dateTime = "" MySendPayload.text = txtMessage.Text MySendPayload.groups = MyGroups MySendPayload.transactionId = MyRnd.Next() MySendPayload.numbers = MyMsisdn_array ' chiama il metodo send() del servizio MyResult = MyService.send(MySendPayload) MsgBox("spedito") My.Settings.inviati = My.Settings.inviati +1 End If
|
Non so se funziona comunque prova e fammi sapere.
|
|