腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
1
回答
在
没有
反汇编
程序
的
情况下
扫描
“
call
”
指令
?
、
、
、
、
我正在为Windows X64中
的
文本编辑器编写调试器。我实现了断点和单步/单步退出。我被困在单步执行中,因为我基本上需要获取当前行(通过PDB文件和DbgHelp获得)和下一行
的
指令
地址,看看在这些地址之间是否有'
call
‘
指令
,如果是,我们就单步执行否则单步执行。我想知道是否有一种方法可以通过DbgHelp/PDB获得这些信息(而不必编写或使用
反汇编
程序
)?或者可以利用
指令
的
某些字节顺序,也许“<em
浏览 25
提问于2016-08-17
得票数 0
回答已采纳
2
回答
leave和ret
的
区别是什么?
、
我正在尝试
反汇编
一个包含一个简单函数
的
简单
程序
。本
程序
是
在
32位x86目标机上用gcc编译
的
。通过
call
指令
调用该函数。
在
函数
的
末尾,我看到一条ret
指令
,这是正常
的
,但也有一条leave
指令
。
程序
的
任何地方都
没有
enter
指令
。我想知道这会留下什么功能……
浏览 0
提问于2016-06-26
得票数 4
1
回答
理解近呼叫
指令
编码
、
通过分解一些二进制代码,我找到了近调用
指令
call
0x8ae,它被编码为e8 97 08 00 00。查看
指令
集引用,我发现这些
指令
被编码为:XX XX XX XX是相对于下一条
指令
的
32位位移.我不明白为什么拆卸
指令
被编码为e8 97 08 00 00。我本来希望e8 ae 08 00 00
的
编码是相反
的
。
浏览 1
提问于2017-07-24
得票数 2
回答已采纳
2
回答
单步执行.NET应用
程序
中分配
的
可执行内存
、
、
、
我使用HeapCreate和HeapAlloc来分配可执行内存,我将x86-64
指令
写入其中。我能够正确地创建和调用一个返回常量值
的
简单函数。 问题是我无法
在
VS2010中单步执行该函数。当我
在
call
操作码
的
反汇编
窗口中使用"step into“时,它只是跳过,我永远看不到
反汇编
的
函数。我尝试
在
反汇编
窗口中浏览到我
的
可执行内存地址,或者
在
该地址添加断点
浏览 0
提问于2012-02-08
得票数 0
回答已采纳
1
回答
从/proc/kcore获取系统调用表中
的
系统调用地址
、
、
如何从/proc/kcore检索系统调用地址。我可以从System.map文件中获得系统调用表地址。
浏览 1
提问于2011-04-22
得票数 4
回答已采纳
2
回答
objdump如何
反汇编
精灵二进制文件
、
我有个简短
的
问题。二进制代码:然后,我对ELF二进制文件做了个objdump:我已经用ls -a检查了我
的
目录,那里
没有
.o文件。我
的
问题仍然是objdump如何向我展示完整
的
反汇编
代码?objdump是否
在
二进制文件中进行静态分析以涵盖所有代码?
浏览 0
提问于2017-02-06
得票数 5
2
回答
扫描
进程中
的
字节
、
、
、
我目前正在开发一个
程序
,其思想包括
扫描
进程中
的
所有字节(注入dll
的
进程),如果在字节处找到函数,则返回信息并继续
扫描
。我唯一
的
问题是--什么是最有效
的
方法来
扫描
进程中
的
所有字节(当前进程)并检查所
扫描
的
字节是否是一个函数?
浏览 6
提问于2015-07-27
得票数 0
回答已采纳
1
回答
GDB和objdump
的
源代码交错
反汇编
、
、
在
我
的
一次(FWIW,ARM)调试会话中,我注意到GDB和objdump -S
的
源代码交错
反汇编
输出以一种有趣
的
方式不同:objdump似乎
在
单个/一组
指令
之间跳跃,并显示生成这些
指令
的
源代码行(
指令
顺序另一方面,GDB
反汇编
似乎遍历源代码行,并列出从源代码行生成
的
所有汇编
指令
(源代码顺序)。 对于-O0代码,两个
程序
的</em
浏览 1
提问于2015-10-05
得票数 2
2
回答
显示不同
指令
的
反汇编
程序
、
、
、
我刚读到
反汇编
程序
用来将二进制识别为汇编
指令
的
各种算法。
在
不同
的
反汇编
程序
中打开
程序
,一些将
程序
的
特定部分显示为代码,而另一些则将相同
的
部分显示为数据。所以我
的
问题是,如果
反汇编
程序
混淆了操作码是
指令
还是数据,处理器如何确切地知道如何处理该操作码? 我希望我
的
问题是清楚
的
..
浏览 1
提问于2012-07-05
得票数 3
回答已采纳
1
回答
无法看到if-else语句
的
反汇编
代码。
、
、
我想看看用C编写
的
if- GDB
程序
的
反汇编
在GDB中
的
样子。,所以我希望出现"test“或"je”
指令
,但它显示了以下
反汇编
代码: 0x0000000000001139 <因此,我使用-O0标志和gcc一起编译了禁用优化
的
C
程序
。同样,即使
在
禁用编译器优化之后,也
没有
像"t
浏览 3
提问于2020-07-21
得票数 1
回答已采纳
1
回答
如何在不使用标签
的
情况下
跳到特定
的
行?
、
假设我有一个返回
的
调用函数,我能让它在返回地址之前返回到x行吗?例如:mov ax,1mov ax,2ret (-2) 我
的
目标是创建一个可调用函数,它将始终返回到调用地址之前
的
2行,而不必使用10亿个标志和标签。
浏览 1
提问于2019-12-30
得票数 3
回答已采纳
1
回答
Visual是否发出错误
的
汇编代码?
、
、
、
现在,
在
指向idiv
的
error C2414: illegal number of operands中,尝试与内联
程序
集相同
的
程序
集代码失败。我读过,它说idiv只接受一个操作数: 这是怎么回事?为什么VS2010发出错误
浏览 3
提问于2014-05-14
得票数 0
1
回答
.long 0xXXXXXXXX
在
asm中代表什么?
、
在
函数
的
末尾,我看到了很多类似下面这样
的
指令
:它们代表什么?
浏览 16
提问于2016-08-01
得票数 0
回答已采纳
2
回答
Linux 32位
反汇编
具有对下一个字节
的
调用
指令
、
、
、
、
我正在为32位和64位Linux操作系统创建一个驱动
程序
。其中一个要求是所有的代码都需要是自包含
的
,
没有
调出。
在
64位上我
没有
问题,但在32位上,GCC似乎在下一个字节中添加了
call
指令
。
在
搜索了一下之后,我找到了这个链接: <testfunc>:1: mov %esp, %ebp 3: <e
浏览 1
提问于2012-06-29
得票数 2
1
回答
修补
的
二进制文件不打开。
、
我是逆向工程
的
新手,我正试图用IDA将一个jnz条件更改为jz。
在
我修补了二进制之后,应用
程序
就不能打开了。这里有一个原始
的
二进制:以及修改后
的
:编辑: 该问题
的
另一个假设是,由于从jnz到jz
的
切换,修补
的
二进制文件具有不同
的
字节数。可以是吗?
浏览 6
提问于2020-04-08
得票数 0
2
回答
需要帮助理解E8 asm
call
instruction x86
、
、
我好像在呼叫someUnknownValue += 20994A
的
地址? E8 32F6FFFF -
call
std::_Init_locks::operator=+20994A
浏览 0
提问于2012-04-30
得票数 17
回答已采纳
1
回答
如何使用英特尔
的
文档获得与x86中
的
“调用dword‘s”
指令
对应
的
``ModeR/M’字节?
、
、
、
、
我
在
VS2017中调试了以下代码(注意下面的断点):下面您会发现上面提到
的
断点
的
反汇编
:如图所示,编译器为
指令
call
dword ptr [fp]生成
的
机器代码是FF 55 F8,其中FF是调用
指令
的
操作码,55是ModeR/M字节
的
值,F8是值-8
的
8位移位,我将在下面解释。现在,如果您查看下面的“表2-2: 32位寻址表单和ModeR/M”字节,它来
浏览 1
提问于2019-10-31
得票数 4
回答已采纳
2
回答
试图组装
反汇编
程序
的
输出(如objdump)
、
很明显,你不能拆解一个
程序
,将输出直接放入汇编
程序
中,并且因为信息丢失而期望它正确运行。 我
的
问题是,为什么信息会丢失?还有,丢失了什么信息?
浏览 4
提问于2011-12-14
得票数 5
回答已采纳
1
回答
我可以控制特定
的
VC++编译器优化吗?
、
、
、
我正在处理一个引用了另一个二进制函数
的
项目。为了获得这些函数,我需要通过模式匹配/
扫描
以编程方式找到它们。为了简化这一点,我
在
一个单独
的
项目中编译了部分代码,并在
反汇编
程序
中比较了两个项目之间
的
内容,以便提取所需
的
字节信息来
扫描
函数。然而,我已经到达了一个点,VC++
的
优化正在阻碍一些事情,我想知道是否有一种方法可以禁用每条
指令
或类似的特定优化。0]
call
su
浏览 0
提问于2017-06-24
得票数 2
3
回答
分析堆栈损坏
的
核心转储
、
、
、
、
我目前正在尝试
在
我
的
C++应用
程序
中调试一个内核。显然,顶部
的
框架是完全未知
的
。我
的
第一个猜测是PC寄存器被一些堆栈覆盖损坏了。 0x00281da0 <+192>:
浏览 5
提问于2016-09-14
得票数 3
回答已采纳
点击加载更多
热门
标签
更多标签
云服务器
ICP备案
云直播
腾讯会议
实时音视频
活动推荐
运营活动
广告
关闭
领券