def dryrun_iw3mp(): from EHF.libs import ehfprocess ph = ehfprocess.ProcessHelper() ph.findWindowByClass("CoD4") ph.openProcess() ms = scanner.MemoryScanner(ph.hProcess, 0x00401000, 0x00700000, "EHF.applications.COD4.config.PatternFinderRepo") ms.run() print ms.valuesToString() from EHF.applications.COD4 import datastruct refDefInstance = datastruct.RefDef() ms._rpm(ms.values["CG"]+0x492c8, refDefInstance, datastruct.sizeof(refDefInstance)) print "0x%X"%(ms.values["CG"]+0x492c8), refDefInstance.width, refDefInstance.height
def dryrun_iw3mp(): from EHF.libs import ehfprocess ph = ehfprocess.ProcessHelper() ph.findWindowByClass("CoD4") ph.openProcess() ms = scanner.MemoryScanner( ph.hProcess, 0x00401000, 0x00700000, "EHF.applications.COD4.config.PatternFinderRepo") ms.run() print ms.valuesToString() from EHF.applications.COD4 import datastruct refDefInstance = datastruct.RefDef() ms._rpm(ms.values["CG"] + 0x492c8, refDefInstance, datastruct.sizeof(refDefInstance)) print "0x%X" % (ms.values["CG"] + 0x492c8), refDefInstance.width, refDefInstance.height
def _run(self): """ delayed init and then - do the reading!! example: refDefInstance = datastruct.RefDef() ms._rpm(ms.values["CG"]+0x492c8, refDefInstance, datastruct.sizeof(refDefInstance)) print "0x%X"%(ms.values["CG"]+0x492c8), refDefInstance.width, refDefInstance.height "refdef_width" : 0, "refdef_height" : 0, "fov_x" : 0.0, "fov_y" : 0.0, "viewOrigin" : (0.0, 0.0, 0.0), "viewAxis" : (0.0, 0.0, 0.0), "viewAngle" : (0.0, 0.0, 0.0), "players" : [Player() for i in range(datastruct.PLAYERMAX)], "clientInfos" : [ClientInfo() for i in range(datastruct.PLAYERMAX)] """ self.delayedInit() _vars = self._appAttr["AppInfo"].vars mr = self._appAttr["MemoryReader"] mr._rpm(self.refDefAddress, self.refDef, datastruct.sizeof(self.refDef)) mr._rpm(self.cgAddress, self.cg, datastruct.sizeof(self.cg)) mr._rpm(self.cgsAddress, self.cgs, datastruct.sizeof(self.cgs)) mr._rpm(self.entityArrayAddress, self.entityArray, datastruct.sizeof(self.entityArray)) mr._rpm(self.clientInfoArrayAddress, self.clientInfoArray, datastruct.sizeof(self.clientInfoArray)) mr._rpm(self.isInGameAddress, self.isInGame, datastruct.sizeof(self.isInGame)) _vars["refdef_width"] = self.refDef.width _vars["refdef_height"] = self.refDef.height _vars["fov_x"] = self.refDef.fov_x _vars["fov_y"] = self.refDef.fov_y _vars["viewOrigin"] = self.refDef.viewOrigin _vars["viewAxis"] = self.refDef.viewAxis _vars["viewAngle"] = self.refDef.refDefViewAngles for i in range(datastruct.PLAYERMAX): _vars["players"][i].setValueFromEnCl(self.entityArray.arr[i], self.clientInfoArray.arr[i]) _vars["myPlayer"] = _vars["players"][0] _vars["myTeam"] = _vars["myPlayer"].team