MMORPG Brasil - Suporte e recursos para desenvolvedores de MMORPGs.

Forum destinado a criação de MMORPGs e abrindo espaço para todas engines MMORPG maker.

Bem vindo ao MMORPGBR Fórum
Visite nossa Faq, crie tópicos, seja ativo para participar de nossa comunidade, faça a diferença e não seja um sangue suga, se gostar de um tópico não custa reputar, veja nossas Regras para não se prejudicar.

Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir para baixo  Mensagem [Página 1 de 1]

#1[EO3.0]Cript EO3 Empty [EO3.0]Cript EO3 Dom maio 21, 2017 4:29 pm

joaopaulo98

joaopaulo98
ADM
ADM
Cript EO3
Proteger os arquivos ".png" do Eclipse Origins 3.0

Introdução
Estou criando este tópico no intuito de compartilhar um simples método que desenvolvi para proteger de pessoas infantis os arquivos de meu projeto, já tem muito tempo que havia desenvolvido esse método, quis compartilhar antes, mas não sabia uma forma de compartilhar e manter a segurança, então andei lendo sobre Bibliotecas(DLL), então decidi postar ele como uma DLL e um programa para converter os arquivos do seu projeto.


E Como Funciona?
É exatamente por isso que não posso compartilhar o código, o método é bem simples, na verdade é uma besteira, alguém com conhecimento em manipulação de arquivos quebraria fácil, então é melhor deixar em aberto. Quando alguém conseguir quebrar o mesmo, então eu irei desenvolver aprimorar, e realmente irei fazer uma criptografia decente, já fiz até vários exemplos, mas o computador que estou usando não ajuda muito, e não tenho paciência, mas assim que puder atualizo a DLL.


Como Instalar?
O Conversor não precisar ser instalado, apenas executado.

A Dll,primeiramente salve ela na pasta de seu projeto ao lado do executável, então você irá no seu projeto que seja baseado em Eclipse Origins 3.0(Tem que ser 3.0 ou derivadas, não funcionará em outras) e irá referenciar essa biblioteca à seu projeto. Como?
[EO3.0]Cript EO3 2akhdac
Irá aparecer esse janela:
[EO3.0]Cript EO3 20keqfa
Clique em 'Browser' como está marcado na imagem, então selecione CriptEO3.dll
Pronto, Agora precisamos fazer com que o eclipse use esse biblioteca.

Primeiro vamos na class cGDIpImage
Em seguida iremos procurar pela função:
Código:
Public Function LoadPicture_FileName(filename As String, TokenClass As cGDIpToken, Optional ClearAttributes As Boolean = True) As Boolean

Iremos alterar completamente toda esse função por:
Código:
Public Function LoadPicture_FileName(filename As String, TokenClass As cGDIpToken, Optional ClearAttributes As Boolean = True) As Boolean

    ' Unicode compatible if the FileName passes contains unicode characters
    ' Routine simply opens the file, reads the data, and passes to the LoadPicture_Stream function
    If TokenClass Is Nothing Then Exit Function
    If TokenClass.Token = 0& Then Exit Function
    
    Dim Format() As String
    Format = Split(filename, ".")
    
    If Format(UBound(Format)) <> "png" Then
        Dim Cript As New CriptByte
        
        Call Cript.setPass(1982) ' Senha dos arquivos
        Call Cript.Start(filename)
        
        Select Case Cript.GetStatus
            Case StatusCript.STATUS_OK
                LoadPicture_FileName = LoadPicture_Stream(Cript.GetFile, TokenClass, ClearAttributes)
            Case StatusCript.STATUS_NULL
                DestroyGame
        End Select
    Else
        Const GENERIC_READ As Long = &H80000000
        Const OPEN_EXISTING = &H3
        Const FILE_SHARE_READ = &H1
        Const FILE_ATTRIBUTE_ARCHIVE As Long = &H20
        Const FILE_ATTRIBUTE_HIDDEN As Long = &H2
        Const FILE_ATTRIBUTE_READONLY As Long = &H1
        Const FILE_ATTRIBUTE_SYSTEM As Long = &H4
        Const FILE_ATTRIBUTE_NORMAL = &H80&
        Const INVALID_HANDLE_VALUE As Long = -1&
        
        Dim hImage As Long, IStream As IUnknown
        Dim flags As Long, hFile As Long, bData() As Byte
        
        On Error GoTo ExitRoutine
        flags = FILE_ATTRIBUTE_ARCHIVE Or FILE_ATTRIBUTE_HIDDEN Or FILE_ATTRIBUTE_NORMAL _
                Or FILE_ATTRIBUTE_READONLY Or FILE_ATTRIBUTE_SYSTEM
        If IsWindowUnicode(GetDesktopWindow()) = 0& Then
            hFile = CreateFileA(filename, GENERIC_READ, FILE_SHARE_READ, ByVal 0&, OPEN_EXISTING, flags, 0&)
        Else
            hFile = CreateFileW(StrPtr(filename), GENERIC_READ, FILE_SHARE_READ, ByVal 0&, OPEN_EXISTING, flags, 0&)
        End If
        
        If Not (hFile = INVALID_HANDLE_VALUE Or hFile = 0&) Then
            flags = GetFileSize(hFile, 0&)
            ReDim bData(0 To flags - 1&)
            ReadFile hFile, bData(0), flags, flags, ByVal 0&
            CloseHandle hFile
            If flags > UBound(bData) Then LoadPicture_FileName = LoadPicture_Stream(bData(), TokenClass, ClearAttributes)
        End If
    End If
        
ExitRoutine:
End Function

Vamos alterar a chave que ficará em seu cliente
Procura por:

Código:
Call Cript.setPass(1982) ' Senha dos arquivos

Onde tem "1982", troque para o novo valor, lembre-se, apenas NÚMEROS.

Pronto, agora é só você alterem a extensão que o eclipse ler pela que você quiser, ou pela extensão padrão do conversor(".fce - File Cript EO"). Como faço?
Em modConstants, procura por:
Código:
Public Const GFX_EXT As String = ".png"

Altera o ".png" para a que você quiser, Ex: ".fce".

Recomendo que faça um backup de todas as imagens do seu projeto, depois de convertido não há como voltar. Agora é só converter todas as imagens "PNG" de seu projeto e compartilhar.

Créditos
Dooolly

https://mmorpgsbrasil.directorioforuns.com

Ver o tópico anterior Ver o tópico seguinte Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos