-- Stuff used by dfusion local _ENV = mkmodule('plugins.dfusion') local ms=require("memscan") local marker={0xDE,0xAD,0xBE,0xEF} patches={} -- A reversable binary patch BinaryPatch=defclass(BinaryPatch) BinaryPatch.ATTRS {pre_data=DEFAULT_NIL,data=DEFAULT_NIL,address=DEFAULT_NIL,name=DEFAULT_NIL} function BinaryPatch:init(args) self.is_applied=false if args.pre_data==nil or args.data==nil or args.address==nil or args.name==nil then error("Invalid parameters to binary patch") end if patches[self.name]~=nil then error("Patch already exist") end self.max_val=0 for k,v in pairs(args.pre_data) do if type(k)~="number" then error("non number key in pre_data") end if self.max_val