如何掌握.NET API拦截技法的长尾关键词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4303个文字,预计阅读时间需要18分钟。
亲爱的,我是沙漏尽头的狼。以下问题,请在文中寻找答案,并在评论区回答:什么API可以截断?一个方法被很多地方调用,如何在不修改这个方法源代码的情况下,记录这个方法的使用情况?
大家好,我是沙漠尽头的狼。
本文先抛出以下问题,请在文中寻找答案,可在评论区回答:
- 什么是API拦截?
- 一个方法被很多地方调用,怎么在不修改这个方法源码情况下,记录这个方法调用的前后时间?
- 同2,不修改源码的情况下,怎么对方法的参数进行校正(篡改)?
- 同3,不修改源码的情况下,怎么对方法的返回值进行伪造? ...
1. 前言
前言翻译自一个国外的文章,他写的更容易让人理解 - Hacking .NET – rewriting code you don’t control:
您是否曾经遇到过不属于您但想要更改其行为的类库方法?通常,该方法是非公开的,并且没有很好的方法来覆盖其行为。你可以看到它是如何工作的(因为你很棒,并且使用像Resharper、dnSpy之类反编译工具,对吧?),你只是无法改变它。你真的需要改变它,因为XXX原因。
有几个选项可供您使用:
-
通过反编译或下载源代码(如果首先可用)获取源代码。这通常很冒险,因为它经常伴随着复杂的构建过程,许多依赖项,现在你负责维护库的整个分支,即使你只想做一个很小的改变。
-
使用
ILDasm反编译应用,直接修补IL代码,然后使用ILAs将其组装回来。在许多方面,这更好,因为您可以创建一个战略性的手术切口,而不是全面的“从头开始”的方法。
本文共计4303个文字,预计阅读时间需要18分钟。
亲爱的,我是沙漏尽头的狼。以下问题,请在文中寻找答案,并在评论区回答:什么API可以截断?一个方法被很多地方调用,如何在不修改这个方法源代码的情况下,记录这个方法的使用情况?
大家好,我是沙漠尽头的狼。
本文先抛出以下问题,请在文中寻找答案,可在评论区回答:
- 什么是API拦截?
- 一个方法被很多地方调用,怎么在不修改这个方法源码情况下,记录这个方法调用的前后时间?
- 同2,不修改源码的情况下,怎么对方法的参数进行校正(篡改)?
- 同3,不修改源码的情况下,怎么对方法的返回值进行伪造? ...
1. 前言
前言翻译自一个国外的文章,他写的更容易让人理解 - Hacking .NET – rewriting code you don’t control:
您是否曾经遇到过不属于您但想要更改其行为的类库方法?通常,该方法是非公开的,并且没有很好的方法来覆盖其行为。你可以看到它是如何工作的(因为你很棒,并且使用像Resharper、dnSpy之类反编译工具,对吧?),你只是无法改变它。你真的需要改变它,因为XXX原因。
有几个选项可供您使用:
-
通过反编译或下载源代码(如果首先可用)获取源代码。这通常很冒险,因为它经常伴随着复杂的构建过程,许多依赖项,现在你负责维护库的整个分支,即使你只想做一个很小的改变。
-
使用
ILDasm反编译应用,直接修补IL代码,然后使用ILAs将其组装回来。在许多方面,这更好,因为您可以创建一个战略性的手术切口,而不是全面的“从头开始”的方法。

