Incriptador Ant Desiscriptado Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Incriptador Ant Desiscriptado

5 participantes

Ir para baixo

Incriptador Ant Desiscriptado Empty Incriptador Ant Desiscriptado

Mensagem por The Suspect Qua Nov 17, 2010 6:01 pm

Descrição

Metodos feitos para proteger jogos contra engines desencriptadoras como o RGSSAD Extractor

Scripts

KGC_InterfaceForWin32API
Este Script Permite RMXP/VX a Adquirir a WIN32API Interface, é requisitado pelo Encrypt Method
Código:
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#_/  ◆        Win32API Interface - KGC_InterfaceForWin32API        ◆ XP/VX ◆
#_/  ◇                  Last Update: 2007/11/26                              ◇
#_/  ◆              Translation by Mr. Anonymous                            ◆
#_/  ◆ KGC Site:                                                            ◆
#_/  ◆ http://f44.aaa.livedoor.jp/~ytomy/                                    ◆
#_/  ◆ Translator's Blog:                                                    ◆
#_/  ◆ http://mraprojects.wordpress.com                                      ◆
#_/-----------------------------------------------------------------------------
#_/  Este Script Permite RMXP/VX a Adquirir a WIN32API Interface
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_

class Win32API
  STRING_BUF_SIZE = 255
  #--------------------------------------------------------------------------
  # ● Read INI File
  #    section : Section name
  #    key    : Key
  #    default : default value when a key doesn't exist
  #    inifile : Passing of read INI file
  #--------------------------------------------------------------------------
  def self.GetPrivateProfileString(section, key, default, inifile)
    get_ini = Win32API.new(
      'kernel32.dll', 'GetPrivateProfileStringA', %w(p p p p l p), 'l')
    buf = "\0" * (STRING_BUF_SIZE + 1)
    get_ini.call(section, key, default, buf, STRING_BUF_SIZE, inifile)
    return buf.delete!("\0")
  end
  #--------------------------------------------------------------------------
  # ● Aquire Window
  #    window_class : Window class name
  #    window_title : Title of window
  #--------------------------------------------------------------------------
  def self.FindWindow(window_class, window_title)
    find_window = Win32API.new('user32.dll', 'FindWindowA', %w(p p), 'l')
    return find_window.call(window_class, window_title)
  end
  #--------------------------------------------------------------------------
  # ● Aquire Active Window
  #--------------------------------------------------------------------------
  def self.GetActiveWindow
    active_window = Win32API.new('user32.dll', 'GetActiveWindow', %w(v), 'l')
    return active_window.call
  end
  #--------------------------------------------------------------------------
  # ● Aquire Game Window
  #--------------------------------------------------------------------------
  def self.GetHwnd
    name = GetPrivateProfileString("Game", "Title", "", "./Game.ini")
    return FindWindow("RGSS Player", name)
  end
end

File Encrypt
Precisa explicar? =P
Código:
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/  ◆              File Encrytion 2 - KGC_FileEncryption2          ◆ XP/VX ◆
#_/  ◇                      Last Update: 2006/11/27                          ◇
#_/  ◆                  Translation by Mr. Anonymous                        ◆
#_/  ◆ KGC Site:                                                            ◆
#_/  ◆ http://f44.aaa.livedoor.jp/~ytomy/                                    ◆
#_/  ◆ Translator's Blog:                                                    ◆
#_/  ◆ http://mraprojects.wordpress.com                                      ◆
#_/----------------------------------------------------------------------------
#_/  Installation: Insert above Main, below KGC_InterfaceForWin32API.
#_/  Requires TCrypt.dll
#_/============================================================================
#_/  This script encrypts your game data to an unhackable state.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

=begin
━━━━━━━━━━━━━━━━━━━ Methods ━━━━━━━━━━━━━━━━━━━━
┠─── Module - TCrypt ───────────────────────────
┃ version()
┃  - no arguments -
┃ Returns the version of "TCrypt.dll" by Integer.

┃ encrypt(infile, outfile, key, mode[, bufsize])
┃  infile  : Input file.
┃           
┃  outfile : Output file.
┃           
┃  key    : Encryption key.
┃           
┃  mode    : Encryption mode.
┃            << 0..MKERS  1..MKES >>
┃           
┃  bufsize : Buffer size. (Default: 4096Byte)
┃           

┃ Encrypts 'infile', and outputs it to 'outfile'.

┃ decrypt(infile, outfile, key, mode[, bufsize])
┃  infile  : Input file.
┃           
┃  outfile : Output file.
┃           
┃  key    : Encryption key.
┃           
┃  mode    : Encryption mode.
┃            << 0..MKERS  1..MKES >>
┃           
┃  bufsize : Buffer size. (Default: 4096Byte)
┃           
┃ Decrypts 'infile', and outputs it to 'outfile'.

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
=end

$imported = {} if $imported == nil
$imported["FileEncryption2"] = true

module TCrypt
  # Code page
  CP_UTF8 = 65001  # UTF-8

  # Encryption mode
  MODE_MKERS = 0  # MKERS
  MODE_MKES  = 1  # MKES

  module_function
  #--------------------------------------------------------------------------
  # ○ 『TCrypt.dll』 aquired and converted
  #    (Example: 1.23 → 123)
  #--------------------------------------------------------------------------
  def version
    begin
      api = Win32API.new('TCrypt.dll', 'DllGetVersion', %w(v), 'l')
      ret = api.call
    rescue
      ret = -1
    end
    return ret
  end
  #--------------------------------------------------------------------------
  # ○ Encrytion
  #  infile: Input file name
  #  outfile: Output file name
  #  key: Encryption key
  #  mode: Encryption form
  #  bufsize: Size of buffer(16~1048576)
  #--------------------------------------------------------------------------
  def encrypt(infile, outfile, key, mode, bufsize = 4096)
    begin
      api = Win32API.new('TCrypt.dll', 'EncryptA', %w(l p p p l l l), 'l')
      ret = api.call(0, infile, outfile, key, mode, bufsize, CP_UTF8)
    rescue
      ret = -1
    end
    return ret
  end
  #--------------------------------------------------------------------------
  # ○ Decoding
  #  infile: Input file name
  #  outfile: Output file name
  #  key: Encryption key
  #  mode: Encryption form
  #  bufsize: Size of buffer(16~1048576)
  #--------------------------------------------------------------------------
  def decrypt(infile, outfile, key, mode, bufsize = 4096)
    begin
      api = Win32API.new('TCrypt.dll', 'DecryptA', %w(l p p p l l l), 'l')
      ret = api.call(0, infile, outfile, key, mode, bufsize, CP_UTF8)
    rescue
      ret = -1
    end
    return ret
  end
end

KGC_Compress Save File
Permite que arquivos saves ficam "encriptados" para evitar haking

Código:
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/  ◆              Compress Save File - KGC_CompressSaveFile          ◆ VX ◆
#_/  ◇                      Last Update: 2008/02/14                          ◇
#_/  ◆                    Translation by Mr. Anonymous                      ◆
#_/  ◆ KGC Site:                                                            ◆
#_/  ◆ http://f44.aaa.livedoor.jp/~ytomy/                                    ◆
#_/  ◆ Translator's Blog:                                                    ◆
#_/  ◆ http://mraprojects.wordpress.com                                      ◆
#_/----------------------------------------------------------------------------
#_/  Installation: Insert above Main, below KGC_InterfaceForWin32API and below
#_/  KGC_FileEncryption2. Requires TCrypt.dll
#_/============================================================================
#_/  This script compresses save files to an unhackable state.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#=============================================================================#
#                            ★ Customization ★                              #
#=============================================================================#

=begin
********************************************************************************
Note: Do not change the encryption key after you create a save file.
The save file created before this change will be rendered unreadable.
********************************************************************************
=end

module KGC
module CompressSaveFile
  # ◆ Enable Encryption
  #  KGC_FileEncryption2, KGC_InterfaceForWin32API, AND TCrypt.dll are required
  #  for this to work.
  ENABLE_CRYPT = true
  # ◆ Encryption Key
  #  A random character string is recommended.
  #  Follow the general rules of creating password for the best effect.
  #  It's OK if this string is so long it protrudes off the screen.
  CRYPT_KEY = "insertencryptionkeyhereplease"
end
end

#------------------------------------------------------------------------------#

$imported = {} if $imported == nil
$imported["CompressSaveFile"] = true

module KGC::CompressSaveFile
  # Buffer Size
  BUFSIZE = 256
  # Temporary prefix for file name.
  TEMP_PREFIX = "KGC"

  module_function
  #--------------------------------------------------------------------------
  # ○ Create Temp File
  #    作成した一時ファイルのパスを返す
  #--------------------------------------------------------------------------
  def create_temp_file
    return Win32API.get_temp_filename(Win32API.get_temp_path)
  end
  #--------------------------------------------------------------------------
  # ○ ファイルのコピー
  #    src  : コピー元
  #    dest : コピー先
  #    keep_time_stamp : タイムスタンプ保持
  #--------------------------------------------------------------------------
  def copy_file(src, dest, keep_time_stamp = true)
    infile = File.open(src, "rb")
    time = infile.mtime
    buf = infile.read
    infile.close

    File.open(dest, "wb") { |f| f.write(buf) }

    File.utime(time, time, dest) if keep_time_stamp
  end
  #--------------------------------------------------------------------------
  # ○ ファイルのエンコード
  #    filename : ファイル名
  #--------------------------------------------------------------------------
  def encode_file(filename)
    compress_file(filename)
    encrypt_file(filename)
  end
  #--------------------------------------------------------------------------
  # ○ ファイルの圧縮
  #    filename : ファイル名
  #--------------------------------------------------------------------------
  def compress_file(filename)
    buf = nil
    File.open(filename, "rb") { |f| buf = f.read }
    Zlib::GzipWriter.open(filename) { |gz| gz.write(buf) }
  end
  #--------------------------------------------------------------------------
  # ○ ファイルの暗号化
  #    filename : ファイル名
  #--------------------------------------------------------------------------
  def encrypt_file(filename)
    return 0 unless ENABLE_CRYPT      # 暗号化無効
    return 0 unless defined?(TCrypt)  # 暗号化未導入

    return TCrypt.encrypt(filename, filename, CRYPT_KEY, TCrypt::MODE_MKERS)
  end
  #--------------------------------------------------------------------------
  # ○ ファイルのデコード
  #    filename : ファイル名
  #--------------------------------------------------------------------------
  def decode_file(filename)
    decrypt_file(filename)
    decompress_file(filename)
  end
  #--------------------------------------------------------------------------
  # ○ ファイルの展開
  #    filename : ファイル名
  #--------------------------------------------------------------------------
  def decompress_file(filename)
    buf = nil
    File.open(filename, "rb") { |f|
      begin
        # 展開
        gz = Zlib::GzipReader.new(f)
        buf = gz.read
      rescue
        # 展開に失敗したら生データを使用
        f.rewind
        buf = f.read
      ensure
        gz.finish if gz != nil
      end
    }
    File.open(filename, "wb") { |f| f.write(buf) }
  end
  #--------------------------------------------------------------------------
  # ○ ファイルの復号
  #    filename : ファイル名
  #--------------------------------------------------------------------------
  def decrypt_file(filename)
    return 0 unless defined?(TCrypt)  # 暗号化未導入

    return TCrypt.decrypt(filename, filename, CRYPT_KEY, TCrypt::MODE_MKERS)
  end
end

#==================================End Class===================================#

#==============================================================================
# ■ Win32API
#==============================================================================

class Win32API
  #--------------------------------------------------------------------------
  # ○ 一時ファイルのパスを取得
  #--------------------------------------------------------------------------
  def self.get_temp_path
    size = KGC::CompressSaveFile::BUFSIZE
    buf = "\0" * size

    api = Win32API.new('kernel32', 'GetTempPathA', %w(l p), 'l')
    api.call(size, buf)
    return buf.delete!("\0")
  end
  #--------------------------------------------------------------------------
  # ○ 一時ファイル名の取得
  #    path : 一時ファイルを作成するパス
  #--------------------------------------------------------------------------
  def self.get_temp_filename(path)
    size = KGC::CompressSaveFile::BUFSIZE
    buf = "\0" * size
    prefix = KGC::CompressSaveFile::TEMP_PREFIX

    api = Win32API.new('kernel32', 'GetTempFileNameA', %w(p p l p), 'l')
    api.call(path, prefix, 0, buf)
    return buf.delete!("\0")
  end
end

#==================================End Class===================================#

#==============================================================================
# ■ Window_SaveFile
#==============================================================================

class Window_SaveFile < Window_Base
  #--------------------------------------------------------------------------
  # ● ゲームデータの一部をロード
  #    スイッチや変数はデフォルトでは未使用 (地名表示などの拡張用) 。
  #--------------------------------------------------------------------------
  alias load_gamedata_KGC_CompressSaveFile load_gamedata
  def load_gamedata
    original_filename = @filename
    original_file_exist = FileTest.exist?(original_filename)
    if original_file_exist
      # オリジナルのタイムスタンプを取得
      time = nil
      File.open(original_filename) { |f| time = f.mtime }
      # 一時ファイルを作成
      @filename = KGC::CompressSaveFile.create_temp_file
      KGC::CompressSaveFile.copy_file(original_filename, @filename)
      KGC::CompressSaveFile.decode_file(@filename)
      # 一時ファイルのタイムスタンプをオリジナルと同一にする
      File.utime(time, time, @filename)
    end

    load_gamedata_KGC_CompressSaveFile

    if original_file_exist
      # 一時ファイルを削除
      File.delete(@filename)
      # ロードに失敗したらタイムスタンプを初期化
      @time_stamp = Time.at(0) unless @file_exist
      Graphics.frame_reset
    end
    @filename = original_filename
  end
end

#==================================End Class===================================#

#==============================================================================
# ■ Scene_File
#==============================================================================

class Scene_File < Scene_Base
  #--------------------------------------------------------------------------
  # ● セーブの実行
  #--------------------------------------------------------------------------
  alias do_save_KGC_CompressSaveFile do_save
  def do_save
    do_save_KGC_CompressSaveFile

    filename = @savefile_windows[@index].filename
    KGC::CompressSaveFile.encode_file(filename)
  end
  #--------------------------------------------------------------------------
  # ● ロードの実行
  #--------------------------------------------------------------------------
  alias do_load_KGC_CompressSaveFile do_load
  def do_load
    filename = @savefile_windows[@index].filename
    tempfilename = KGC::CompressSaveFile.create_temp_file

    # オリジナルファイルを退避
    KGC::CompressSaveFile.copy_file(filename, tempfilename)
    KGC::CompressSaveFile.decode_file(filename)

    do_load_KGC_CompressSaveFile

    # オリジナルファイルを復元
    KGC::CompressSaveFile.copy_file(tempfilename, filename)
    File.delete(tempfilename)
    Graphics.frame_reset
  end
end

#==================================End Class===================================#

Maiores Instruções

1º) Copie os 3 Scripts na Ordem

2º) É Necessário a "TCrypt.dll" para funcionar que pode ser encontrado no Anexo

3º) No Script KGC compress Save File Procure por esta linha:
Código:
CRYPT_KEY = "insertencryptionkeyhereplease"

Mude o que está entre parenteses para alguma coisa a gosto, Lembrandoque isto será como uma "Senha" que irá proteger o jogo portantocapriche porque se alguem descobrir acabou o desencrypt =/(sugiroseguir regras de segurança de criação de senhas e usar a "senha"Randomizada)

4º) no mesmo script citado acima procure isto:

Código:
 ENABLE_CRYPT = true

Esta linha permite que o metodo funcione, se Colocar False ele nãoencripta o jogo(é recomendavel por False durante o periodo dedesenvolvimento do jogo para evitar problemas)

5º) NUNCA mude a CRYPT_KEY depois de criado um arquivo de save, pois irá crashear o save.


Notas e Observações

EsteMétodo Funciona tanto em RMXP quanto RMVX, Porém como todos os métodosdo mundo Não irá proteger 100% o seu projeto, mas irá dificultarmuitissimo a vida dos desencriptadores, aconselhavel e muito Usar.

Creditos

Criador > Mr. Anonymous
disponibilizador > aldosilva.


Última edição por aldosilva. em Qui Nov 18, 2010 1:20 pm, editado 1 vez(es)
The Suspect
The Suspect
Ocasional
Ocasional

Mensagens : 206
Créditos : 83

Ir para o topo Ir para baixo

Incriptador Ant Desiscriptado Empty Re: Incriptador Ant Desiscriptado

Mensagem por The Suspect Qua Nov 17, 2010 6:02 pm

tem geito melhor de se proteger mais ninguem fala intao postei esse para quebra o galho de us aew Wink


Última edição por aldosilva. em Qua Nov 17, 2010 11:37 pm, editado 1 vez(es)
The Suspect
The Suspect
Ocasional
Ocasional

Mensagens : 206
Créditos : 83

Ir para o topo Ir para baixo

Incriptador Ant Desiscriptado Empty Re: Incriptador Ant Desiscriptado

Mensagem por HugoFreitas Qua Nov 17, 2010 6:05 pm

Muito bom Aldo, vai proteger o pessoal contra os outros que roubam sistemas.

+1 cred.

_________________
Incriptador Ant Desiscriptado Brsnip10
Incriptador Ant Desiscriptado DqtrI
HugoFreitas
HugoFreitas
Administrador
Administrador

Medalhas : Incriptador Ant Desiscriptado Medal_55
Mensagens : 633
Créditos : 175

http://www.aldeiarpgbr.com

Ir para o topo Ir para baixo

Incriptador Ant Desiscriptado Empty Re: Incriptador Ant Desiscriptado

Mensagem por The Suspect Qua Nov 17, 2010 6:08 pm

vlw pelo credi..


Última edição por aldosilva. em Qua Nov 17, 2010 11:37 pm, editado 1 vez(es)
The Suspect
The Suspect
Ocasional
Ocasional

Mensagens : 206
Créditos : 83

Ir para o topo Ir para baixo

Incriptador Ant Desiscriptado Empty Re: Incriptador Ant Desiscriptado

Mensagem por Theu Souto Qua Nov 17, 2010 8:50 pm

Eu nao consegui mecher com isso ://
eu segui tudo direitinho mais da erro, depois posto o erro que deu

@aldo, voce é mod e dando DB :O
Theu Souto
Theu Souto
Iniciante
Iniciante

Mensagens : 67
Créditos : 13

Ir para o topo Ir para baixo

Incriptador Ant Desiscriptado Empty Re: Incriptador Ant Desiscriptado

Mensagem por Valentine Qua Nov 17, 2010 11:07 pm

um dos maiores problemas do rmxp, é que todos esses métodos pode ser facilmente diblados, modificando o RGSSAD Extractor
Valentine
Valentine
Administrador
Administrador

Medalhas : Incriptador Ant Desiscriptado ZgLkiRU
Mensagens : 5345
Créditos : 1164

https://www.aldeiarpg.com/

Ir para o topo Ir para baixo

Incriptador Ant Desiscriptado Empty Re: Incriptador Ant Desiscriptado

Mensagem por DeaN Qui Nov 18, 2010 8:58 am

Po muito maneiro.

_________________
Dean, Programador Geral :)

Contato: Skype:matucarvalho e Facebook
The Enze - Vulzt

Shield Block
Anti-Cheat para jogos de FPS, agora vou adaptar para jogos de RPG principalmente para o RMXP.
www.shieldblock.net
fb.com/shieldblockoficial

Incriptador Ant Desiscriptado MiB0H
DeaN
DeaN
Colaborador
Colaborador

Mensagens : 1243
Créditos : 48

http://www.shieldblock.net

Ir para o topo Ir para baixo

Incriptador Ant Desiscriptado Empty Re: Incriptador Ant Desiscriptado

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


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