O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

[VXAce] Gerar arquivo na pasta Graphics com o projeto encriptado

Iniciado por Gabriel, 26/08/2019 às 23:34

26/08/2019 às 23:34 Última edição: 26/08/2019 às 23:35 por Gabriel N.
Bom, tô com um problema aqui e não sei como resolver. O que está acontecendo é:

Comecei a criar um sistema que em determinada situação gera um arquivo (uma imagem) e o salva na pasta Graphic/System. O que acontece é que quando o jogo está encriptado o maker não consegue gerar o arquivo dentro dessa pasta, pois ela é encriptada junto com o projeto.

Eu poderia simplesmente gerar o arquivo em outro lugar, como a pasta raiz do jogo (aí funcionaria mesmo ele estando encriptado), mas eu não quero que o arquivo seja visível e nem acessível, igual como a pasta Graphics já fica quando o projeto é encriptado.

Alguém tem uma ideia de como contornar isso?


Esse pedido é tops  :e.e:

Então, como o modo que ele encripta eu acho que não tem em nenhum lugar disponível para realizar tenho talvez uma ou outra solução para a gente tentar.
E se ao invés de usar o modo de encriptar do próprio Ace, usar algum realizado pelo próprio Ruby? Tipo eu encontrei esse daqui, mas sei que tem mais:
https://pastebin.com/c0iy7ECD

Tem alguns problemas ainda que não sei como vamos resolver, se a ideia era a imagem estar dentro do arquivo encriptografado, ai acho que teríamos que desencriptografar colocar a imagem e encriptografar novamente, não sei se isso é tão viável pelo tempo de processamento, dependendo do momento que você cria a image acho que até dá. O outro modo é ele gerar arquivos encriptografados só com a imagem, é meio esquisito já que ele vai começar a gerar n arquivos  :derp: , mas deveria funcionar em partes.

Esse último modo a parte boa é que você pode manter a encriptografia padrão do Ace e adicionar um modo secundário para não deixar as imagens expostas e sair jogando criptografia nas imagens.




Foi o que eu pensei de momento  :lol:, não sei se alguém talvez tenha alguma outra ideia para solucionar isso.

Show, Raizen! Obrigado pela ideia.

Por ora me baseei no método de encriptação do código que tu linkou e ficou bem funcional. Não há atrasos para criar e encriptar os arquivos e também são decriptados e carregados rapidamente. Eles ainda são visíveis, mas inacessíveis, assim já tá valendo.

Isso é bem útil:
  def encrypt(filename)
    sourcefile = File.open(filename, "rb")
    content = sourcefile.readlines
    sourcefile.close
    encry_filename = DataManager.strip_extension(filename)
    targetfile = File.open(encry_filename + ".rvdata2", "wb")
    for i in 0...content.size
      content[i] = CODE + content[i]
    end
    Marshal.dump(content, targetfile)
    targetfile.close
    File.delete(filename)
  end

  def decrypt(filename)
    sourcefile = File.open(filename, "rb")
    content = Marshal.load(sourcefile)
    for i in 0...content.size
      value = content[i]
      content[i] = value[CODE. length, content[i].size]
    end
    sourcefile.close
    begin
      targetfile = File.open(ENCRYPTED_FILE, "wb")
      @fileswitch = false
    rescue
      targetfile = File.open(ENCRYPTED_FILE + "1", "wb")
      @fileswitch = true
    end
    for i in 0...content.size
      targetfile.write(content[i])
    end
    targetfile.close
  end





Se alguém tiver outra ideia, ainda estou aberto a saber.  :XD:


 Só uma nota que esse código aí que você pegou não encripta de fato o arquivo, só salva ele com o Marshal do Ruby, que qualquer um que tenha Ruby vai conseguir desfazer.

O ideal seria usar algum tipo de criptografia real, de preferência usando alguma DLL (implementar em Ruby é possível, mas a performance vai pro espaço).

Eu daria uma olhada em Cryptography Functions, em especial a função BCryptEncypt.

Se tiver um tempo posso tentar implementar, mas já fica a direção aí se mais alguém tiver tempo xd
~ Masked

Tô ligado, mas só de já dar um leve trabalhinho já deve servir. São só umas imagens que eu não queria deixar à mostra, nem vale a pena alguém tentar descriptografar. huehue

Muito obrigado pelas referências, vou dar uma olhada aqui. Apesar de eu achar que seria trampo demasiado pro problema em questão, estudar um tipo de criptografia realmente segura será interessante, eu mesmo já descriptografei vários projetos antigos meus que não tinha mais o projeto aberto. A do Maker não vale nada. uehue

Só é uma pena que de DLL ainda não entendo nada, mas acho que depois vou tentar dar uma olhada nisso também. Já passou dá hora.  :O=O: