Como posso automatizar algumas edições hexadecimais simples?

1

Eu tenho alguns jogos (gratuitos, mas de código fechado) que estou editando para alterar um determinado recurso, então é menos irritante. É essencialmente Pausado - Desculpe, não posso fazer nada! coisa. Eu mexi com os disassem \ debuggers e encontrei o código JNE que controla isso, que eu posso editar no JMP para ignorar o comportamento irritante. Há cerca de 30 instâncias em cada arquivo, e a posição e # podem variar de arquivo para arquivo, e é tedioso fazê-lo. Eu encontrei dois padrões que encontrarão todas as instâncias:

84 C0 74 ** B8 ** ** 4A 00
84 C0 74 ** E8 ** ** ** 00

Mudar o 74 para EB é o que eu quero fazer.

84 C0 EB ** B8 ** ** 4A 00
84 C0 EB ** E8 ** ** ** 00

Eu passei algum tempo olhando para vários editores hexadecimais (Windows), mas não encontrei nenhum com esse tipo de funcionalidade. Existe uma linguagem de script que ajudaria? Ou algum programa que ainda não encontrei? (Eu sei que algum c # \ vb \ java, então não é tão grande assim)

    
por Kage 24.08.2011 / 08:25

1 resposta

3

Em Ruby:

regex = /84 C0 74 \*\* B8 \*\* \*\* 4A 00/
regex2 = /84 C0 74 \*\* E8 \*\* \*\* \*\* 00/
File.open("your file", "rb+") do |file|
    file.gsub! regex, '84 C0 EB ** B8 ** ** 4A 00'
    file.gsub! regex2 '84 C0 EB ** E8 ** ** ** 00'
end

No entanto, não estou muito familiarizado com o modo como a escrita em binário funciona, o que pode ou não funcionar. Então, de volta. Seus folículos capilares vão agradecer.

Editar : Lembre-se também de anular a garantia, possivelmente o EULA, quaisquer assinaturas que o executável tenha e a confiança secreta do leprechaun ao tentar modificar o código-fonte fechado. Jus dizendo.

    
por 24.08.2011 / 08:58