上一页 1 2 3 4 5 6 7 8 ··· 46 下一页
摘要: 一:背景 1. 讲故事 当 .NET程序 在Linux上崩溃时,我们可以配置一些参考拿到对应程序的core文件,拿到core文件后用windbg打开,往往会看到这样的一句信息 Signal SIGABRT code SI_USER (Sent by kill, sigsend, raise),参考如 阅读全文
posted @ 2025-05-27 11:38 一线码农 阅读(481) 评论(0) 推荐(2)
摘要: 一:背景 1. 讲故事 前面文章所介绍的一些注入技术都是以方法为原子单位,但在一些罕见的场合中,这种方法粒度又太大了,能不能以语句为单位,那这个就是我们这篇介绍的 Transpiler,它可以修改方法的 IL 代码,甚至重构,所以这就非常考验你的 IL 功底,个人建议在写的时候要多借助如下三个工具: 阅读全文
posted @ 2025-05-24 14:01 一线码农 阅读(469) 评论(0) 推荐(5)
摘要: 一:背景 1. 讲故事 如果你读完前六篇,我相信你对 harmony 的简单使用应该是没什么问题了,现在你处于手拿锤子看谁都是钉子的情况,那这篇我就找高级调试里非常经典的 3个钉子 让大家捶一锤。 二:三大故障案例 1. ConcurrentBag 大集合问题 在高级调试中经常会遇到一类问题就是托管 阅读全文
posted @ 2025-05-23 16:32 一线码农 阅读(405) 评论(0) 推荐(1)
摘要: 一:背景 1. 讲故事 本来想研究一下 IL编织和反向补丁的相关harmony知识,看了下其实这些东西对 .NET高级调试 没什么帮助,所以本篇就来说一些比较实用的反射工具包吧。 二:反射工具包 1. AccessTools AccessTools这个工具包用来简化反射操作,你如果看过 harmon 阅读全文
posted @ 2025-05-23 09:26 一线码农 阅读(691) 评论(1) 推荐(2)
摘要: 一:背景 1. 讲故事 开局一张表,故事全靠编,为了能够承上启下,先把参数列表放出来。 参数名 说明 __instance 访问非静态方法的实例(类似 this)。 __result 获取/修改返回值,要想修改用 ref。 __resultRef 修改返回引用(方法返回是 ref 返回 )。 __s 阅读全文
posted @ 2025-05-21 22:19 一线码农 阅读(539) 评论(0) 推荐(2)
摘要: 一:背景 1. 讲故事 前面几篇我们说完了 harmony 的几个注入点,这篇我们聚焦注入点可接收的几类参数的解读,非常有意思,在.NET高级调试 视角下也是非常重要的,到底是哪些参数,用一张表格整理如下: 参数名 说明 __instance 访问非静态方法的实例(类似 this)。 __resul 阅读全文
posted @ 2025-05-21 10:01 一线码农 阅读(600) 评论(2) 推荐(3)
摘要: 一:背景 1. 讲故事 上一篇我们讲到了 注解特性,harmony 在内部提供了 20个 HarmonyPatch 重载方法尽可能的让大家满足业务开发,那时候我也说了,特性虽然简单粗暴,但只能解决 95% 的问题,言外之意还有一些事情做不到,所以剩下的 5% 只能靠 完全手工 的方式了。 二:注解特 阅读全文
posted @ 2025-05-20 11:41 一线码农 阅读(588) 评论(0) 推荐(3)
摘要: 一:背景 1. 讲故事 上一篇我们简单的聊了下harmony外挂的基本玩法,让大家宏观上感受到了外挂在 .NET高级调试 领域的威力,这一篇我们从 注解特性 这个角度继续展开。 二:harmony 注解特性 1. HarmonyPatch 解读 在harmony支持的众多特性中,HarmonyPat 阅读全文
posted @ 2025-05-19 10:19 一线码农 阅读(1068) 评论(0) 推荐(5)
摘要: 一:背景 1. 讲故事 为什么要开这么一个系列,是因为他可以对 .NET SDK 中的方法进行外挂,这种技术对解决程序的一些疑难杂症特别有用,在.NET高级调试 领域下大显神威,在我的训练营里也是花了一些篇幅来说这个,今天我准备用10篇左右来详细聊一聊,供学员和同行们欣赏,详细的文档参考:https 阅读全文
posted @ 2025-05-18 15:42 一线码农 阅读(1866) 评论(6) 推荐(8)
摘要: 一:背景 1. 讲故事 前几天训练营里的一位朋友在复习课件的时候,程序一跑就报错,截图如下: 从给出的错误信息看大概是因为json格式无效导致的,在早期的训练营里曾经也有一例这样的报错,最后定位下来是公司的电脑安全软件导致的,一旦有非托管调试器,安全软件就会加密 runtimeconfig.json 阅读全文
posted @ 2025-05-14 13:54 一线码农 阅读(2194) 评论(0) 推荐(10)
摘要: 一:背景 1. 讲故事 这个问题源于给训练营里的一位朋友分析的卡死dump,在分析期间我需要知道某一个异步方法的调用栈,但程序是 .framework 4.8 ,没有sos后续版本独有的 !dumpasync 命令,所以这就比较搞了,但转念一想,既然 !dumpasync 能把调用栈搞出来,按理说我 阅读全文
posted @ 2025-05-11 18:30 一线码农 阅读(1379) 评论(0) 推荐(12)
摘要: 一:背景 1. 讲故事 昨天在分析一个 linux 的 dump 时,看到了这么一话警告,参考如下: 0:000> !eeheap -gc *** WARNING: Unable to verify timestamp for SYSV10cf21d1 (deleted) 对,就是上面的 SYSV1 阅读全文
posted @ 2025-05-10 11:01 一线码农 阅读(338) 评论(0) 推荐(1)
摘要: 一:背景 1. 讲故事 如何跟踪.NET程序的mmap泄露,这个问题困扰了我差不多一年的时间,即使在官方的github库中也找不到切实可行的方案,更多海外大佬只是推荐valgrind这款工具,但这款工具底层原理是利用模拟器,它的地址都是虚拟出来的,你无法对valgrind 监控的程序抓dump,并且 阅读全文
posted @ 2025-05-07 12:13 一线码农 阅读(1057) 评论(1) 推荐(9)
摘要: 一:背景 1. 讲故事 前段时间有位朋友加我微信,来了就要进我的训练营,并且附带着纠结了他几个月的一个疑难杂症,让我帮忙看下怎么回事,问题描述截图如下: 由于这个定时任务是 furion 写的,刚好这位学员是VIP客户,找了小僧大佬,大佬需要最小化的问题代码,由于不能本地复现,也就没下文了,毕竟也是 阅读全文
posted @ 2025-04-23 09:58 一线码农 阅读(902) 评论(0) 推荐(7)
摘要: 一:背景 1. 讲故事 年初有位朋友找到我,说他们的管理系统不响应了,让我帮忙看下到底咋回事? 手上也有dump,那就来分析吧。 二:为什么没有响应 1. 线程池队列有积压吗? 朋友的系统是一个web系统,那web系统的无响应我们首先要关注的就是 线程池,使用 !sos tpq 命令,参考输出如下: 阅读全文
posted @ 2025-04-21 12:39 一线码农 阅读(2685) 评论(5) 推荐(12)
上一页 1 2 3 4 5 6 7 8 ··· 46 下一页