User LoL Posted July 24, 2012 at 12:10 AM Report Share #469875 Posted July 24, 2012 at 12:10 AM é o seguinte,eu tenho um pequeno projeto,e queria que o programa expirasse,depois de 3 usos,como eu faço isso? ja tentei o active lock,mas nao to conseguindo mecher,pq ele é pra visual basic 2006, e eu tenho o visual basic 2008 Link to comment Share on other sites More sharing options...
Lukas S. Posted July 24, 2012 at 01:32 AM Report Share #469881 Posted July 24, 2012 at 01:32 AM (edited) 1º Criar um ficheiro com a data lá dentro na primeira utilização( podes criar um ficheiro encriptado ou não) 2º Comparar datas . Se as datas forem iguais ou superior então Application.Exit se não rodar o programa Tenho alguns dos meus programas com HWID protection que é unico podes associar isso ao teu programa mais o tempo limite... torna mais seguro e viável contra hackers embora que sem anti-crack não vás longe na mesma .... se precisares de ajuda pergunta q depois coloco algo aqui 😉 Edited July 24, 2012 at 01:39 AM by Lukas S. E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
User LoL Posted July 24, 2012 at 02:07 AM Author Report Share #469885 Posted July 24, 2012 at 02:07 AM Obrigado pela atenção,poderia postar um exemplo de codigo,de como eu faria essa gravação de data,e depois a comparação delas? Link to comment Share on other sites More sharing options...
Lukas S. Posted July 24, 2012 at 02:52 AM Report Share #469890 Posted July 24, 2012 at 02:52 AM (edited) Vou deixar mais ou menos o código tendo que seres tu a adaptar o código ao teu código If File.Exists(Application.StartupPath & "\lucas.txt") Then Dim A As String() = File.ReadAllLines(Application.StartupPath & "\lucas.txt") For Each Text As String In A Dim LVI As New ListViewItem(Text.Split("-")(0)) LVI.SubItems().Add(Text.Split("-")(1)) LVI.SubItems().Add(Text.Split("-")(2)) LVI.ImageIndex = 0 ListView1.Items.Add(LVI) Next End If Agora alteras para o que necessitas .... é só alterares o que está dentro do ciclo for ... para cada data dentro do ficheiro o que tu queres fazer? é uma comparação ... Como não tinha nada pra fazer acho que este código serve no teu caso .. For Each Text As String In A If Date.Now >= Text Then MsgBox("O programa irá fechar pois ultrapassou o limite de dias") Application.Exit() End If Next Lembra-te que este codigo necessita ainda de muitas alteraçoes .. o ficheiro tem que ser criado caso ele não exista e tens que gravar dentro do ficheiro a data da primeira abertura mais os 3 dias somados Dim a As String Dim data As Date data = Now.Date a = data.AddDays(3) TextBox1.Text = a.ToString Também é só alterares o código e pronto ..😉 Edited July 24, 2012 at 03:06 AM by Lukas S. E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
User LoL Posted July 24, 2012 at 03:28 AM Author Report Share #469899 Posted July 24, 2012 at 03:28 AM Nao estou conseguindo :/ pensei em obter a data,em um textbox invisivel e gravar no config,ai nao ia mudar essa data,ia ficar la o dia em que for aberto a primeira vez o programa, ai pegar numa segunda textbox,o dia atual,cada vez que a aplicação é aberta,ai comparar,quando a diferença entre a data gravada no textbox1 e a data atual fosse maior que 30,ele retornaria com um close,mas ai eu pensei,e se eu acessar dia 30 pela primeira vez,ai no dia 3 eu acessar denovo,nao vai mais dar,porque a diferença vai ser 30,sendo que só passaram 3 dias,entao pela data nao dá,tem que ser de outra forma,atraves dos acessos,mas como? 😞 Link to comment Share on other sites More sharing options...
Lukas S. Posted July 24, 2012 at 03:34 AM Report Share #469900 Posted July 24, 2012 at 03:34 AM Estás a complicar o que é simples... se o ficheiro existe é porque a data já está lá dentro ! ... o ficheiro é criado na primeira abertura na segunda ele vai comparar e ver se existe ... se existir então ele faz isso tudo .. E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
User LoL Posted July 24, 2012 at 04:18 AM Author Report Share #469905 Posted July 24, 2012 at 04:18 AM Só aquele File,do primeiro código,ta dando erro,tenho que declarar algum Dim com nome File primeiro? Link to comment Share on other sites More sharing options...
ribeiro55 Posted July 24, 2012 at 09:37 AM Report Share #469926 Posted July 24, 2012 at 09:37 AM E se eu alterar a data do sistema? Se a expiração é por usos, para que preciso da data? Basta um númerozito no registo ou no appdata ou em ambos. Porque é que dão a extensão TXT a um ficheiro que não querem que seja encontrado? É quase um convite... Basta trocares a extensão para, sei lá, DLL, que já despistas metade da malta que não se lembra de o abrir num editor de texto. Nenhuma destas "protecções" é eficaz, se a tua aplicação começar a ser usada em larga escala. Isto só serve para uns 80 a 85% de utilizadores. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
Lukas S. Posted July 24, 2012 at 04:31 PM Report Share #470049 Posted July 24, 2012 at 04:31 PM (edited) E se eu alterar a data do sistema? Se a expiração é por usos, para que preciso da data? Basta um númerozito no registo ou no appdata ou em ambos. Porque é que dão a extensão TXT a um ficheiro que não querem que seja encontrado? É quase um convite... Basta trocares a extensão para, sei lá, DLL, que já despistas metade da malta que não se lembra de o abrir num editor de texto. Nenhuma destas "protecções" é eficaz, se a tua aplicação começar a ser usada em larga escala. Isto só serve para uns 80 a 85% de utilizadores. Ele pode até criar um ficheiro .XXXXXXX isso não interessa .. Estás a falar de mudar a data pra que ir tão longe ? existe programas que fazem o trial reset... quando falamos em expirar um programa a coisa fica dificil porque existe sempre maneiras de crackear o programa tal como tu disseste ... tu consegues passar uma imagem gif para jpg a mesma coisa tu conseguirias criar a tua propria extensão e mudar para txt e seria possivel descobrir a data ....Isso de expirar é dificil.. eu aconcelhava-te a quem quiseres dar o programa fazer um registro do HWID ( Algo que não pode ser alterado) e metias numa BD online ... Após isso tu dizes ok tenho o HWID e a data do registro o que posso fazer com isto ? fazes uma verificação com um timer para ir verificando a data. Caso a data coincida com a data do computador ou a hora local acessando a um site comparando o ip da pessoa então o programa fecha.... Eu quando criei um trial fiz usando esse método ... é eficaz até ao ponto em que tu não saberes a que pais aquele ip pertence mas claro a data de registro está na bd depois terias que apagar manualmente. Caso não queiras usar este método tu ainda podes ter outro ... Podias encriptar a data usando md5.... e depois no programa usando um timer ou outro no inicio do programa farias a verificação descriptando a data no momento da execução do programa ... se não comprendeste eu explico melhor depois 😉 Edited July 24, 2012 at 04:33 PM by Lukas S. E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
ribeiro55 Posted July 24, 2012 at 05:20 PM Report Share #470066 Posted July 24, 2012 at 05:20 PM (edited) HWID é uma má ideia na medida em que estás a prender a execução a um determinada disposição de hardware. Se precisar de trocar o CPU ou usar a licença que acabei de comprar num computador novo, tenho de te comprar a licença outra vez? HWID para uma aplicação típica é má ideia. Se queres usar um sistema de autenticação online, usa o velhinho par de user/pass. Adicionalmente. se o fatclient for para usar offline, garantes que consegues fazer comparação online, a cada execução? Imagina uma calculadora: obrigavas-me a ter net só para determinar se a posso usar ou não? Also, não podes "descriptar" MD5. MD5 é um algoritmo de hash. Edited July 24, 2012 at 05:21 PM by ribeiro55 Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
Lukas S. Posted July 24, 2012 at 06:04 PM Report Share #470070 Posted July 24, 2012 at 06:04 PM (edited) HWID é uma má ideia na medida em que estás a prender a execução a um determinada disposição de hardware. Se precisar de trocar o CPU ou usar a licença que acabei de comprar num computador novo, tenho de te comprar a licença outra vez? HWID para uma aplicação típica é má ideia. Se queres usar um sistema de autenticação online, usa o velhinho par de user/pass. Adicionalmente. se o fatclient for para usar offline, garantes que consegues fazer comparação online, a cada execução? Imagina uma calculadora: obrigavas-me a ter net só para determinar se a posso usar ou não? Also, não podes "descriptar" MD5. MD5 é um algoritmo de hash. Concordo com tudo o que disseste menos o descriptar senhas em md5...Normalmente as senhas dos fóruns são todas guardadas em md5 .. ele guarda o md5 e não a senha ... tu não consegues de facto "descriptar senhas " mas consegues comparar Imports System.Security.Cryptography Imports System.Text Module Crypt Public Function Encrypt(ByVal toEncrypt As String, ByVal key As String, ByVal useHashing As Boolean) As String Dim keyArray As Byte() Dim toEncryptArray As Byte() = UTF8Encoding.UTF8.GetBytes(toEncrypt) If useHashing = True Then Dim hashmd5 As New MD5CryptoServiceProvider() keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key)) Else keyArray = UTF8Encoding.UTF8.GetBytes(key) End If Dim tdes As New TripleDESCryptoServiceProvider() tdes.Key = keyArray tdes.Mode = CipherMode.ECB tdes.Padding = PaddingMode.PKCS7 Dim cTransform As ICryptoTransform = tdes.CreateEncryptor() Dim resultArray As Byte() = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length) Return (Convert.ToBase64String(resultArray, 0, resultArray.Length)) End Function Public Function Decrypt(ByVal toDecrypt As String, ByVal key As String, ByVal useHashing As Boolean) As String Dim keyArray As Byte() Dim toEncryptArray As Byte() = Convert.FromBase64String(toDecrypt) If useHashing = True Then Dim hashmd5 As New MD5CryptoServiceProvider() keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key)) Else keyArray = UTF8Encoding.UTF8.GetBytes(key) End If Dim tdes As New TripleDESCryptoServiceProvider() tdes.Key = keyArray tdes.Mode = CipherMode.ECB tdes.Padding = PaddingMode.PKCS7 Dim cTransform As ICryptoTransform = tdes.CreateDecryptor() Dim resultArray As Byte() = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length) Return UTF8Encoding.UTF8.GetString(resultArray) End Function End Module Com isto tu podes saber a md5 de uma palavra e até de um programa( no exemplo dado em cima não mas com o algoritmo md5 sim) ... por exemplo lucas ficaria MTrlfbTs67Y= usando o key lucas 😉 e o usehashing sendo verdadeiro podes exprimentar o código acima colocando algo do género Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click TextBox2.Text = Encrypt(TextBox1.Text, "lucas", True) End Sub Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click TextBox1.Text = Decrypt(TextBox2.Text, "lucas", True) End Sub o segundo paramentro refere-se a uma chave especial que podes ser tu a decidir qual é tornando assim o algoritmo md5 algo que até hoje é muito dificil decifrar se as keys sao diferentes das usuais ... Edited July 24, 2012 at 06:08 PM by Lukas S. E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
ribeiro55 Posted July 24, 2012 at 07:49 PM Report Share #470108 Posted July 24, 2012 at 07:49 PM (edited) Normalmente as senhas dos fóruns são todas guardadas em md5 .. ele guarda o md5 e não a senha ... Já não se guardam hashes MD5 directas. As rainbow tables deram conta disso. Quanto muito, guarda-se a hash com bastante "sal", usam-se hashes em cima de hashes ou misturam-se algoritmos. tu não consegues de facto "descriptar senhas " mas consegues comparar Óbvio. Para isso é que servem os algoritmos de hash. Com isto tu podes saber a md5 de uma palavra e até de um programa( no exemplo dado em cima não mas com o algoritmo md5 sim) ... por exemplo lucas ficaria MTrlfbTs67Y= usando o key lucas 😉 e o usehashing sendo verdadeiro Não é o MD5 que estas a encriptar/desencriptar. Novamente, MD5 é um algoritmo de hash. O que estás a utilizar para encriptar/desencriptar é DES, e não MD5. DES já é um algoritmo que permite encriptar e desencriptar. Estás apenas a usar uma hash calculada com MD5 como chave da encriptação. MD5 é indecifrável, porque não é informação cifrada. O que acontece é que já existem grandes bases de dados de correspondências de hashes. É a única forma de "decifrar", que nem se enquadra na definição de "decifrar". Edited July 24, 2012 at 07:50 PM by ribeiro55 Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
Lukas S. Posted July 24, 2012 at 07:56 PM Report Share #470109 Posted July 24, 2012 at 07:56 PM (edited) Já não se guardam hashes MD5 directas. As rainbow tables deram conta disso. Quanto muito, guarda-se a hash com bastante "sal", usam-se hashes em cima de hashes ou misturam-se algoritmos. Óbvio. Para isso é que servem os algoritmos de hash. Não é o MD5 que estas a encriptar/desencriptar. Novamente, MD5 é um algoritmo de hash. O que estás a utilizar para encriptar/desencriptar é DES, e não MD5. DES já é um algoritmo que permite encriptar e desencriptar. Estás apenas a usar uma hash calculada com MD5 como chave da encriptação. MD5 é indecifrável, porque não é informação cifrada. O que acontece é que já existem grandes bases de dados de correspondências de hashes. É a única forma de "decifrar", que nem se enquadra na definição de "decifrar". Overload de conhecimento xD ... Bem aquilo que aprendi é que nós com o algoritmo md5 ele reproduz uma hash. Essa hash pode ser decifrada ( http://www.md5decrypter.co.uk/ (8,7 bilhões de hashs) ) e aquilo que eu usei pelo menos até agora sempre foi md5 a meu haver ... Nunca tinha ouvido falar de tal coisa ( DES) e nem sei o que é ... se poderes explicar ps: para gerar uma hash md5 (http://www.adamek.biz/md5-generator.php) md5("Lucas") = "c3d41bf5efb468a1bcce53bd53726c85" usando o meu nome mais o salt como lucas generei isto MD5 : dc53fc4f621c80bdc2fa0329a6123708MD5x2 : 7abf2e21ef21c97aed1086e566e3cff0 MD5x3 : fddcf4c770b55bdee086b9f47e4d232f MD5x4 : 7022440c0ec4d825e68766934ee7f560 MD5x5 : 00eea01685809594c06872c6deb15d91 MD5(Reverse): 8073216a9230af2cdb08c126f4cf35cd MD5(Unicode): 5899ab1a1e7725894f45370aa082eb71 MD5(Base64) : 3FP8T2IcgL3C+gMpphI3CA== MD4 : 4430282dba9511a041afbfc08807872a NTLM : f3fed0e0c815b63bc9c966193f65a3de LM : 4b75bc9a258d4d4baad3b435b51404ee MySQL5 : 7af58df4677731baa0de74ce8c2e8e20bb5818cd SHA1 : 10c25665e49274c39b8e8f7ad6e2a3d0b0bc5052 SHA1x2 : b5f030aa6367d03b1f57facc5078ebec721c5b23 SHA1x3 : ea5969287f1040eeede0241f9a400963f270b04d SHA1(Reverse): 2505cb0b0d3a2e6da7f8e8b93c47294e56652c01 SHA1(Unicode): df56ffd2209ecb4893d3f0687836d1335585fc44 SHA1(Base64) : EMJWZeSSdMObjo961uKj0LC8UFI= SHA256 : 7cadab457ad8d811f134612436daaa5e5914b20dc2502865f714035b0f267680 SHA384 : 403a0c4d78521e29622afbc79fda7e310d2163e42075eae703608c177df1b26caa4f75afe6f4ff17b71f2da349e2de73 SHA512 : d31f9bb81b68134704060b4ee6fc772cf98f69d699a8456b296bd2d69aaf276e4af927d0e5c62a8a4c85ec463b30ecb18d96d994a1b72d07a5d8503a9206080b RIPEMD160 : 0a7330ef19772ce16bc4e2080d03a890b080921c md5(sha1($pass)): 64c6190176c8a6d0d7cbfa7e856a3f81 sha1(md5($pass)): 80556113746a4b298ce73b495df49878aa50d240 md5($pass.$salt): bcabb41ab4701aea13422f5a147c0977 md5($salt.$pass): bcabb41ab4701aea13422f5a147c0977 md5(md5($pass).$salt): 934100e4e973b3f9aa5b22e9d30a596b md5(md5($salt).$pass): 934100e4e973b3f9aa5b22e9d30a596b md5($salt.md5($pass)): af48f18678bec99e8e7dfda284983912 md5($salt.$pass.$salt): 525cc692c20d9ba7a79a25125f948065 sha1($pass.$salt): 65e32a0fbe98f5b4bc986eb18279830c71116a61 sha1($salt.$pass): 65e32a0fbe98f5b4bc986eb18279830c71116a61 RAdmin v2.*: 59e704d885a0d71a1bd03a94d3b62737 Edited July 24, 2012 at 07:59 PM by Lukas S. E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
ribeiro55 Posted July 24, 2012 at 08:09 PM Report Share #470111 Posted July 24, 2012 at 08:09 PM (edited) Então tu usas TripleDES nesse teu código que meteste, e não sabes o que é? 😄 Só por castigo, vais procurar no Google 😉 Novamente, MD5 não se decifra. O "MD5decrypter", como não espirituosamente o chamam, é uma rainbow table. Um repositório de correspondências de hashs com valores. Experimenta gerar uma hash de "tiririca maria" e ir lá "desencriptar". Enquanto não alimentarem a rainbow table com tiririca maria = 12ba311c8c66459fd980169e8e9c87a7, NUNCA em tempo algum alguém te vai "desencriptar" isso. Imagina o hashing como uma prensa automóvel: Carros diferentes dão blocos prensados diferentes e carros iguais vão dar blocos prensados muito semelhantes... mas em nenhum dos casos os consegues voltar a ter carros! Eu consigo olhar para os dois blocos e dizer: "sim, é o mesmo carro, quase de certeza" mas se me perguntarem qual é o carro, tenho de encolher os ombros. Tu até podes fazer uma hash dos Lusíadas e vais obter uma hash com 32 caracteres. Achas mesmo que desses 32 caracteres, consegues voltar a sacar os Lusíadas para fora? No entanto, sem leres os Lusíadas todo, ao comparar esses 32 caracteres, vais conseguir saber com elevada taxa de sucesso, se se trata mesmo do Lusíadas ou não. Edited July 24, 2012 at 08:13 PM by ribeiro55 Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
Lukas S. Posted July 24, 2012 at 08:31 PM Report Share #470118 Posted July 24, 2012 at 08:31 PM LoooL tripleDes é 3 vezes o Des que é a encriptação que origina uma chave de 56 bits. Não entendi muito bem esse teu exemplo dos Lusiadas XD .... Este código não era meu encontrei na primeira pesquisa que fiz usando md5 vb.net .... estes códigos são fáceis de encontrar ... No entanto, sem leres os Lusíadas todo, ao comparar esses 32 caracteres, vais conseguir saber com elevada taxa de sucesso, se se trata mesmo do Lusíadas ou não. ???? E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
ribeiro55 Posted July 24, 2012 at 08:49 PM Report Share #470124 Posted July 24, 2012 at 08:49 PM LoooL tripleDes é 3 vezes o Des que é a encriptação que origina uma chave de 56 bits. True. O problema é que continuas sem saber o que é sequer o DES. E também continuas sem perceber o que é o MD5. Este código não era meu encontrei na primeira pesquisa que fiz usando md5 vb.net Que o código não era teu já eu tinha percebido. Podias ter feito um esforço por o analisar 😉 ???? Percebeste a analogia da prensa? É menos orientada. Se tu gerares a hash MD5 de um livro, digamos uma qualquer porcaria relacionada com o Harry Potter, vais obter uma chave de 32 caracteres. Se eu gerar uma hash MD5 de um qualquer livro de Dan Brown, também vou obter uma chave de 32 caracteres. Tu tens uma hash de MD5, eu tenho uma hash de MD5. Se compararmos as duas, vão ser diferentes. Podemos concluír que não são livros iguais. E não precisamos de nem sequer olhar para a capa. Agora, se eu gerar uma hash MD5 do mesmo livro da Rowling, do Harry Potter (que tinha apanhado do lixo só para te dar este exemplo), vou obter uma hash de 32 caracteres igual à tua. Podemos concluir que é altamente provável que estejamos ambos na posse do mesmo livro. As hashes servem para isto: testar integridade. Não são decifráveis! Não vou continuar com o offtopic. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
Lukas S. Posted July 24, 2012 at 09:14 PM Report Share #470128 Posted July 24, 2012 at 09:14 PM (edited) Entendendo ou não resolvi o problema do usuario em questão ... podes alterar a extensão para a que quiseres que ele vai continuar a ler o ficheiro ;)Coloquei as textboxs só para testar a veracidade do algoritmo podes tirar as duas textboxs http://www.mediafire.com/?a7do9vfsdso60zj Caso alguma duvida pergunta Mais ou menos assim que está lá ..foi feito á pressa mas pronto tiras as bases dai Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load TextBox2.Text = Date.Now If File.Exists(Application.StartupPath & "\lucas.lucascomunidadeportugal") Then Dim A As String() = File.ReadAllLines(Application.StartupPath & "\lucas.lucascomunidadeportugal") For Each Text As String In A Dim resultado As Date resultado = BASE64_Decode(Text) If Date.Now >= resultado Then MsgBox("O programa irá fechar pois ultrapassou o limite de dias") Application.Exit() End If Next Else Dim a As String Dim data As Date data = Now.Date a = data.AddDays(3) Dim dataencriptada As String = BASE64_Encode(a.ToString) Using sw As StreamWriter = File.CreateText(Application.StartupPath & "\lucas.lucascomunidadeportugal") sw.Write(dataencriptada) End Using End If End Sub Aqui vai o módulo de encriptação Module Module1 Public Function BASE64_Encode(ByVal input As String) As String Try Return Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(input)) Catch ex As Exception MsgBox("Error !") Return 0 End Try End Function Public Function BASE64_Decode(ByVal input As String) As String Try Return System.Text.Encoding.ASCII.GetString(Convert.FromBase64String(input)) Catch ex As Exception MsgBox("Error !") Return 0 End Try End Function End Module Edited July 24, 2012 at 09:54 PM by Lukas S. E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
User LoL Posted July 24, 2012 at 10:01 PM Author Report Share #470139 Posted July 24, 2012 at 10:01 PM Eu li todas as respostas e vi que em um momento,foi pedido "E se alterar a hora do sistema"? é simples,podemos monitorar ações do sistema pelo vb.net,certo? entao temos que adaptar um código,que monitore a alteração da data,ele grava a ultima vez que o usuario entrou,ai toda vez que ele entra,o programa compara a data atual,com a ultima registrada,se a atual for menor ele bloqueia o programa,ate que se mude a data novamente 😄 alguem pode me dar um exemplo de como faço pra guardar a data que o usuario entra,depois comparar cada vez que ele entrar denovo? Link to comment Share on other sites More sharing options...
Lukas S. Posted July 24, 2012 at 11:36 PM Report Share #470160 Posted July 24, 2012 at 11:36 PM (edited) Acabei de te fazer o expirar o programa... se não quiseres comparar com o relógio do windows usas um na internet ... Edited July 24, 2012 at 11:40 PM by Lukas S. E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro. Link to comment Share on other sites More sharing options...
Caça Posted July 25, 2012 at 08:17 AM Report Share #470192 Posted July 25, 2012 at 08:17 AM (edited) Pois, mas a ideia é não utilizar a Internet, porque se for para utilizar a Internet as coisas tornam-se muito mais fáceis Edited July 25, 2012 at 08:17 AM by Caça Pedro Martins Não respondo a duvidas por PM Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now