问题标签 [disassembly]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
2990 浏览

delphi - Delphi:如何获取事件变量的地址?

如何获取保存事件处理程序的变量的地址?

例如

我想要私有成员、事件处理程序、变量的地址。FOnChange


为什么?

我试图找出谁在FOnChange用垃圾覆盖我的处理程序变量。

我正在逐步执行代码:

没有分配任何事件处理程序,并且有一段时间FOnChange变量nil位于观察窗口中:

但后来FOnChange变量变成了垃圾:

所以我想FOnChange在 CPU 窗口的数据窗格中观察变量,以便我可以从以下位置观察它:

除了我不知道的地址FOnChange; 我刚编的$410018

如何找到事件变量的地址?


我尝试过的事情

观察名单

Alt+F5

  • 改变: OnChange: TNotifyEvent $253B588
  • FOnChange:检查“FOnChange”时出错:表达式错误
  • Self.FOnChange:检查“Self.FOnChange”时出错:表达式错误
  • @OnChange@OnChange: Pointer $253B588
  • @@OnChange:检查“@@OnChange”时出错:表达式错误
  • @FOnChange@FOnChange: Pointer $253B588
  • @@FOnChange@@FOnChange: ^Untyped (no address) 数据: @@FOnChange $253B588`

共识似乎正在解决0x253B588

然而,当我运行一些示例代码时:

这变成:

难怪我找不到地址FOnChange,是两个地址!

0 投票
3 回答
516 浏览

assembly - x86 反编译的资源

我想深入了解表示和运行程序的低级过程。我决定通过编写一个程序来解析和显示目标文件信息(标题、节等)来做到这一点。我几乎完成了这部分。一个自然的扩展是将剩余的相关数据反编译成汇编指令。最初,我将专注于 x86。

我在哪里可以找到与此反编译(二进制 -> ASM)相关的资源?我读过 x86 与 ASM 有一对一的对应关系,尽管我不知道从中提取翻译表的最佳参考。

此外,当我这样做时,我会对跟踪任何提供的调试信息感兴趣。是否有关于用于此信息的格式的任何参考(假设 ELF 和 GCC 带有 -g 选项)?

你们有什么一般性的建议吗?这里的目标是一个动手项目,以增加我的理解。

0 投票
2 回答
892 浏览

vb.net - 将某些程序集转换为 VB.NET - SHR 运算符的工作方式不同?

好吧,这里有个简单的问题

我正在研究一些汇编,并将一些汇编例程转换回 VB.NET

现在,在汇编中,我遇到了一个特定的代码行,假设如下:

然后执行以下行

这给了我以下信息:

现在,在 VB.NET 中,我执行以下操作

哪个应该给我相同的......但它有一点不同,而不是值 0F0D0408 我得到 FF0D0408

那么这里发生了什么?

0 投票
2 回答
1422 浏览

assembly - 反汇编的 gcc 输出似乎执行“调用 0”而不是“调用函数偏移量”,但工作正常

我刚刚看了一下从这个 C 程序中得到的一个非常简单的 SPARC 汇编输出:

部分.text的反汇编:

我不明白为什么“呼叫”指令说:

为什么不是:

该程序运行良好,但是,这个输出对我来说没有太大意义。有什么建议为什么要以这种方式处理?

谢谢

0 投票
1 回答
387 浏览

assembly - 反汇编PDP-8程序

这是一个 PDP-8 计划。任何人都可以拆卸它。

我想知道这段代码到底在做什么。

PS:这不是作业。我刚刚在视频中找到了这段代码。对此没有任何解释。

0 投票
4 回答
54284 浏览

.net - 如何比较两个 dll 的内容?

我想将一个安装的几个 dll 与我正在使用的应用程序的另一个安装的几个 dll 进行比较。我需要确保它们完全相同。如何比较两个 dll 以确保它们具有完全相同的方法、属性、版本等?

我已经开始使用 RedGate .Net Reflector,但任务变得乏味,所以我想我会试一试,看看是否有其他人以前遇到过我的情况并有一个快速的解决方案。

谢谢!

0 投票
1 回答
427 浏览

mips - 寻找一种定义反编译器规则的好方法,需要建议

我正在为 MIPS 架构开发一个非常简单的反编译器,随着我的进步,我必须为代码分析定义许多规则,例如“如果这个操作码是lui并且下一个操作码是addiu然后返回var = value ”或“如果这个操作码是bne,它指的是当前地址之前的地址 - 创建循环解析树中的定义”。问题 - 有很多这样的规则,我找不到定义它们的好方法。我尝试为每个规则编写单独的函数,定义好的 OOP 基础逻辑类并将它们扩展以创建规则,甚至尝试在 disasmed 代码上使用正则表达式(令我惊讶的是,这比预期的效果更好)但无论我尝试了什么,我的代码很快变得很大并且很难阅读,无论我尝试记录和构建的效果如何它。

这让我得出结论,我试图通过使用错误的工具来解决这个任务(更不用说对于如此复杂的任务来说太愚蠢了:)),但我不知道我应该尝试什么。目前我有两个未经测试的想法,一个是使用某种 DSL(我完全没有这方面的经验,所以我可能完全错了),另一个是编写某种类似于二进制正则表达式的工具来进行操作码匹配。

我希望有人能指出我正确的方向,谢谢。

0 投票
1 回答
214 浏览

visual-studio-2010 - 从已编译的 DLL 查看 XAML

我正在尝试开发一个 Visual Studio 2010 扩展,如果我能看到 Visual Studio XAML 的样子会容易得多。我使用了 Reflector 和 BAML 反汇编程序,但这似乎并没有给我想要的东西。我正在寻找的 XAML 文件的 URI 是:

Microsoft.VisualStudio.Shell.UI.Internal;component/mainwindow/mainwindow.xaml

找到它的 DLL 是Microsoft.VisualStudio.Shell.UI.Internal.dll. 这是否意味着应该有该名称的资源?我在Reflector中根本看不到一个。

0 投票
2 回答
1716 浏览

windows - 如何将 EXE 中的文件偏移量映射到其 PE 部分

我打开了一个我用 ImageHlp.dll 编写的程序来玩弄它,我注意到文件中似乎有很大的空白。据我了解,对于每个 PE 部分,部分标题将其在文件中的偏移量为PhysicalAddress,其大小为SizeOfRawData,因此从PhysicalAddress到的所有内容都PhysicalAddress + SizeOfRawData应该是该部分。但是这些范围没有涵盖大量的 EXE 文件,所以我一定遗漏了一些东西。

我知道我可以使用 ImageRVAToSection 并给它一个 RVA 地址来找出 RVA 位于哪个部分。有没有办法对文件偏移量做类似的事情?如何找出 $ED178 或任何属于哪个 PE 节字节?

0 投票
5 回答
3016 浏览

.net - 如何查看优化后的 .NET 代码的反汇编?

出于某种原因,我有时发现查看函数的优化编译器输出很有用或很有趣。

对于非托管 C/C++ 代码,我最喜欢的执行此操作的方法是在发布模式下编译,在感兴趣的函数中设置断点,运行,并在遇到断点时在 Visual Studio 中查看反汇编。

我最近在一个 C# 项目中进行了尝试,发现该技术不起作用。即使在Release模式下,我看到的反汇编显然也没有优化。我找到并禁用了(在 Visual Studio 2010 中)“调试...选项和设置...调试...常规...在模块加载时抑制 JIT 优化”选项,这大概让我更接近我想要的,只是现在当我尝试运行它时它会警告我,然后我无法让它在断点处停止,以便我可以看到反汇编。

那么,如果我想查看函数的 CLR (4.0) 抖动的反汇编、优化输出,那么最好的方法是什么?需要明确的是,我希望看到 x86(或者最好是 x86_64)反汇编,而不仅仅是 IL 反汇编(您可以在 Reflector 中看到)。