private void removeNIDInfo(NIDInfo info) { IDictionary <int, NIDInfo> moduleMap = moduleNidMap[info.ModuleName]; if (moduleMap != null) { moduleMap.Remove(info.Nid); if (moduleMap.Count == 0) { moduleNidMap.Remove(info.ModuleName); } } // For HLE NID's, do not trust the module names defined in pspsharp, use only the NID. if (!info.ValidModuleName) { nidMap.Remove(info.Nid); } if (info.hasAddress()) { addressMap.Remove(info.Address); } if (info.hasSyscall()) { syscallMap.Remove(info.Syscall); } if (info.hasName()) { nameMap.Remove(info.Name); } }
private void addNIDInfo(NIDInfo info) { IDictionary <int, NIDInfo> moduleMap = moduleNidMap[info.ModuleName]; if (moduleMap == null) { moduleMap = new Dictionary <int, NIDInfo>(); moduleNidMap[info.ModuleName] = moduleMap; } moduleMap[info.Nid] = info; // For HLE NID's, do not trust the module names defined in pspsharp, use only the NID. if (!info.ValidModuleName) { nidMap[info.Nid] = info; } if (info.hasAddress()) { addressMap[info.Address] = info; } if (info.hasSyscall()) { syscallMap[info.Syscall] = info; } if (info.hasName()) { nameMap[info.Name] = info; } }
public virtual int getSyscallByNid(int nid, string moduleName) { NIDInfo info = getNIDInfoByNid(moduleName, nid); if (info == null || !info.hasSyscall()) { return(-1); } if (!string.ReferenceEquals(moduleName, null) && !info.isFromModule(moduleName)) { Console.WriteLine(string.Format("Trying to resolve {0} from module '{1}'", info, moduleName)); } return(info.Syscall); }