예제 #1
0
        public CallRecord[] ReadNewCallRecords()
        {
            var buffer  = HookedClient.ReadBuffer();
            var modules = ProcessHelper.GetProcessModules(ProcessManager.Process.Id);

            var callRecs = SerializationHelper.ProcessCallRecords(buffer, HookedMethods);

            foreach (var callRec in callRecs)
            {
                foreach (var item in callRec.CallStack)
                {
                    item.Module = modules.FirstOrDefault(x => x.BaseAddr <= item.Address && item.Address < x.EndAddr);
                }
            }

            CallRecords.AddRange(callRecs);
            return(callRecs);
        }
예제 #2
0
 public void UnhookAndWaitForExit()
 {
     HookedClient.TerminateInjectionThread();
     ProcessManager.Process.WaitForExit();
 }