会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
···
46
下一页
2025年6月16日
记一次 .NET 某SaaS版CRM系统 崩溃分析
摘要: 一:背景 1. 讲故事 调试训练营里的一位学员前些天找到我,说他们跑在k8s中的程序崩掉了不知道怎么回事?日志也没有记录到,让我帮他看看,dump也抓到了,既然抓到了那就看看吧。 二:程序为什么会崩溃 1. 崩溃原因 linux 上的崩溃分析没有windows上那么方便,但还是可以分析的,先通过 !
阅读全文
posted @ 2025-06-16 13:32 一线码农
阅读(1045)
评论(1)
推荐(7)
2025年6月12日
聊一聊 Linux 上对函数进行 hook 的两种方式
摘要: 一:背景 1. 讲故事 前两篇我们介绍了 Minhook 在 Windows 平台上的强大功效,这一篇我们来聊一聊如何在 Linux 上对函数进行hook,这里介绍两种方式。 轻量级的 LD_PRELOAD 拦截 LD_PRELOAD是一种共享库拦截,这种方式的优点在于不需要对源程序做任何修改,达到
阅读全文
posted @ 2025-06-12 11:09 一线码农
阅读(897)
评论(3)
推荐(2)
2025年6月10日
MinHook 对.NET底层的 SendMessage 拦截真实案例反思
摘要: 一:背景 1. 讲故事 上一篇我们说到了 minhook 的一个简单使用,这一篇给大家分享一个 minhook 在 dump 分析中的实战,先看下面的线程栈。 0:044> ~~[138c]s win32u!NtUserMessageCall+0x14: 00007ffc`5c891184 c3 r
阅读全文
posted @ 2025-06-10 11:10 一线码农
阅读(568)
评论(2)
推荐(3)
2025年6月9日
MinHook 如何对.NET底层的 Win32函数 进行拦截
摘要: 一:背景 1. 讲故事 在前面的系列中,我们聊过.NET外挂 harmony,他可以对.NET SDK方法进行拦截,这在.NET高级调试领域中非常重要,但这里也有一些遗憾,就是不能对SDK领域之外的函数进行拦截,比如 Win32 函数。。。 这篇我们就来解决这个问题,对,它就是 MinHook,当然
阅读全文
posted @ 2025-06-09 11:37 一线码农
阅读(710)
评论(0)
推荐(9)
2025年6月5日
聊一聊 .NET在Linux下的IO多路复用select和epoll
摘要: 一:背景 1. 讲故事 在windows平台上,相信很多人都知道.NET异步机制是借助了Windows自带的 IO完成端口 实现的异步交互,那在 Linux 下.NET 又是怎么玩的呢?主要还是传统的 select,poll,epoll 的IO多路复用,在 coreclr源代码中我们都能找到它们的影
阅读全文
posted @ 2025-06-05 11:21 一线码农
阅读(400)
评论(0)
推荐(6)
2025年5月28日
聊一聊 C# NativeAOT 多平台下的函数导出
摘要: 一:背景 1. 讲故事 昨晚训练营里有一位朋友提到一个问题,说 C# AOT程序能否编译为一个dll,供其他语言调用,其实这个是完全没有问题的,也确实我的的文章体系中没有涉及到这块,那今天就补充完整吧。 二:NativeAOT 函数导出 1. 简单的案例 在 C 中我相信很多人都知道用 dllexp
阅读全文
posted @ 2025-05-28 11:05 一线码农
阅读(1576)
评论(3)
推荐(16)
2025年5月27日
聊一聊 .NET Dump 中的 Linux信号机制
摘要: 一:背景 1. 讲故事 当 .NET程序 在Linux上崩溃时,我们可以配置一些参考拿到对应程序的core文件,拿到core文件后用windbg打开,往往会看到这样的一句信息 Signal SIGABRT code SI_USER (Sent by kill, sigsend, raise),参考如
阅读全文
posted @ 2025-05-27 11:38 一线码农
阅读(463)
评论(0)
推荐(2)
2025年5月24日
.NET外挂系列:8. harmony 的IL编织 Transpiler
摘要: 一:背景 1. 讲故事 前面文章所介绍的一些注入技术都是以方法为原子单位,但在一些罕见的场合中,这种方法粒度又太大了,能不能以语句为单位,那这个就是我们这篇介绍的 Transpiler,它可以修改方法的 IL 代码,甚至重构,所以这就非常考验你的 IL 功底,个人建议在写的时候要多借助如下三个工具:
阅读全文
posted @ 2025-05-24 14:01 一线码农
阅读(425)
评论(0)
推荐(5)
2025年5月23日
.NET外挂系列:7. harmony在高级调试中的一些实战案例
摘要: 一:背景 1. 讲故事 如果你读完前六篇,我相信你对 harmony 的简单使用应该是没什么问题了,现在你处于手拿锤子看谁都是钉子的情况,那这篇我就找高级调试里非常经典的 3个钉子 让大家捶一锤。 二:三大故障案例 1. ConcurrentBag 大集合问题 在高级调试中经常会遇到一类问题就是托管
阅读全文
posted @ 2025-05-23 16:32 一线码农
阅读(379)
评论(0)
推荐(1)
.NET外挂系列:6. harmony中一些实用的反射工具包
摘要: 一:背景 1. 讲故事 本来想研究一下 IL编织和反向补丁的相关harmony知识,看了下其实这些东西对 .NET高级调试 没什么帮助,所以本篇就来说一些比较实用的反射工具包吧。 二:反射工具包 1. AccessTools AccessTools这个工具包用来简化反射操作,你如果看过 harmon
阅读全文
posted @ 2025-05-23 09:26 一线码农
阅读(636)
评论(1)
推荐(2)
2025年5月21日
.NET外挂系列:5. harmony 中补丁参数的有趣玩法(下)
摘要: 一:背景 1. 讲故事 开局一张表,故事全靠编,为了能够承上启下,先把参数列表放出来。 参数名 说明 __instance 访问非静态方法的实例(类似 this)。 __result 获取/修改返回值,要想修改用 ref。 __resultRef 修改返回引用(方法返回是 ref 返回 )。 __s
阅读全文
posted @ 2025-05-21 22:19 一线码农
阅读(515)
评论(0)
推荐(2)
.NET外挂系列:4. harmony 中补丁参数的有趣玩法(上)
摘要: 一:背景 1. 讲故事 前面几篇我们说完了 harmony 的几个注入点,这篇我们聚焦注入点可接收的几类参数的解读,非常有意思,在.NET高级调试 视角下也是非常重要的,到底是哪些参数,用一张表格整理如下: 参数名 说明 __instance 访问非静态方法的实例(类似 this)。 __resul
阅读全文
posted @ 2025-05-21 10:01 一线码农
阅读(555)
评论(2)
推荐(3)
2025年5月20日
.NET外挂系列:3. 了解 harmony 中灵活的纯手工注入方式
摘要: 一:背景 1. 讲故事 上一篇我们讲到了 注解特性,harmony 在内部提供了 20个 HarmonyPatch 重载方法尽可能的让大家满足业务开发,那时候我也说了,特性虽然简单粗暴,但只能解决 95% 的问题,言外之意还有一些事情做不到,所以剩下的 5% 只能靠 完全手工 的方式了。 二:注解特
阅读全文
posted @ 2025-05-20 11:41 一线码农
阅读(546)
评论(0)
推荐(3)
2025年5月19日
.NET外挂系列:2. 了解强大的 harmony 注解特性
摘要: 一:背景 1. 讲故事 上一篇我们简单的聊了下harmony外挂的基本玩法,让大家宏观上感受到了外挂在 .NET高级调试 领域的威力,这一篇我们从 注解特性 这个角度继续展开。 二:harmony 注解特性 1. HarmonyPatch 解读 在harmony支持的众多特性中,HarmonyPat
阅读全文
posted @ 2025-05-19 10:19 一线码农
阅读(1026)
评论(0)
推荐(5)
2025年5月18日
.NET外挂系列:1. harmony 基本原理和骨架分析
摘要: 一:背景 1. 讲故事 为什么要开这么一个系列,是因为他可以对 .NET SDK 中的方法进行外挂,这种技术对解决程序的一些疑难杂症特别有用,在.NET高级调试 领域下大显神威,在我的训练营里也是花了一些篇幅来说这个,今天我准备用10篇左右来详细聊一聊,供学员和同行们欣赏,详细的文档参考:https
阅读全文
posted @ 2025-05-18 15:42 一线码农
阅读(1759)
评论(6)
推荐(8)
上一页
1
2
3
4
5
6
7
···
46
下一页
公告