我有一个奇怪的ELF二进制文件。 我可以在32位linux上运行这个二进制文件。
但是如果我用IDA拆装器打开这个二进制文件,IDA会说“无效的入口点”。
readelf的结果如下:
root@meltdown-VirtualBox:/home/meltdown# readelf -S -l SimpleVM There are no sections in this file. Elf file type is EXEC (Executable file) Entry point 0xc023dc There are 2 program headers,starting at offset 52 Program headers: Type Offset VirtAddr PhysAddr fileSiz MemSiz Flg Align LOAD 0x000000 0x00c01000 0x00c01000 0x013c7 0x013c7 RWE 0x1000 LOAD 0x00019c 0x0804b19c 0x0804b19c 0x00000 0x00000 RW 0x1000
没有部分。 我以为这个二进制文件是打包的 但是,第一个LOAD段的最后一个虚拟地址是0xc023c7。 入口点的虚拟地址是0xc023dc,超出范围
在可执行二进制文件中更改一个特定的共享库
使用IDA Pro 5反向工程简单应用程序
有什么方法可以告诉程序使用什么语言?
识别命令行参数
函数挂钩地址复制不正确
有人能告诉我发生了什么事吗?
先谢谢你。
/ proc / PID / maps如下(创build两个进程…)
root@meltdown-VirtualBox:/proc/3510# cat maps 00110000-00111000 rwxp 00000000 00:00 0 006c0000-006c1000 r-xp 00000000 00:00 0 [vdso] 007d2000-007d4000 rwxp 00000000 00:00 0 00c01000-00c02000 rwxp 00000000 08:01 3801242 /home/meltdown/SimpleVM 00ca4000-00e43000 r-xp 00000000 08:01 17171359 /lib/i386-linux-gnu/libc-2.15.so 00e43000-00e45000 r-xp 0019f000 08:01 17171359 /lib/i386-linux-gnu/libc-2.15.so 00e45000-00e46000 rwxp 001a1000 08:01 17171359 /lib/i386-linux-gnu/libc-2.15.so 00e46000-00e49000 rwxp 00000000 00:00 0 08048000-0804b000 r-xp 00000000 00:00 0 0804b000-0804c000 rwxp 00000000 00:00 0 b77a7000-b77c7000 r-xp 00000000 08:01 17171339 /lib/i386-linux-gnu/ld-2.15.so b77c7000-b77c8000 r-xp 0001f000 08:01 17171339 /lib/i386-linux-gnu/ld-2.15.so b77c8000-b77c9000 rwxp 00020000 08:01 17171339 /lib/i386-linux-gnu/ld-2.15.so bfa90000-bfab1000 rwxp 00000000 00:00 0 [stack] root@meltdown-VirtualBox:/proc/3511# cat maps 00110000-00111000 rwxp 00000000 00:00 0 006c0000-006c1000 r-xp 00000000 00:00 0 [vdso] 007d2000-007d4000 rwxp 00000000 00:00 0 00c01000-00c02000 rwxp 00000000 08:01 3801242 /home/meltdown/SimpleVM 00ca4000-00e43000 r-xp 00000000 08:01 17171359 /lib/i386-linux-gnu/libc-2.15.so 00e43000-00e45000 r-xp 0019f000 08:01 17171359 /lib/i386-linux-gnu/libc-2.15.so 00e45000-00e46000 rwxp 001a1000 08:01 17171359 /lib/i386-linux-gnu/libc-2.15.so 00e46000-00e49000 rwxp 00000000 00:00 0 08048000-0804b000 r-xp 00000000 00:00 0 0804b000-0804c000 rwxp 00000000 00:00 0 b77a7000-b77c7000 r-xp 00000000 08:01 17171339 /lib/i386-linux-gnu/ld-2.15.so b77c7000-b77c8000 r-xp 0001f000 08:01 17171339 /lib/i386-linux-gnu/ld-2.15.so b77c8000-b77c9000 rwxp 00020000 08:01 17171339 /lib/i386-linux-gnu/ld-2.15.so bfa90000-bfab1000 rwxp 00000000 00:00 0 [stack]
我怎样才能连接到linux上的蓝牙4.0LE的FitBit Zip与蓝色?
使用DLL .NET内部方法
AR Drone 2.0中使用的dev / ttyO0 – 逆向工程
当'OrdinalBase`字段设置为1时,kernel32.dll如何导出一个0的序号?
将自定义结构types添加到strace
这可能是因为映射长度的粒度。 映射的长度将被四舍五入为页面大小的倍数。 在我的系统上,页面大小为4k,因此映射将被四舍五入为4k并包含入口点。 即使页面大小为1k,长度也会达到0x1400,足以包含入口点。 如果文件足够长,则额外的字节可能来自文件而不是页面初始化。
总结以上是内存溢出为你收集整理的奇怪的ELF二进制全部内容,希望文章能够帮你解决奇怪的ELF二进制所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)