问题标签 [capstone]
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.
c++ - 如何使顶点生成二进制输入的最后一行?
今天我试着从顶点开始。按照他们的示例,我想开始使用该库。不幸的是,capstone 不会生成它反汇编的 asm 指令的最后一行。它只产生一个空行。
代码:
而不是得到
我明白了
打印最后一行的位置,但为空。
有人可以帮我解决这个问题吗?
python - 如何使用 Python 获取 PE 文件的指令?
所以我正在尝试使用 Python 为一个学校项目编写一个基本的反汇编程序。我正在使用 pydasm 和 capstone 库。我不明白的是,我如何才能真正使用 Python 访问程序的汇编指令。这些库允许我反汇编指令,但我不知道如何在 Python 中访问程序的指令。谁能给我一些指导?
谢谢。
edge-detection - 边缘检测限制
我是一名计算机科学本科生,试图为我的顶点项目提出一个主题。我对边缘检测特别感兴趣,但我在提出关于该主题的研究领域时遇到了麻烦。我正在寻找今天面临的某种边缘检测限制。
到目前为止,我的想法如下:
处理噪声图像中的边缘检测——当前的方法是使用高斯平滑,但我们仍然没有得到我们想要的结果。
我听说过一些讨论边缘检测和格式塔原则的问题。但是我没有找到关于这个子主题的任何好的数据或研究论文。
有谁知道尚未解决的任何边缘检测问题或限制?随意详细说明我上面提到的两个子主题!
assembly - x86 程序集 - 如何识别寄存器到寄存器指令
我正在尝试在给定的反汇编指令列表中识别所有寄存器以注册指令..
我正在使用 capstone 作为反汇编引擎。
检查“英特尔® 64 和 IA-32 架构软件开发人员手册”后,我发现我需要查看 MOD\RM 字节中的 MOD 位,如果它的 11b 则该指令位于两个寄存器之间。
在我遇到下一个指令(十六进制)之前,它工作得很好:
根据顶点(http://www.cenigma.org/4AM3UGY):
在第一条指令 MOD\RM='EC' (11101100b) 所以 MOD=11b 在第二条指令 MOD\RM='C4' (11000100b) 所以再次 MOD=11b
并且两者都没有注册注册!
我错过了什么?除了MOD位还有更多吗?
谢谢 !
python - 在 Python 中读取二进制文件 (.out) 并使用 Capstone 进行反汇编
我在阅读二进制文件的 .text 部分时遇到了一些麻烦。
二进制文件由 gcc 编译。
该命令表明
.text 部分的地址为 0000831c,偏移量 = 00031c 且大小 = 000340
我努力了
Capstone 无法识别。
如果 .text 内容看起来像
如何读为
python - Capstone 从 Python 中的二进制文件反汇编
我有一个大学项目,我必须在其中反汇编二进制文件。因此,我尝试了 Capstone。我用 Java 尝试了几个星期,但它没有用,所以从昨天开始我自学了一点 Python。要阅读我试过的二进制文件:
从此链接:Reading Binary File (.out) in Python and disassemble with Capstone 以及从 capstone 反汇编的说明http://www.capstone-engine.org/lang_python.html
我有来自在线反汇编程序的解决方案,结果超过 13000 行。当我开始我的时候,我只得到一个(0x1000:sc 0x2b)。我找不到错误,因为在我看来这没问题,但我没有任何 Python 或 Capstone 计划。
顺便说一句,Capstone 页面中的测试代码工作正常,所以我认为安装没有问题。
代码:
python - 我应该将哪些字节传递给 Capstone 以反汇编 PE 文件的可执行代码
我试图使用 pefile 和 capstone 用 python 反汇编 PE 可执行文件,以便稍后从该代码中获取 CFG。我的想法是获取包含可执行代码的 PE 文件部分并将所有这些字节传递给顶点。我不知道究竟应该将哪个部分传递给顶点,因此不会反汇编超过必要的代码,并且可以在构造 CFG 时解析 RVA(即 jo 0x10df9 和地址 0x10df9 在反汇编指令列表中) . 我试过了
但我担心它会从入口点反汇编到 PE 的末尾,我只想反汇编可执行代码。我一直在阅读有关 PE 格式的内容,并且更有可能代码将始终位于 .text 部分。我也在考虑把那部分放在:
然后将那个部分的数据从EntryPoint中的字节开始传递给顶点,我认为这可以将数据从起始点分隔到该部分的末尾。
但是在本节的末尾可能是不应该反汇编的代码(我认为,不确定)。所以我要问的是我应该将哪些字节传递给 Capstone 来反汇编 PE 文件的可执行代码。
mips - 计算 mips jalr 的目标地址
我使用 capstone 反汇编了以下汇编代码。我从从标头获得的入口点开始。
我如何找到jalr
指向哪个地址?(我以为我可以在 C 程序中达到主要功能)
基于此参考中的幻灯片编号 19,我将 target = 0x0400ba0
我寻找它并在.plt
部分中找到它。下面是拆解.plt
我很困惑 - 我该如何理解它。或者我怎样才能在 MIPS 反汇编中达到实际的主要功能
c++ - Capstone cs_disasm 仅反汇编一小部分代码
我正在MacOS 和 MacOS x86_64 二进制文件上尝试http://www.capstone-engine.org 。它或多或少确实有效,但我确实有两个担忧。
我正在加载测试 dylib
- 就我所做的研究而言,我似乎需要从二进制代码中删除“第一个”字节以删除标头和元数据,直到它遇到真正的指令。但是我不确定 capstone 是否为此提供了任何 api,或者我需要按字节模式扫描并找到第一个指令地址。
事实上,我已经应用了简单的解决方法,我确实找到了安全地址,它肯定会对我将加载的大多数模块有说明,但是我想应用适当的解决方案。
- 我已经使用我描述的解决方法成功加载和反汇编了部分模块代码。然而,可悲的是,cs_disasm返回的指令大多不超过 5000-6000 条,这令人困惑,它似乎在不应该中断的常规指令上中断。我不确定我做错了什么。模块的代码超过 15mb,因此要反汇编的指令超过 5k。
以下是我基于 Capstone Docs 示例的功能
我将非常感谢这方面的任何帮助。
热情地,
大卫
python - subprocess.Popen 在循环时吃掉内存
我编写了一个 python 脚本来帮助我自动化我正在处理的项目。它在循环中执行 Capstone 子进程,因为当时我无法安装绑定,从二进制文件中读取 4 个字节并将其作为 Capstone 输入传递。
问题是,我的二进制数据超过 30MB,导致这个脚本运行了一段时间。所以我让它等待了几分钟,当我回来时,我的 RAM 使用率为 98%。
我已经开始使用 Capstone 绑定,但我很好奇这里出了什么问题。我的代码如下。谢谢!
编辑:修复了代码。我是凭记忆把它写回来的,所以我把它弄乱了一点。