public void Install() { if (isHooked) { return; } HookerPool.AddHooker(_targetMethod, this); InitProxyBuff(); BackupHeader(); PatchTargetMethod(); PatchProxyMethod(); isHooked = true; }
public void Uninstall() { if (!isHooked) { return; } byte *pTarget = (byte *)_targetPtr.ToPointer(); for (int i = 0; i < _proxyBuff.Length; i++) { *pTarget++ = _proxyBuff[i]; } isHooked = false; HookerPool.RemoveHooker(_targetMethod); }
public void Install() { if (LDasm.IsiOS()) // iOS 不支持修改 code 所在区域 page { return; } if (isHooked) { return; } HookerPool.AddHooker(_targetMethod, this); InitProxyBuff(); BackupHeader(); PatchTargetMethod(); PatchProxyMethod(); isHooked = true; }