1

I've got a couple of games (free, but closed source) that I'm editing to alter a certain feature so its less annoying. It's essentially Paused - Sorry can't do anything! thing. I've messed around with disassem\debuggers and found the JNE code that controls this, which I can edit to JMP to bypass the annoying behavior. Thing is there's about ~30 instances in every file, and the position and # can vary from file to file, and it gets tedious to do it. I've found 2 patterns that will find all the instances:

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

Changing the 74 to EB is what I want to do.

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

I've spent some time looking at various hex editors (Windows) but havent found any with this sort of functionality. Is there a scripting language that would help? Or some program I haven't found yet? (I know some c#\vb\java, so not that big of a leap)

1 Answer 1

3

In 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

However, I'm not too familiar with how writing in binary works so that may or may not work. So back up. Your hair follicles will thank you.

Edit: Also keep in mind that you're voiding the warranty, possibly the EULA, any signatures the executable had, and the secret leprechaun trust by trying to modify closed source code. Jus sayin'.

1
  • Thanks! Though there is no warranty, no checksums, and afaik, disassembly and modification are legal, under personal use\non distribution etc. This 'feature' was requested to the dev to be made optional, but it will take months to convince them, and months more for a new build. It's extremely annoying to me, and I prefer to fix it myself right now :D
    – Kage
    Aug 24, 2011 at 7:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .