You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GDB调试x64架构ELF文件:调用getFlag函数提取Flag遇问题求助

解决方法:正确调用getFlag函数提取Flag

首先得纠正你一个操作误区:你用run getFlag的方式是错误的——run命令是用来启动整个程序的,后面跟着的内容是程序的命令行参数,不是要调用的函数名。下面是两种正确的操作思路:

方法1:直接在GDB中调用getFlag函数

这是最直接的方式,不需要完整启动程序:

  1. 先启动GDB并加载你的ELF文件:
    gdb /home/path/f-x64
    
  2. 直接调用getFlag函数(从函数列表看它是无参函数):
    call getFlag()
    
    执行这条命令后,GDB会直接执行该函数逻辑,正常情况下就能输出Flag内容。

方法2:通过断点触发getFlag执行

如果直接调用遇到问题,你可以通过断点让程序走到getFlag的执行流程里:

  1. 启动GDB加载程序后,给getFlag设置断点:
    b getFlag
    
  2. 启动程序:
    run
    
  3. 程序触发断点停在getFlag入口后,输入continue(简写c)让函数完整执行,或者用step(简写s)一步步调试查看执行细节:
    c
    

额外调试提示

从函数列表里还能看到rot13函数,大概率Flag是经过ROT13加密的。如果getFlag输出的是乱码/加密字符串,可以:

  1. 先反汇编getFlag看它的逻辑,确认是否调用了rot13:
    disassemble getFlag
    
  2. 如果需要解密,也可以直接在GDB里调用rot13处理加密字符串,比如:
    call rot13("加密后的字符串")
    

内容的提问来源于stack exchange,提问作者tpt45

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 11:17:29