QUAL MELHOR OPCAO

 Tópico anterior Próximo tópico Novo tópico

QUAL MELHOR OPCAO

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#325730 - 19/10/2009 21:05:14

CARINHENA
SOROCABA
Cadast. em:Junho/2004


Há algum tempo, migrei 99% de um software de gerenciamento, de VB6 para .Net, para "evoluir".
Antes, quando o usuário baixava, preenchia um email e enviava pra mim.
Eu recebia, gerava uma chave e enviava pra ele, pelo email.

Isso em cada mês, ja que o software era mensal, não vendido.

Só que agora, queria mudar isso.
Tava querendo ter um banco de dados Mysql, na qual o software conecta-se, via pelo serial + dados da maquina  liberasse o uso. Isso a cada 10 dias.

Até ai, não vejo muito problema.

Só que o problema é que, infelizmente, sabemos que o vb .net (ou .net como um todo), tem um problema sério, que é a de compilação, completa.
Isso quer dizer que a pessoa pode entender o código como foi escrito e burlar essas brechas.

A minha dúvida é. Existe alguma forma de criar esse tipo de limitação que falei, que de alguma forma, o cara mal intencionado não consiga decompilar e então me causar problemas?

To com essa dúvida e gostaria de conversar com o pessoal daqui, pra saber se me dão alguma luz.

Carinhena

A melhor forma de aprender e ensinando!


Resposta escolhida #325731 - 19/10/2009 21:38:15

JWCELYO
SAO PAULO
Cadast. em:Julho/2009


Olá CARINHENA Sim é possível na empresa onde trabalho actualmente só responsável por implementar esses tipos de tecnologias em aplicativos desenvolvidos pela empresa onde trabalhao.

mas especificamente no seu caso  
pode de se usar dados já criptografados assim evitarias com que um possível crack entendesses esses dados após uma engenharia reversa

VAMOS AO EXEMPLO

so para lembra as conexão de SGDBS são criptografadas por padrão onde mesmo com sniff não se  conseguiria  entende os tais dados como senha e login da base de dados do SGDB da conexão  no seu caso o MySQL.

outra dica que eu do seria bem interessante você cria conte de login a base de dados do seu MYSQL com permissão apenas Select.

Mas de qualquer forma pode fica tranquilo que seu sistema não sera crackiado caso ele num tenha uma grande popularidade na internet










*/ LIFE RUNS ON CODE /*

#325732 - 19/10/2009 21:51:02

JWCELYO
SAO PAULO
Cadast. em:Julho/2009


AQUI EU DEIXO UMA CLASSE DE CRIPTOGRAFIAS PARA VOCÊ UTILIZAR.

Public Class Criptografia
    Public Function Criptografia(ByVal StrDataIn As String, ByVal ED As Boolean) As String

        '>>> if nedd xor, use this code
        Dim XORCode As Integer
        XORCode = 165

        Dim IndR As Integer
        Dim IndC As Integer

        IndR = Val(3)
        IndC = Val(4)
        '>>> create the array
        Dim DataArray(IndR, IndC) As String
        Dim i, j As Integer
        Dim r, c As Integer
        Dim StrOut As String
        StrOut = ""
        i = 1
        '>>> loop to total length
        While i <= StrDataIn.Length

            '>>> clear the array
            For r = 0 To IndR
                For c = 0 To IndC
                    DataArray(r, c) = Chr(1)
                Next
            Next

            '>>> check the loop last postion
            Dim LastPos As Integer
            If i + (IndR * IndC) - 1 <= StrDataIn.Length Then
                LastPos = i + (IndR * IndC) - 1
            Else
                LastPos = StrDataIn.Length
            End If

            '>>> store strdatain into array character by character
            '>>> initial the array indexer
            r = 0
            c = 0
            For j = i To LastPos

                '>>> check if need to XOR the character
                ' If ChkXOR.Checked = True Then
                Dim TempChar As String
                TempChar = Mid(StrDataIn, j, 1)
                DataArray(r, c) = Chr(Asc(TempChar) Xor XORCode)
                ' Else
                ' DataArray(r, c) = Mid(StrDataIn, j, 1)
                '  End If

                c = c + 1


                '>>> reset the array indexer
                If r > IndR - 1 Then
                    r = 0
                    c = 0
                End If
                If c > IndC - 1 Then
                    c = 0
                    r = r + 1
                End If
            Next

            '>>> add array value to string coulumn nad row wise
            If ED = True Then
                For c = 0 To IndC - 1
                    For r = 0 To IndR - 1
                        StrOut = StrOut & DataArray(r, c)
                    Next
                Next
            Else
                '>>> decrypt logics
                Dim StrTemp As String
                StrTemp = ""
                Dim p, p1 As Integer
                p = 1
                p1 = 1
                For r = 0 To IndR - 1
                    For c = 0 To IndC - 1
                        StrTemp = StrTemp & DataArray(r, c)
                    Next
                Next

                While p <= StrTemp.Length
                    '>>> replace array filling character
                    '>>> check if it is xor
                    '  If ChkXOR.Checked = True Then
                    StrOut = StrOut & Replace(Mid(StrTemp, p1, 1), Chr(Asc(Chr(1)) Xor XORCode), "")
                    ' Else
                    ' StrOut = StrOut & Replace(Mid(StrTemp, p1, 1), Chr(1), "")
                    '  End If


                    p = p + 1

                    '>>> increment position by row
                    p1 = p1 + IndR
                    If p1 > StrTemp.Length Then
                        p1 = p1 - StrTemp.Length + 1
                    End If
                End While
            End If
            i = i + IndR * IndC
        End While

        Criptografia = StrOut


    End Function
End Class



*/ LIFE RUNS ON CODE /*

#325737 - 19/10/2009 23:00:05

CARINHENA
SOROCABA
Cadast. em:Junho/2004


Última edição em Editado em 19/10/2009 23:03:21 por CARINHENA por

Jucelio, ótima classe!
Aliás, essa classe é quela polimórfica que criptografa e consegue identificar se a string esta criptografado e descriptografa?


Mas, ai entra a questão da decompilação.

Por mais que essa classe seja legal, imagine o individuo com o código escrito na mão (por causa da decompilação)?

Ele consegue saber por exemplo, que pego o número de série do HD e criptgrafo junto com a data de hoje, por exemplo.

Não sei, se estou conseguindo explicar direito...

Carinhena

A melhor forma de aprender e ensinando!


#325738 - 19/10/2009 23:13:52

JWCELYO
SAO PAULO
Cadast. em:Julho/2009


isso mesmo CARINHENA ela false descriptografa é true criptógrafa

mais pode fica tranquilo que ninguém vai crackia seu sistema
mesmo que ele consigui realizar uma engenharia reversa não obter ar muito coisa legível


*/ LIFE RUNS ON CODE /*

#325739 - 19/10/2009 23:17:11

CARINHENA
SOROCABA
Cadast. em:Junho/2004


Entendo.

A minha maior preocupação mesmo, éa decompilação do código (que dizem ser fácil no .net).
Se esse problema não for tanto, então tranqüilo.

Carinhena

A melhor forma de aprender e ensinando!


#325740 - 19/10/2009 23:31:03

JWCELYO
SAO PAULO
Cadast. em:Julho/2009


se você tive mais alguma duvida pode pergunta viu CARINHENA.

*/ LIFE RUNS ON CODE /*

#325860 - 20/10/2009 19:24:57

CARINHENA
SOROCABA
Cadast. em:Junho/2004


Beleza.

Na verdade, tenho outra, mas, acho melhor criar outro tópico, pra não disvituar o atual. =)

Carinhena

A melhor forma de aprender e ensinando!


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por CARINHENA em 20/10/2009 19:25:09