public unsafe DecrypterV2_0_13_0_Base(DynamicMethodsDecrypter dmd) { this.dmd = dmd; invoker = (Delegate)dmd.invokerFieldInfo.GetValue(null); byte* p = (byte*)DecrypterBaseV2_0_12_x.GetStateAddr(invoker.Target); byte* pis = GetAddr(*(byte**)p); p = *(byte**)pis; byte* pam = *(byte**)(p + IntPtr.Size * 2); p = *(byte**)(p + ((Environment.Version.Major - 2) / 2 * IntPtr.Size)); p += IntPtr.Size * 8 + 0x18; p = LookUp(p, AppDomain.CurrentDomain.Id); p = *(byte**)(p + IntPtr.Size * 16 + 0x18); byte* pd = p + IntPtr.Size * 2; p = *(byte**)(p + IntPtr.Size * 13); getCallerMethodAsILByteArrayDelegate = GetCallerMethodAsILByteArray; decryptCallbackDelegate = DecryptCallback; ignoreDelegate = IgnoreMethod; byte* pm = p + 0x28 * IntPtr.Size; *(IntPtr*)(p + 0x29 * IntPtr.Size) = Marshal.GetFunctionPointerForDelegate(getCallerMethodAsILByteArrayDelegate); *(IntPtr*)(p + 0x2A * IntPtr.Size) = Marshal.GetFunctionPointerForDelegate(decryptCallbackDelegate); if (IntPtr.Size == 4) *(IntPtr*)(p + 0x2B * IntPtr.Size) = Marshal.GetFunctionPointerForDelegate(ignoreDelegate); InitCode(GetModuleHandle(pis), pam, pd, pm); }
public IExperimentOptionsBuilder <T, TPublish> Ignore(IgnoreDelegate <T> ignoreIf) { if (ignoreIf == null) { throw new ArgumentNullException("ignoreIf"); } steps.Ignore = ignoreIf; return(this); }
public void Ignore(Mock <ISciencePublisher> publisher, Mock <IScienceExperiment <string, string> > experiment, string ctrlResult, Mock <IExperimentSteps <string, string> > steps) { //Setup publisher.SetupAllProperties(); experiment.SetupAllProperties(); steps.SetupAllProperties(); experiment.SetupGet(x => x.Steps).Returns(steps.Object); Func <string> control = () => ctrlResult; IgnoreDelegate <string> ignore = (ctrl, cand) => ctrl == cand; //Exercise var sut = new Laboratory(publisher.Object, true); sut.CreateExperiment(experiment.Object) .Control(control) .Ignore(ignore); //Verify steps.VerifySet(x => x.Ignore = ignore, Times.Once); }
public unsafe DecrypterV2_0_13_0_Base(DynamicMethodsDecrypter dmd) { this.dmd = dmd; this.invoker = (Delegate)dmd.invokerFieldInfo.GetValue(null); byte* p = (byte*)DecrypterBaseV2_0_12_x.GetStateAddr(invoker.Target); byte* pis = GetAddr(*(byte**)p); p = *(byte**)pis; byte* pam = *(byte**)(p + IntPtr.Size * 2); p = *(byte**)(p + ((Environment.Version.Major - 2) / 2 * IntPtr.Size)); p += IntPtr.Size * 8 + 0x18; p = LookUp(p, AppDomain.CurrentDomain.Id); p = *(byte**)(p + IntPtr.Size * 16 + 0x18); byte* pd = p + IntPtr.Size * 2; p = *(byte**)(p + IntPtr.Size * 13); getCallerMethodAsILByteArrayDelegate = GetCallerMethodAsILByteArray; decryptCallbackDelegate = DecryptCallback; ignoreDelegate = IgnoreMethod; byte* pm = p + 0x28 * IntPtr.Size; *(IntPtr*)(p + 0x29 * IntPtr.Size) = Marshal.GetFunctionPointerForDelegate(getCallerMethodAsILByteArrayDelegate); *(IntPtr*)(p + 0x2A * IntPtr.Size) = Marshal.GetFunctionPointerForDelegate(decryptCallbackDelegate); if (IntPtr.Size == 4) *(IntPtr*)(p + 0x2B * IntPtr.Size) = Marshal.GetFunctionPointerForDelegate(ignoreDelegate); InitCode(GetModuleHandle(pis), pam, pd, pm); }