问题标签 [radare2]
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.
assembly - 如何通过增加和减少单个字节来修改光标下radare2中的机器代码?
在 Radare2 中,在可视模式下,当光标处于活动状态(按 c)时,应该可以增加和减少原始机器代码的单个字节。在执行此操作时,它应该实时更新新组装的机器代码,例如将 0x50 递增到 0x51、0x52 等应该会导致各种 PUSH 操作码。
我认为这是通过按 + 和 - 分别递增和递减来完成的,但我发现它不起作用。我还发现很难在手册中找到这些特定信息。
我是从以前的版本中记错了,还是从那以后发生了变化?
请注意,我不是在询问如何使用“wa”或类似命令来组装新的汇编语句来做到这一点,我只是想增加和减少单个字节,作为即时更改机器代码的便捷方式。
python-3.x - Python 3 原始字节字符串
我想知道如何在 python3 中将字符串格式化为原始字节,就像在 python2 中一样。
为了澄清我的问题,我必须遵循 shellcode:
我想将此代码传递给python中的radare2。
现在有没有办法让python将我的代码作为“真实”字节而不是Unicode传递?我知道可以用
但我想将它传递给程序。现在我得到 c290 而不仅仅是 90。为什么 python2 和 python3 中的 print 输出与相同的字符串不同?已经解释了这种行为,但它没有为我的问题提供解决方案
谢谢
radare2 - Radare2“pd”命令
我目前正在使用 Radare2 从 PE 文件中提取操作码。目前,我正在尝试使用来自 API 的“pd”命令:“pd n @ offset: Print n opcodes disassembled”。我想知道是否有一种方法可以计算/找出我处理的每个文件的确切“n”是什么。谢谢
python - 雷达2“pd”与“pda”
我目前正在尝试从 PE 文件中提取所有操作码。我想知道 Radare2 的“反汇编 N 个字节”的“pd”命令和“反汇编所有可能的操作码(每个字节的字节)”的“pda”命令有什么区别。我应该使用哪个命令从 PE 文件中查找所有操作码?
radare2 - Radare2“块大小太大”
我有一个大约 30 MB 的 PE 文件。当我尝试在 Radare2 "pD $s" 上运行时,它会输出一条错误消息,指出块大小太大。有没有另一种方法来反汇编我试图查看的这个文件中的所有字节?
disassembly - 反汇编后长连续的“添加”操作码数
在使用 radare2 反汇编 PE 32 文件以从中提取操作码后,我注意到在操作码的开头附近,我得到了一长串“添加”操作码的连续列表。我想知道是否有人知道这样做的原因以及为什么会在那里。
exe - 查找用户与 exe 交互时调用的函数
我有一个 exe,我试图了解它是如何工作的。当我单击 exe 的 UI 元素之一时,我认为它正在发出网络请求并接收数据。我将如何跟踪 exe 正在执行的操作?有没有办法使用动态分析来告诉我单击用户元素时正在执行什么?
buffer-overflow - Radare2“dc”和“dce”命令暂停
我正在学习 Radare2 以进行 fuzzing\vulnerability 研究,我发现命令 'dc' 和 'dce' 并没有按照我期望的方式工作。我运行命令
它发挥了它的魔力,我在 exe 的入口处。接下来,我运行命令“dc”[继续执行所有子项]或“dce”[继续执行(将异常传递给程序)]命令运行并在调用加载库的几行后暂停执行。
现在,如果我再次重复该命令几次,程序将在后台运行,我可以做任何我想做的模糊测试或 VR,但无论如何我可以在不输入 'dc 的情况下完成它' 连续 3 或 4 次?
c - 来自radare2的r2ghidra-dec插件的奇怪反编译代码
我写了一个简单的 C 程序。
当我用radare2的r2ghidra-dec插件反编译它时,我不是很理解它的代码。
海合会版本
系统版本
C程序源代码:
使用编译它
它的汇编代码:
它看起来只是将 0x11、0x22、0x33 加载到堆栈上并调用 printf 来打印它们。
它是来自 r2ghidra-dec 的有线反编译代码:
做什么var_30h = 0x2200000011
?
我的在哪里0x33
?
我猜这里的0x2200000011和0x11、0x22有关。
我尝试用它的反编译代码重写它(gcc bc -o b.out):
它工作正常。
有人可以帮我理解吗?
非常感谢。