Example #1
0
def dispatch():
    if "original1" not in _ver_storage or "original2" not in _ver_storage:
        raise Exception("original code not found")

    write_bytes(addressof(_code.mark1), bytes(_ver_storage["original1"]))
    write_bytes(addressof(_code.mark2), bytes(_ver_storage["original2"]))

    return "dispatch success"
Example #2
0
def patch():
    if _code.mark1[:] != [0x90, 0x90]:
        _ver_storage["original1"] = _code.mark1[:]
    if _code.mark2[:] != [0x90, 0x90]:
        _ver_storage["original2"] = _code.mark2[:]
    _storage.save()

    write_bytes(addressof(_code.mark1), b'\x90' * 2)
    write_bytes(addressof(_code.mark2), b'\x90' * 2)

    return "patch success"
Example #3
0
 def dispatch(self):
     write_bytes(self.addr1, self.originals[0]),
     write_bytes(self.addr1 + 0x15, self.originals[1]),
     write_bytes(self.addr2, self.originals[2]),
     write_bytes(self.addr2 + 0xA, self.originals[3]),
     return "dispatch success"
Example #4
0
 def patch(self):
     write_bytes(self.addr1, nop),
     write_bytes(self.addr1 + 0x15, nop),
     write_bytes(self.addr2, nop),
     write_bytes(self.addr2 + 0xA, nop),
     return "patch success"