哪些省份的快速网站模板公司最多?
摘要:快速网站模板公司,哪个省份做网站的多,wordpress tdk,浦东新区建设机械网站大家好,我是沙漠尽头的狼。 本文先抛出以下问题,请在文中寻找答案&#xff0c
快速网站模板公司,哪个省份做网站的多,wordpress tdk,浦东新区建设机械网站大家好#xff0c;我是沙漠尽头的狼。
本文先抛出以下问题#xff0c;请在文中寻找答案#xff0c;可在评论区回答#xff1a;
什么是API拦截#xff1f;一个方法被很多地方调用#xff0c;怎么在不修改这个方法源码情况下#xff0c;记录这个方法调用的前后时间…大家好我是沙漠尽头的狼。
本文先抛出以下问题请在文中寻找答案可在评论区回答
什么是API拦截一个方法被很多地方调用怎么在不修改这个方法源码情况下记录这个方法调用的前后时间同2不修改源码的情况下怎么对方法的参数进行校正篡改同3不修改源码的情况下怎么对方法的返回值进行伪造 …
1. 前言
前言翻译自一个国外的文章他写的更容易让人理解 - Hacking .NET – rewriting code you don’t control
您是否曾经遇到过不属于您但想要更改其行为的类库方法通常该方法是非公开的并且没有很好的方法来覆盖其行为。你可以看到它是如何工作的因为你很棒并且使用像Resharper、dnSpy之类反编译工具对吧你只是无法改变它。你真的需要改变它因为XXX原因。
有几个选项可供您使用 通过反编译或下载源代码如果首先可用获取源代码。这通常很冒险因为它经常伴随着复杂的构建过程许多依赖项现在你负责维护库的整个分支即使你只想做一个很小的改变。 使用 ILDasm 反编译应用直接修补 IL 代码然后使用 ILAs 将其组装回来。在许多方面这更好因为您可以创建一个战略性的手术切口而不是全面的“从头开始”的方法。缺点是您必须完全在IL中实现您的方法这是一个不平凡的冒险。
如果您正在处理已签名的库上述两种方法也不起作用。
现在让我们看一下另一种解决方法-内存修补。这与游戏作弊引擎几十年来使用的技术相同这些引擎附加到正在运行的进程查找内存位置并改变其行为。听起来很复杂 实际上在 .NET 中做到这一点比听起来容易得多。我们将使用一个名为Harmony的库该库在NuGet上可通过“Lib.Harmony”包获得。这是一个用于 .NET 的内存修补引擎主要针对使用 Unity 构建的游戏当然不止Unity。
站长将在本文向您展示如何更改您认为不可能的事情 - 从拦截(Hook)自己的库开始到拦截(Hook) WPF库和.NET基础库结束。
2. 拦截(Hook)自己的库
2.1. 准备工作
创建一个控制台程序 HelloHook添加类 Student
namespace HelloHook;public class Student
{public string GetDetails(string name){return $大家好我是Dotnet9网站站长{name};}
}Student类中定义了一个GetDetails方法返回格式化的个人介绍信息这个方法后面拦截试验使用。
Program.cs中添加Student调用
using HelloHook;var student new Student();
Console.WriteLine(student.GetDetails(沙漠尽头的狼));运行程序输出如下
大家好我是Dotnet9网站站长沙漠尽头的狼基本工作准备完成这就是一个简单的控制台程序后文的内容就根据这两个工程展开细说。
