问题标签 [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 投票
4 回答
6965 浏览

windows-mobile - ARMV4i (Windows Mobile 6) 本机代码反汇编程序

有人知道ARMV4i可执行文件和 DLL 的反汇编程序吗?

我有一个插件 DLL,我正在编写一个非常罕见data abort(<5% 的时间)的插件 DLL,我已将其缩小到一个特定的函数(通过 dumpbin 和由data abort. 但是,它是一个相当大的功能,我想将其缩小一点。我知道这是在一个memset()调用中发生的,但是那个特定的函数有大约 35 个,所以我希望通过查看反汇编,我可以找出问题到底出在哪里。

0 投票
7 回答
275 浏览

optimization - 重构反汇编代码

您编写了一个函数,然后查看生成的程序集,您会发现它可以改进。

为了便于阅读,您想保留您编写的函数,但您想用自己的程序集替换编译器的程序集。有什么方法可以在您的高级语言功能和新程序集之间建立关系?

0 投票
2 回答
5412 浏览

assembly - 如何开始对 z80 机器代码进行逆向工程?

我有一个 .z80 内存转储。我如何对其进行逆向工程?我需要知道什么?我怎样才能最大限度地减少体力劳动?

0 投票
2 回答
947 浏览

.net - 如何使用反射器将整个程序集转储到源文件?

有没有办法使用反射器将整个程序集源转储到文件中?

0 投票
9 回答
8432 浏览

.net - 有没有办法防止 Reflector 能够反映我的源代码?

有没有办法(可靠的,最好不是商业的)防止 Reflector 反映我的源代码???

谢谢,阿迪

0 投票
1 回答
533 浏览

windows - x86:当一个特定的指向字符串的指针被压入堆栈时可能调试中断?

我正在调试一个我没有源代码的第三方 DLL。此 DLL 维护一个字符串池。我想捕获这些字符串之一被传递给函数的最早出现......任何函数......

换句话说,我想检测具有某种格式的指向空终止字符串的指针何时被任何人推入堆栈......并且我想在发生这种情况时执行调试中断。

我知道您可以设置一个“访问中断”断点,该断点将在 CPU 读取/写入/执行特定地址时触发。我想要的是类似于这样:对于每个压入堆栈的字符串,我想针对某种格式对其进行测试,如果匹配,则执行中断。

使用 WinDbg、OllyDb、VS2008 等等……有什么想法吗?

谢谢!

0 投票
1 回答
671 浏览

visual-studio-2005 - Visual Studio 2005 中的函数指针不正确,代码从 1 字节偏移开始

有问题的代码挂接到 explorer.exe,但在进入回调函数时崩溃:

调用栈:

Visual Studio 2005 给出了以下反汇编:

而0x548B0CC4周围的内存都是?????? 所以它不是映射内存,因此崩溃。

myCallWndProcRetCallback 开头的机器代码是这样的:

但 Visual Studio 有时也会为此函数提供以下反汇编:

这看起来像是正确的反汇编,但它比上面的反汇编晚 1 个字节!您可以看到从 0x60055B58 开始的指令是相同的。

因此,看起来链接器说函数位于 0x60055B50,但代码实际上从 0x60055B51 开始。我已经确认前者是设置到 Windows 挂钩中的回调。因此,当 Windows 回调函数时,它会执行错误的代码。

我的问题是链接器怎么会出错?我进行了重建,问题消失了,这似乎是随机的。当时 /FORCE:MULTIPLE 链接器选项有效,但如果没有它,则不会报告此回调的链接错误。

后期添加:这可能与 DLL 的重定位或变基有关吗?如果重定位偏移了 1 个字节,这可能会导致问题吗?

0 投票
3 回答
1473 浏览

visual-studio - VS反汇编窗口是否显示整个EXE?

一个客户正在运行我公司的程序,它在到达任何地方之前就停止了。他们从 Windows 事件日志中发送了这些信息:

我们没有太多其他工作要做,所以作为最后的努力,我一直试图看看我是否能找到反汇编程序中的那个位置。我通过 Visual Studio 运行程序,暂停它,查看反汇编窗口并尝试滚动到该地址,但我得到的只是:

这是因为 Visual Studio 只在暂停位置附近反汇编了部分 EXE 吗?我很难看清实际拆解了多少,因为滚动条不能完全工作。(我无法抓取和移动滚动位置;我必须逐行或逐页滚动。)

感谢您提供的任何见解!

0 投票
11 回答
569 浏览

.net - 事实核查:.NET 应用程序对反编译有多脆弱?

我在 MSMobiles.com 博客上看到了这篇文章,其中包含以下内容

.Net 在很多方面都很棒,但对于商业应用程序?没门!任何人都可以查看您的源代码。一个高端的混淆器会有很大帮助,但任何坚定的黑客都会在不到一天的时间内修复你的代码。尽管在反盗版和混淆工具上花费了 1000 美元,但我从悲惨的经历中了解到这一点。

然后它说以下关于在 .NET 中开发商业 Windows Mobile 应用程序的内容:

准备好 1 天的延迟,之后您的竞争对手将复制您的功能并在 Skymarket 中放置具有相同功能的自己的应用程序

对于那些熟悉 .NET 的人:这是真的还是胡说八道?这个问题是 Windows Mobile 特有的,还是也适用于 Windows 上的 .NET?这让我感到惊讶,因为我知道微软用 .NET 编写了大量自己的客户端软件(而且许多供应商用 Java 编写昂贵的应用程序,显然也有同样的问题),而且他们的IP很容易被盗。

0 投票
6 回答
39551 浏览

.net - 比较.dll和反汇编差异的工具?

有谁知道一个像样的工具,可以比较同一个 dll 的两个不同版本并提取差异?

谢谢