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

Script de Cheat Engine para RMVX Ace

Iniciado por Brandt, 14/01/2014 às 13:16

Citação de: Masked online 15/01/2014 às 04:02
Opa, obrigado por responderem.

@lucascool: Então, mas o que acha do script? E não é todo mundo que é como você, e às vezes sai disponibilizando ou usando recursos que eram para serem exclusivos do jogo.

@alisson: É basicamente isso que o script faz também, mas ele altera valores dentro do arquivo de save, e não são só números, tem todo tipo de variável nesses arquivos, aí um trecho do arquivo de save:

{:system=>#<Game_System:0x80aa764 @anti_lag=true,
@tools_on_map=[], 
@old_interpreter_running=false, 
@hud_visible=false, @enable_hud=false, 
@command_enable=true, 
@pre_leader_id=1, 
@xas_battle=true, 
@save_disabled=false, 
@menu_disabled=false, 
@encounter_disabled=false, 
@formation_disabled=false, 
@battle_count=0, 
@save_count=2, 
@version_id=28241046, 
@window_tone=nil, 
@battle_bgm=nil, 
@battle_end_me=nil, 
@saved_bgm=nil, 
@frames_on_save=8292, 
@bgm_on_save=#<RPG::BGM:0x80aa4d0 @name="25", @volume=100, @pitch=100, @pos=0>,
@bgs_on_save=#<RPG::BGS:0x80aa408 @name="Wind", @volume=80, @pitch=50, @pos=297276>>, 

:timer=>#<Game_Timer:0x80aa3b8 @count=0, @working=false>, 

:message=>#<Game_Message:0x80aa354 @texts=[],
@choices=[], 
@face_name="", 
@face_index=0, 
@background=0, 
@position=2, 
@choice_cancel_type=0, 
@choice_proc=nil, 
@num_input_variable_id=0, 
@num_input_digits_max=0, 
@item_choice_variable_id=0, 
@scroll_mode=false, 
@scroll_speed=2, 
@scroll_no_fast=false, 
@visible=false>, 

:switches=>#<Game_Switches:0x80be1b0 @data=[nil, true, true, true, true]>,

:variables=>#<Game_Variables:0x80be14c @data=[nil, 1, 1]>,

:self_switches=>#<Game_SelfSwitches:0x80be0fc @data={[1, 1, "A"]=>true}>, 

:actors=>#<Game_Actors:0x80be05c @data=[nil, #<Game_Actor:0x80be020 @state_move_speed=0,
@state_duration=[nil, 60],
@state_loop_effect_time=[nil, 0], 
@state_loop_speed=[nil, 1], 
@state_string="", 
@state_string_time=0, 
@state_stop=false, 
@state_sleep=false, 
@state_invunerable=false, 
@state_slow=false, 
@state_fast=false, 
@state_mute=false, 
@state_seal_attack=false, 
@state_seal_skill=false, 
@state_seal_item=false, 
@state_reflect=false, 
@damage=0, 
@damage_pop=false, 
@damage_type=0, 
@critical=false, 
@invunerable_duration=0, 
@shield=false, 
@invunerable_actions=[], 
@guard_directions=[], 
@guard=true, 
@invunerable=false, 
@x_combo=[1, 0, 69], 
@defeated=false, 
@death_zoom_effect=0, 
@cast_action=[0, 0, 0, 0, 0], 
@counter_action=[0, 0, true], 
@knockback_duration=60, 
@battler_name="", 
@battler_hue=0, 
@actions=[], 
@speed=0, 
@result=#<Game_ActionResult:0x80bd9e0 
@battler=#<Game_Actor:0x80be020 ...>, 
@used=false, 
@missed=false, 
@evaded=false, 
@critical=false, 
@success=false, 
@hp_damage=0, 
@mp_damage=0, 
@tp_damage=0, 
@hp_drain=0, 
@mp_drain=0, 
@added_states=[], 
@removed_states=[], 
@added_buffs=[], 
@added_debuffs=[], 
@removed_buffs=[]>, 
@last_target_index=0, 
@guarding=false, 
@animation_id=0, 
@animation_mirror=false, 
@sprite_effect_type=nil, 
@tp=0, @mp=41, @hp=562, 
@hidden=false, 
@param_plus=[0, 0, 0, 0, 0, 0, 0, 0], 
@states=[], 
@state_turns={}, 
@state_steps={},
@buffs=[0, 0, 0, 0, 0, 0, 0, 0], 
@buff_turns={}, @sensor_range=4, 
@body_size=0, 
@breath_effect=false, 
@breath_duration=0, 
@fast_breath_effect=false, 
@no_knockback=false, 
@passive=false, 
@attack_animation_id=0, 
@ignore_guard=false, 
@no_damage_pop=false, 
@x_action1_id=1,
@x_action2_id=0, 
@skill_id=0, 
@x_item_id=0, 
@item_id=0,
@x_charge_action=[0, 0, 0, 0], 
@old_level=1, 
@old_equipment_id=[#<RPG::Weapon:0x80bd3a0 
@description="Espada simples, é muito usada por aprendizes devido ao \r\nbaixo custo e manejo fácil", @name="Espada de Treino", 
@icon_index=4406, 
@price=100, 
@animation_id=7, 
@note="<Action ID = 1>", 
@id=1, 
@features=[#<RPG::BaseItem::Feature:0x80bd29c @code=31, @data_id=1, @value=0>, 
#<RPG::BaseItem::Feature:0x80bd24c @code=22, @data_id=0, @value=-0.1>, 
#<RPG::BaseItem::Feature:0x80bd210 @code=33, @data_id=0, @value=-5.0>], 
@params=[0, 0, 10, 0, 0, 0, 0, 0], 
@etype_id=0, 
@wtype_id=1>, nil, nil, nil, nil], 
@actor_id=1, 
@name="Daniel", 
@nickname="", 
@character_name="$Daniel[f8]", 
@character_index=0, 
@face_name="", 
@face_index=0, 
@class_id=1, 
@level=1, 
@exp={1=>0}, 
@equips=[#<Game_BaseItem:0x80bd058 @class=RPG::Weapon, @item_id=1>, 
#<Game_BaseItem:0x80bd01c @class=nil, @item_id=0>,
#<Game_BaseItem:0x80bd008 @class=nil, @item_id=0>, 
#<Game_BaseItem:0x80bcff4 @class=nil, @item_id=0>, 
#<Game_BaseItem:0x80bcfe0 @class=nil, @item_id=0>], 
@skills=[], 
@action_input_index=0, 
@last_skill=#<Game_BaseItem:0x80bcf7c @class=nil, @item_id=0>, 
@ovd_level=0, 
@ovd_maxlevel=0, 
@ovd_gauge=0>]>, 

:party=>#<Game_Party:0x80bcec8
@in_battle=false, 
@gold=0, 
@steps=338, 
@last_item=#<Game_BaseItem:0x80bce64 @class=nil, @item_id=0>, 
@menu_actor_id=0, 
@target_actor_id=0, 
@actors=[1], 
@items={}, 
@weapons={}, 
@armors={}>, 

:troop=>#<Game_Troop:0x80bcd60 
@in_battle=false, 
@screen=#<Game_Screen:0x80bcd24 
@pictures=#<Game_Pictures:0x80bcce8 @data=[]>, 
@brightness=255, 
@fadeout_duration=0, 
@fadein_duration=0, 
@tone=(0.000000, 0.000000, 0.000000, 0.000000), 
@tone_target=(0.000000, 0.000000, 0.000000, 0.000000), 
@tone_duration=0, 
@flash_color=(0.000000, 0.000000, 0.000000, 0.000000), 
@flash_duration=0, 
@shake_power=0, 
@shake_speed=0, 
@shake_duration=0, 
@shake_direction=1, 
@shake=0, 
@weather_type=:none, 
@weather_power=0, 
@weather_power_target=0, 
@weather_duration=0>, 
@interpreter=#<Game_Interpreter:0x80bca90 @depth=0, @map_id=0, @event_id=0, @list=nil, @index=2, @branch={}>, 
@event_flags={}, 
@enemies=[], 
@turn_count=0, 
@names_count={}>, 

:map=>#<Game_Map:0x80bc9a0 
@screen=#<Game_Screen:0x80bc98c 
@pictures=#<Game_Pictures:0x80bc978 @data=[]>, 
@brightness=255, 
@fadeout_duration=0, 
@fadein_duration=0, 
@tone=(0.000000, 0.000000, 0.000000, 0.000000), 
@tone_target=(0.000000, 0.000000, 0.000000, 0.000000), 
@tone_duration=0, 
@flash_color=(0.000000, 0.000000, 0.000000, 0.000000), 
@flash_duration=0, 
@shake_power=0, 
@shake_speed=0, 
@shake_duration=0, 
@shake_direction=1, 
@shake=0, 
@weather_type=:none, 
@weather_power=0, 
@weather_power_target=0, 
@weather_duration=0>, 
@interpreter=#<Game_Interpreter:0x80bc8d8 @depth=0, @map_id=0, @event_id=0, @list=nil, @index=1, @branch={}>, 
@map_id=5, 
@events={}, 
@display_x=10.0, 
@display_y=13.0


Enfim, se você leu até aí (não é nem metade do arquivo) deve ter visto que tem até a configuração de uma espada ali no meio, o arquivo era de um projeto que estava fazendo com gráficos de Ragnarok, mas aí... desisti.

@Dias Anders:

Opa, na verdade eu nem estava pensando nisso, você teria que configurar por si só, mas... CARA! QUE IDEIA BOA!

Agora que você falou dos mods eu acho que posso adicionar um jeito de carregar arquivos com script que auto-modificariam o arquivo de save!

E pode ficar tranquilo que se eu não me engano jogos de Netplay não tem arquivo de save.

E eu vou fazer em RGSS mesmo, ainda não sei o suficiente de nenhuma outra linguagem para fazer esse script, e obrigado por oferecer sua ajuda, talvez eu precise de alguns testers sim.

Até mais


desde quando dispobilizo ou uso recursos que eram para serem exclusivos do jogo?
olha cara,o script é por sua conta de risco  :ok:


Não cara, não disse que você faz isso, e sim que você não faz, mas nem todo mundo é como você, e como são diferentes de você, eles disponibilizam/usam recursos exclusivos.  :=p:
~ Masked

Opa, desculpem por double postear, mas eu queria saber a opinião de mais algumas pessoas, já mandei pra alguns membros para eles testarem (sim, eu já fiz uma parte), e queria que vocês dessem opiniões e sugestões para o script.

Aí vão algumas screens:

Tela Inicial

É a primeira tela, tem as opções e edição e tal, a seleção das opções é pelo mouse, a opção que o mouse estiver em cima fica verde
[close]

Valores do Sistema

Essa é a cena de edição dos valores do sistema, só para mostrar que já fiz mais que a página inicial mesmo  :hahaha!:
[close]

Editor de Cores RGB

Esse é o editor de Cores/Tons, a inserção de valores é pelo mouse e a seleção do campo a ser editado também,é funcional sim, até agora é uma das únicas opções que realmente mudaram alguma coisa...
[close]

Editor de Integer

Aí o editor de valores numéricos inteiros, você escreve o valor pelo teclado
[close]

Então é isso gente, qualquer sugestão para o script, mesmo que seja visual, é muito bem vinda, estou tentando fazer ele o mais amigável ao usuário possível, então qualquer coisa que pareça estar difícil de usar ou ruim de mexer, falem aí.

Até, e podem ficar tranquilos que vai ser possível deixar a cor mais ao estilo CRM também, a interface vai ser customizável, e agradecimentos ao Raizen, pelo script Full Keyboard Module, que permitiu a criação dos editores com valores inseridos pelo teclado.

Até mais
~ Masked

     Também não apoio nem desapoio meu caro, mas gostaria de ver um script assim produzido.
" Back from the Shadows ? "

27/02/2014 às 13:43 #19 Última edição: 27/02/2014 às 13:44 por Klarth
Um script assim é facil de contratacar :P
Mas é uma boa idéia  :clap:

Citação de: Klarth online 27/02/2014 às 13:43
Um script assim é facil de contratacar :P
Mas é uma boa idéia  :clap:
Acho que a ideia por trás é justamente fazer os desenvolvedores de jogos para RM abrirem mais os olhos e se preocuparem com encriptações mais completas. XD.
Vai lá Masked! Quando tiver pronto eu quero ver para garantir que não vá funcionar nos meus projetos. Aahsuahushuas...
Esse povo fica medroso sob do muro, mas é importante para expor as fragilidades do Maker e tentar contorná-las.
Até.

Citação de: Shiroyasha online 27/02/2014 às 14:10
Citação de: Klarth online 27/02/2014 às 13:43
Um script assim é facil de contratacar :P
Mas é uma boa idéia  :clap:
Acho que a ideia por trás é justamente fazer os desenvolvedores de jogos para RM abrirem mais os olhos e se preocuparem com encriptações mais completas. XD.
Vai lá Masked! Quando tiver pronto eu quero ver para garantir que não vá funcionar nos meus projetos. Aahsuahushuas...
Esse povo fica medroso sob do muro, mas é importante para expor as fragilidades do Maker e tentar contorná-las.
Até.
Mas o pior é que mesmo que a gente mude o modo como salva/carrega, ainda da para contornar. Um jogo 100% seguro de fato não existe, mesmo os jogos feitos por equipes gigantes.

Isso é verdade, mas é justamente uma questão de se preocupar em ao menos dificultar as coisas mesmo.

Citação de: Shiroyasha online 27/02/2014 às 14:50
Isso é verdade, mas é justamente uma questão de se preocupar em ao menos dificultar as coisas mesmo.
Com certeza. Quando dificultamos, a quantidade de players que irão poder burlar será bem menor mas, caso o jogo se torne bastante famoso (o que acho dificil ocorrer com um jogo de RM :P) ai se torna inevitável a distribuição de cheats/hacks.

Opa, valeu pelos comentários pessoal, bom, é fácil mesmo proteger o jogo contra o script, mas também é razoavelmente fácil achar uma falha nessa defesa (depende, é claro, do tipo...), além do que isso vai abrir um pouco os olhos dos criadores de jogos, como o Shiroyasha disse, só não temos milhares de Cheats para RPG Maker porque a engine não é tão conhecida e porque os que conhecem ou não tiveram essa ideia ou não tiveram tempo para por ela em prática, porque a segurança é muito fraca, sério, o Save é encriptado com Marshal.dump! Qualquer scripter intermediário saberia desencriptar até porque o método de 'desencriptação' vem incluso no Ruby  :facepalm:
~ Masked