反汇编托管代码问题

2023-12-07

我正在使用 Windbg 来反汇编托管代码(用 C# 编写,控制台应用程序)!U来自 sos.dll 的命令。我在使用时发现!U要反汇编托管函数,反汇编的 IL 代码仅包含我所做的函数调用,其余部分(非函数调用 C# 代码),例如a=a*2, and foreach在 C# 中循环,仅显示本机汇编语言代码,这是正确的预期行为吗?

我的问题是,我想知道 !U 是否能够将托管代码二进制 DLL 与所有代码(除了函数调用代码)反汇编为 IL?

提前致谢, 乔治


如果你想在调试时转储 IL,你可以使用!dumpil来自 SOS 的命令。它接受 MethodDesc 指针作为输入,因此您必须首先获取该指针。

获取 MethodDesc 指针的一种方法是使用!name2ee命令。

例如,如果你有一个方法Foo在类型中Bar(装配中ClassLibrary1) use !name2ee像这样

0:000> !name2ee ClassLibrary1!ClassLibrary1.Bar.Foo
Module: 001630bc (ClassLibrary1.dll)
Token: 0x06000001
MethodDesc: 00163450  <=== HERE
Name: ClassLibrary1.Bar.Foo()
JITTED Code Address: 007500f0

之后,您可以执行!dumpil 00163450转储方法的 ILFoo像这样

0:000> !dumpil 00163450
ilAddr = 73532050
IL_0000: ldstr "Foo"
IL_0005: call System.Console::WriteLine
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

反汇编托管代码问题 的相关文章

  • 将数组向左或向右旋转一定数量的位置,复杂度为 o(n)

    我想编写一个程序 根据用户的输入 正 gt 负 include
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • WPF TabControl,用C#代码更改TabItem的背景颜色

    嗨 我认为这是一个初学者的问题 我搜索了所有相关问题 但所有这些都由 xaml 回答 但是 我需要的是后台代码 我有一个 TabControl 我需要设置其项目的背景颜色 我需要在选择 取消选择和悬停时为项目设置不同的颜色 非常感谢你的帮助
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • 有没有办法禁用 .NET 标签的“双击复制”功能?

    这真的很烦人 我使用标签作为列表项用户控件的一部分 用户可以单击它来选择列表项 然后双击它来重命名它 但是 如果剪贴板中有名称 双击标签会将其替换为标签文本 我还检查了应用程序中的其他标签 双击它们也会将其复制到剪贴板 我没有在这个程序中编
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • 为什么我收到“找不到编译动态表达式所需的一种或多种类型。”?

    我有一个已更新的项目 NET 3 5 MVC v2 到 NET 4 0 MVC v3 当我尝试使用或设置时编译出现错误 ViewBag Title财产 找不到编译动态表达式所需的一种或多种类型 您是否缺少对 Microsoft CSharp
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 使用 libcurl 检查 SFTP 站点上是否存在文件

    我使用 C 和 libcurl 进行 SFTP FTPS 传输 在上传文件之前 我需要检查文件是否存在而不实际下载它 如果该文件不存在 我会遇到以下问题 set up curlhandle for the public private ke

随机推荐

  • 无法隐式转换类型“int”?到 'int' - 在控制器上或在视图页面上

    在执行下面的代码时 我在控制器中收到此错误 无法隐式转换类型 int 到 int 存在显式转换 您是否缺少强制转换 出现错误t TOT QTY在我的控制器中 控制器 dcms from t in db ASN ITEM where t TO
  • 为什么Python随机生成相同的数字?

    我为我的作业写了这段代码 import random score random seed 1 for i in range 0 100 score append random randrange 0 21 for k in range 20
  • 使用 PIL 在 python 中打开并显示 .png 文件

    我需要打开一个 png 图像文件并显示它 我可以使用 PIL 打开该文件 from PIL import Image f Image open file png show 我收到一条错误消息 错误阻止了视频或图像的显示 错误代码 0x800
  • Web API 中的模型状态验证

    我有一个自定义模型验证器来验证并返回自定义验证消息 public void Validate Object instance Perfom validations and thow exceptions if any throw new V
  • Java如何规避Windows MAX_PATH WinAPI限制

    有谁知道Java如何能够绕过Windows MAX PATH限制 使用下面的代码 我能够在 Java 中创建一条非常长的路径 并且能够执行 I O 这在使用 Windows 时如果没有前缀 是不可能的 public static void
  • 迭代数据帧列表以删除特定行 Pandas

    在我之前的问题中我要求删除 Pandas 中的特定行 在帮助下 我删除了 1980 年之前的行 季节 列 包含年份 采用以下格式 2018 19 2017 18 This list would go till 1960 在之前的问题 链接
  • 在 jQuery 中获取列表元素内容的数组

    我有这样的结构 ul li text1 li li text2 li li text3 li ul 如何使用 javascript 或 jQuery 将文本获取为数组 text1 text2 text3 我之后的计划是将其组装成一个字符串
  • Elasticsearch/Nest - 将 MatchPhrase 与 OnFieldsWithBoost 结合使用

    在我今天的代码中 我正在进行这样的搜索 Query q gt q QueryString qs gt qs Query searchQuery OnFieldsWithBoost f gt f Add b gt b MetaTitle 5
  • Python/Pandas:如何读取 cp1252 中的 csv 并删除第一行?

    解决方案 查看答案 它不是以 CP1252 编码 而是以 UTF 16 编码 解决方案代码是 import pandas as pd df pd read csv my file csv sep t header 1 encoding ut
  • 选择预填充值时触发 Jquery 文本更改

    我正在将名字复制到姓氏字段中 这对于页面上的新名称非常有效 但是 输入几个名称后 浏览器会显示名称的历史记录 如果有任何预填充的名称或选择的旧名称 则不会触发此功能 如何将姓氏更新为名字已更改为的内容 document ready func
  • 如何在 Javascript 中过滤对象数组

    我正在尝试在 Javascript 中创建一个函数 这将允许我过滤不同候选人拥有的技能 我被告知这可以在 Javascript 中完成 名为 filterCandidateBySkill 的函数是我想要过滤候选人的地方技能 但我看过这个 并
  • qt 类中的服务器线程(需要互斥锁?)

    我制作了这个服务器类 它在新连接到来时启动一个线程 它在某些情况下工作正常 但不是很稳定 我正在尝试解决它的问题 我的调试器告诉我一些有关 qmutex 的信息 如果有人能发现问题 蒂 它通过信号和槽与父级连接并获取数据 这是标题 ifnd
  • 使用自定义字体在标签中绘制文本时参数无效

    我有带有自定义字体和计时器的标签 它们会更改标签中的值 我的应用程序开始最小化 当我显示应用程序时 有时会显示异常 并且标签中的文本不是红十字 在这里我尝试调用异步方法来更改标签文本 private void timer1 Tick obj
  • 使用 Cython 中的 Scipy cython_blas 接口不适用于向量 Mx1 1xN

    这必须处理类似的问题 使用 SciPy 接口和 Cython 直接调用 BLAS LAPACK但有所不同 因为我在这里使用 SciPy 示例中的实际代码 test dgemm https github com scipy scipy blo
  • 如何集成基于 angularjs 和 java jaas 的身份验证?

    我有一个 web 应用程序 前端有 angularJS 后端有 Java Angular 通过 Restful Web 服务与 Java 后端进行通信 通过 HTTP 消费和发送 JSON 我需要为此应用程序构建身份验证机制 并且想知道最好
  • 如何将谓词构建器与 linq2sql 和 OR 运算符一起使用

    我有两个表 TABLE1 TABLE2 我知道是唯一的 它们分别具有一对多关系 并且两个表的 ID 列之间都有外键 Using linq2sql我正在尝试选择所有TABLE1条目使得它们对应的TABLE2value 在我传递的列表中至少包含
  • 64 位随机种子

    随着 iPhone 5S 更新 我希望我的应用程序能够支持新的 64 位处理器 但是 如果将较大的数据类型转换为较小的数据类型 如将 long 转换为 int 的情况 则使用 64 位可能会导致截断 大多数时候 只需使用更大的数据类型就可以
  • 设置较长时间(即多分钟)的计时器

    我想将 firebase auth 与 React Native 结合使用Login and Signup但我收到一个黄色错误 在 Android 上设置较长时间 即多分钟 的计时器是一个性能和正确性问题 因为它会使计时器模块保持唤醒状态
  • 使背景位置可变

    我正在使用这段代码 document getElementById a1 style backgroundPosition 0px 0px 它工作得很好 但是有没有办法用 javascript 来制作定位变量 像这样 document ge
  • 反汇编托管代码问题

    我正在使用 Windbg 来反汇编托管代码 用 C 编写 控制台应用程序 U来自 sos dll 的命令 我在使用时发现 U要反汇编托管函数 反汇编的 IL 代码仅包含我所做的函数调用 其余部分 非函数调用 C 代码 例如a a 2 and