1

У меня есть пара игр (бесплатно, но с закрытым исходным кодом), которые я редактирую, чтобы изменить определенную функцию, чтобы она была менее раздражающей. По сути, это приостановлено - извините, ничего не могу сделать! вещь. Я возился с disassem\debuggers и нашел код JNE, который управляет этим, который я могу отредактировать в JMP, чтобы обойти раздражающее поведение. Дело в том, что в каждом файле около 30 экземпляров, и положение и # могут варьироваться от файла к файлу, и это утомительно. Я нашел 2 шаблона, которые найдут все экземпляры:

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

Я хочу сделать 74 на EB.

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

Я потратил некоторое время на просмотр различных шестнадцатеричных редакторов (Windows), но не нашел ни одного с такой функциональностью. Есть ли язык сценариев, который поможет? Или какая-то программа, которую я еще не нашел? (Я знаю немного c #\vb\java, так что не такой уж большой скачок)

1 ответ1

3

В рубине:

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

Тем не менее, я не слишком знаком с тем, как работает запись в двоичном коде, так что может работать или не работать. Итак, сделайте резервную копию. Ваши волосяные фолликулы будут вам благодарны.

Изменить: Также имейте в виду, что вы аннулируете гарантию, возможно, лицензионное соглашение, любые подписи исполняемого файла и секретное доверие гнома, пытаясь изменить закрытый исходный код. Jus говорят

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .