Jump to content

Como expirar o programa?


User LoL
 Share

Recommended Posts

  • Replies 48
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

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 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

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 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

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

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

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

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 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

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 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

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 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

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 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

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 : dc53fc4f621c80bdc2fa0329a6123708

MD5x2 : 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 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

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 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

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

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

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 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

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

Acabei de te fazer o expirar o programa... se não quiseres comparar com o relógio do windows usas um na internet ...

Edited 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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.