gpt4 book ai didi

linux - 无法反汇编我的应用程序——未找到调试信息

转载 作者:太空狗 更新时间:2023-10-29 11:12:15 25 4
gpt4 key购买 nike

我正在尝试反汇编用汇编语言编写的应用程序。我在 Linux 上,x64:

$ objdump -d my_app 

my_app: file format elf64-x86-64

就是这样。它出什么问题了?它不是简单的几行hello world,而是大约 200 行代码。

与gbd相同:

$ gdb -q my_app 
Reading symbols from my_app...(no debugging symbols found)...done.
(gdb)

$ radare2 my_app 
Warning: Cannot initialize section headers
Warning: Cannot initialize strings table
Warning: Cannot initialize dynamic strings
Warning: Cannot initialize dynamic section
-- Calculate checksums for the current block with the commands starting with '#' (#md5, #crc32, #all, ..)

更新:

$ objdump -D my_app 

my_app: file format elf64-x86-64

编译:

   $ fasm my_app.asm 
# => my_app

更新2:

; simplified

format ELF64 executable 3

include "import64.inc"
interpreter "/lib64/ld-linux-x86-64.so.2"
needed "libc.so.6"
import printf, close

segment readable
A equ 123
B equ 222
C equ 333

segment readable writeable
struc s1 a, b, c {
.a1 dw a
.b1 dw b
.c dd c
}

msg:
.m1 db "aaa", 0
.m2 db "bbb", 0
.m3 db "ccc", 0

segment readable executable
entry $
mov rax, 2
mov rdi, "something.txt"
mov rsi, 0
syscall

; .............
; omitted

最佳答案

要求 fasm 在不使用链接器的情况下直接生成 ELF 二进制文件只会创建段,而不会在输出中创建节。这混淆了一些工具。特别是 objdump -d 被专门记录为对部分进行操作。注意 gdb 仍然可以调试和反汇编它,如果你给它一些地址,例如入口点。

关于linux - 无法反汇编我的应用程序——未找到调试信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46802473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com