(objdump) - 显示二进制文件信息

objdump

显示二进制文件信息

补充说明

objdump命令 是用查看目标文件或者可执行的目标文件的构成的gcc工具。

选项

--archive-headers 
-a 
显示档案库的成员信息,类似ls -l将lib*.a的信息列出。 

-b bfdname 
--target=bfdname 
指定目标码格式。这不是必须的,objdump能自动识别许多格式,比如: 

objdump -b oasys -m vax -h fu.o 
显示fu.o的头部摘要信息,明确指出该文件是Vax系统下用Oasys编译器生成的目标文件。objdump -i将给出这里可以指定的目标码格式列表。 

-C 
--demangle 
将底层的符号名解码成用户级名字,除了去掉所开头的下划线之外,还使得C++函数名以可理解的方式显示出来。 

--debugging 
-g 
显示调试信息。企图解析保存在文件中的调试信息并以C语言的语法显示出来。仅仅支持某些类型的调试信息。有些其他的格式被readelf -w支持。 

-e 
--debugging-tags 
类似-g选项,但是生成的信息是和ctags工具相兼容的格式。 

--disassemble 
-d 
从objfile中反汇编那些特定指令机器码的section。 

-D 
--disassemble-all 
与 -d 类似,但反汇编所有section. 

--prefix-addresses 
反汇编的时候,显示每一行的完整地址。这是一种比较老的反汇编格式。 

-EB 
-EL 
--endian={big|little} 
指定目标文件的小端。这个项将影响反汇编出来的指令。在反汇编的文件没描述小端信息的时候用。例如S-records. 

-f 
--file-headers 
显示objfile中每个文件的整体头部摘要信息。 

-h 
--section-headers 
--headers 
显示目标文件各个section的头部摘要信息。 

-H 
--help 
简短的帮助信息。 

-i 
--info 
显示对于 -b 或者 -m 选项可用的架构和目标格式列表。 

-j name
--section=name 
仅仅显示指定名称为name的section的信息 

-l
--line-numbers 
用文件名和行号标注相应的目标代码,仅仅和-d、-D或者-r一起使用使用-ld和使用-d的区别不是很大,在源码级调试的时候有用,要求编译时使用了-g之类的调试编译选项。 

-m machine 
--architecture=machine 
指定反汇编目标文件时使用的架构,当待反汇编文件本身没描述架构信息的时候(比如S-records),这个选项很有用。可以用-i选项列出这里能够指定的架构. 

--reloc 
-r 
显示文件的重定位入口。如果和-d或者-D一起使用,重定位部分以反汇编后的格式显示出来。 

--dynamic-reloc 
-R 
显示文件的动态重定位入口,仅仅对于动态目标文件意义,比如某些共享库。 

-s 
--full-contents 
显示指定section的完整内容。默认所有的非空section都会被显示。 

-S 
--source 
尽可能反汇编出源代码,尤其当编译的时候指定了-g这种调试参数时,效果比较明显。隐含了-d参数。 

--show-raw-insn 
反汇编的时候,显示每条汇编指令对应的机器码,如不指定--prefix-addresses,这将是缺省选项。 

--no-show-raw-insn 
反汇编时,不显示汇编指令的机器码,如不指定--prefix-addresses,这将是缺省选项。 

--start-address=address 
从指定地址开始显示数据,该选项影响-d、-r和-s选项的输出。 

--stop-address=address 
显示数据直到指定地址为止,该项影响-d、-r和-s选项的输出。 

-t 
--syms 
显示文件的符号表入口。类似于nm -s提供的信息 

-T 
--dynamic-syms 
显示文件的动态符号表入口,仅仅对动态目标文件意义,比如某些共享库。它显示的信息类似于 nm -D|--dynamic 显示的信息。 

-V 
--version 
版本信息 

--all-headers 
-x 
显示所可用的头信息,包括符号表、重定位入口。-x 等价于-a -f -h -r -t 同时指定。 

-z 
--disassemble-zeroes 
一般反汇编输出将省略大块的零,该选项使得这些零块也被反汇编。 

@file 可以将选项集中到一个文件中,然后使用这个@file选项载入。

实例

首先,在给出后面大部分测试所基于的源代码以及编译指令。 源代码如下:

root@localhost [test]# nl mytest.cpp 
void printTest() {
    char a;
    a = 'a';
}

void printTest2() {
int a = 2;
a+=2;
} 

对以上源代码进行编译,如下:

[root@localhost test]# g++ -c -g mytest.cpp 

这里,生成的文件是mytest.o,为了方便测试包含了调试的信息,对可执行文件的测试,显示的结果类似。

查看当前使用的objdump的版本号:

[root@localhost test]# objdump -V 
GNU objdump 2.17.50.0.6-14.el5 20061020 
Copyright 2005 free Software Foundation, Inc. 
This program is free software; you may redistribute it under the terms of 
the GNU General Public License.  This program has absolutely no warranty. 

查看档案库文件中的信息:

[root@localhost test]# objdump -a libmy2.a 
In archive libmy2.a: 
myfile.o:     file format elf32-i386 
rwxrwxrwx 0/0   2724 Nov 16 16:06 2009 myfile.o 
mytest.o:     file format elf32-i386 
rw-r--r-- 0/0    727 Jul 13 15:32 2011 mytest.o 

*这里,libmy2.a是一个使用ar命令将多个.o目标文件打包而生成的静态库。命令的输出类似ar -tv,相比较ar -tv输出如下: **

[root@localhost test]# ar -tv libmy2.a 
rwxrwxrwx 0/0   2724 Nov 16 16:06 2009 myfile.o 
rw-r--r-- 0/0    727 Jul 13 15:32 2011 mytest.o 

显示可用的架构和目标结构列表:

[root@localhost test]# objdump -i 
BFD header file version 2.17.50.0.6-14.el5 20061020 
elf32-i386 
(header little endian, data little endian) 
  i386 
a.out-i386-linux 
(header little endian, data little endian) 
  i386 
efi-app-ia32 
(header little endian, data little endian) 
  i386 
elf64-x86-64 
(header little endian, data little endian) 
  i386 
elf64-little 
(header little endian, data little endian) 
  i386 
elf64-big 
(header big endian, data big endian) 
  i386 
elf32-little 
(header little endian, data little endian) 
  i386 
elf32-big 
(header big endian, data big endian) 
  i386 
srec 
(header endianness unknown, data endianness unknown) 
  i386 
symbolsrec 
(header endianness unknown, data endianness unknown) 
  i386 
tekhex 
(header endianness unknown, data endianness unknown) 
  i386 
binary 
(header endianness unknown, data endianness unknown) 
  i386 
ihex 
(header endianness unknown, data endianness unknown) 
  i386 
trad-core 
(header endianness unknown, data endianness unknown) 

              elf32-i386 a.out-i386-linux efi-app-ia32 elf64-x86-64 
          i386 elf32-i386 a.out-i386-linux efi-app-ia32 elf64-x86-64 

              elf64-little elf64-big elf32-little elf32-big srec symbolsrec 
          i386 elf64-little elf64-big elf32-little elf32-big srec symbolsrec 

              tekhex binary ihex trad-core 
          i386 tekhex binary ihex --------- 

这里,显示的信息是相对于 -b 或者 -m 选项可用的架构和目标格式列表。

显示mytest.o文件中的text段的内容:

[root@localhost test]# objdump --section=.text -s mytest.o 
mytest.o:     file format elf32-i386 
Contents of section .text: 
0000 5589e583 ec10c645 ff61c9c3 5589e583  U......E.a..U... 
0010 ec10c745 fc020000 008345fc 02c9c3    ...E......E.... 

这里注意,不能单独使用-j或者--section,例如objdump --section=.text mytest.o是不会运行成功的。

反汇编mytest.o中的text段内容,并尽可能用源代码形式表示:

[root@localhost test]# objdump -j .text -S mytest.o 
mytest.o:     file format elf32-i386 
Disassembly of section .text: 
00000000 <_Z9printTestv>: 
void printTest() 
   0:   55                      push   %ebp 
   1:   89 e5                   mov    %esp,%ebp 
   3:   83 ec 10                sub    $0x10,%esp 
{ 
        char a; 
        a = 'a'; 
   6:   c6 45 ff 61             movb   $0x61,0xffffffff(%ebp) 
} 
   a:   c9                      leave  
   b:   c3                      ret    

000000c <_Z10printTest2v>: 
void printTest2() 
   c:   55                      push   %ebp 
   d:   89 e5                   mov    %esp,%ebp 
   f:   83 ec 10                sub    $0x10,%esp 
{ 
        int a = 2; 
  12:   c7 45 fc 02 00 00 00    movl   $0x2,0xfffffffc(%ebp) 
        a+=2; 
  19:   83 45 fc 02             addl   $0x2,0xfffffffc(%ebp) 
} 
  1d:   c9                      leave  
  1e:   c3                      ret    

这里注意,不能单独使用-j或者--section,例如objdump -j .text mytest.o是不会运行成功的。另外-S命令对于包含调试信息的目标文件,显示的效果比较好,如果编译时没有指定g++的-g选项,那么目标文件就不包含调试信息,那么显示效果就差多了。

反汇编出mytest.o的源代码:

[root@localhost test]# objdump -S mytest.o 
mytest.o:     file format elf32-i386 

Disassembly of section .text: 

00000000 <_Z9printTestv>: 
void printTest() 
   0:   55                      push   %ebp 
   1:   89 e5                   mov    %esp,%ebp 
   3:   83 ec 10                sub    $0x10,%esp 
{ 
        char a; 
        a = 'a'; 
   6:   c6 45 ff 61             movb   $0x61,0xffffffff(%ebp) 
} 
   a:   c9                      leave  
   b:   c3                      ret    

0000000c <_Z10printTest2v>: 
void printTest2() 
   c:   55                      push   %ebp 
   d:   89 e5                   mov    %esp,%ebp 
   f:   83 ec 10                sub    $0x10,%esp 
{ 
       int a = 2; 
  12:   c7 45 fc 02 00 00 00    movl   $0x2,0xfffffffc(%ebp) 
        a+=2; 
  19:   83 45 fc 02             addl   $0x2,0xfffffffc(%ebp) 
} 
  1d:   c9                      leave  
  1e:   c3                      ret    

这里,尤其当编译的时候指定了-g这种调试参数时,反汇编的效果比较明显。隐含了-d参数。

显示文件的符号表入口:

[root@localhost test]# objdump -t mytest.o 
mytest.o:     file format elf32-i386 

SYMBOL TABLE: 
00000000 l    df *ABS*  00000000 mytest.cpp 
00000000 l    d  .text  00000000 .text 
00000000 l    d  .data  00000000 .data 
00000000 l    d  .bss   00000000 .bss 
00000000 l    d  .debug_abbrev  00000000 .debug_abbrev 
00000000 l    d  .debug_info    00000000 .debug_info 
00000000 l    d  .debug_line    00000000 .debug_line 
00000000 l    d  .debug_frame   00000000 .debug_frame 
00000000 l    d  .debug_loc     00000000 .debug_loc 
00000000 l    d  .debug_pubnames        00000000 .debug_pubnames 
00000000 l    d  .debug_aranges 00000000 .debug_aranges 
00000000 l    d  .note.GNU-stack        00000000 .note.GNU-stack 
00000000 l    d  .comment       00000000 .comment 
00000000 g     F .text  0000000c _Z9printTestv 
00000000         *UND*  00000000 __gxx_personality_v0 
0000000c g     F .text  00000013 _Z10printTest2v 

这里,输出的信息类似nm -s命令的输出,相比较之下,nm命令的输出如下:

[root@localhost test]# nm -s mytest.o 
0000000c T _Z10printTest2v 
00000000 T _Z9printTestv 
         U __gxx_personality_v0 

显示文件的符号表入口,将底层符号解码并表示成用户级别:

[root@localhost test]# objdump -t -C mytest.o 
mytest.o:     file format elf32-i386 
SYMBOL TABLE: 
00000000 l    df *ABS*  00000000 mytest.cpp 
00000000 l    d  .text  00000000 .text 
00000000 l    d  .data  00000000 .data 
00000000 l    d  .bss   00000000 .bss 
00000000 l    d  .debug_abbrev  00000000 .debug_abbrev 
00000000 l    d  .debug_info    00000000 .debug_info 
00000000 l    d  .debug_line    00000000 .debug_line 
00000000 l    d  .debug_frame   00000000 .debug_frame 
00000000 l    d  .debug_loc     00000000 .debug_loc 
00000000 l    d  .debug_pubnames        00000000 .debug_pubnames 
00000000 l    d  .debug_aranges 00000000 .debug_aranges 
00000000 l    d  .note.GNU-stack        00000000 .note.GNU-stack 
00000000 l    d  .comment       00000000 .comment 
00000000 g     F .text  0000000c printTest() 
00000000         *UND*  00000000 __gxx_personality_v0 
0000000c g     F .text  00000013 printTest2() 

这里,和没-C相比,printTest2函数可读性增加了。

反汇编目标文件的特定机器码段:

[root@localhost test]# objdump -d mytest.o 
mytest.o:     file format elf32-i386 
Disassembly of section .text: 

00000000 <_Z9printTestv>: 
   0:   55                      push   %ebp 
   1:   89 e5                   mov    %esp,%ebp 
   3:   83 ec 10                sub    $0x10,%esp 
   6:   c6 45 ff 61             movb   $0x61,0xffffffff(%ebp) 
   a:   c9                      leave  
  b:   c3                      ret    

0000000c <_Z10printTest2v>: 
   c:   55                      push   %ebp 
   d:   89 e5                   mov    %esp,%ebp 
   f:   83 ec 10                sub    $0x10,%esp 
  12:   c7 45 fc 02 00 00 00    movl   $0x2,0xfffffffc(%ebp) 
  19:   83 45 fc 02             addl   $0x2,0xfffffffc(%ebp) 
  1d:   c9                      leave  
  1e:   c3                      ret    

这里,对text段的内容进行了反汇编。

反汇编特定段,并将汇编代码对应的文件名称和行号对应上:

[root@localhost test]# objdump -d -l mytest.o
mytest.o:     file format elf32-i386 
Disassembly of section .text: 

00000000 <_Z9printTestv>: 
_Z9printTestv(): 
/root/test/04_libraryTest/mytest.cpp:1 
   0:   55                      push   %ebp 
   1:   89 e5                   mov    %esp,%ebp 
   3:   83 ec 10                sub    $0x10,%esp 
/root/test/04_libraryTest/mytest.cpp:4 
   6:   c6 45 ff 61             movb   $0x61,0xffffffff(%ebp) 
/root/test/04_libraryTest/mytest.cpp:5 
   a:   c9                      leave  
   b:   c3                      ret    

0000000c <_Z10printTest2v>: 
_Z10printTest2v(): 
/root/test/04_libraryTest/mytest.cpp:6 
   c:   55                      push   %ebp 
   d:   89 e5                   mov    %esp,%ebp 
   f:   83 ec 10                sub    $0x10,%esp 
/root/test/04_libraryTest/mytest.cpp:8 
  12:   c7 45 fc 02 00 00 00    movl   $0x2,0xfffffffc(%ebp) 
/root/test/04_libraryTest/mytest.cpp:9 
  19:   83 45 fc 02             addl   $0x2,0xfffffffc(%ebp) 
/root/test/04_libraryTest/mytest.cpp:10 
  1d:   c9                      leave  
  1e:   c3                      ret    

这里,项"-d"从objfile中反汇编那些特定指令机器码的section,而使用"-l"指定用文件名和行号标注相应的目标代码,仅仅和-d、-D或者-r一起使用,使用-ld和使用-d的区别不是很大,在源码级调试的时候有用,要求编译时使用了-g之类的调试编译选项。

显示目标文件各个段的头部摘要信息:

[root@localhost test]# objdump -h mytest.o 
mytest.o:     file format elf32-i386 

Sections: 
Idx Name          Size      VMA       LMA       File off  Algn 
  0 .text         0000001f  00000000  00000000  00000034  2**2 
                  CONTENTS, ALLOC, LOAD, readonly, CODE 
  1 .data         00000000  00000000  00000000  00000054  2**2 
                  CONTENTS, ALLOC, LOAD, DATA 
  2 .bss          00000000  00000000  00000000  00000054  2**2 
                  ALLOC 
  3 .debug_abbrev 00000046  00000000  00000000  00000054  2**0 
                  CONTENTS, READONLY, DEBUGGING 
  4 .debug_info   000000ed  00000000  00000000  0000009a  2**0 
                  CONTENTS, RELOC, READONLY, DEBUGGING 
  5 .debug_line   0000003e  00000000  00000000  00000187  2**0 
                  CONTENTS, RELOC, READONLY, DEBUGGING 
  6 .debug_frame  00000044  00000000  00000000  000001c8  2**2 
                  CONTENTS, RELOC, READONLY, DEBUGGING 
  7 .debug_loc    00000058  00000000  00000000  0000020c  2**0 
                  CONTENTS, READONLY, DEBUGGING 
  8 .debug_pubnames 0000002f  00000000  00000000  00000264  2**0 
                  CONTENTS, RELOC, READONLY, DEBUGGING 
  9 .debug_aranges 00000020  00000000  00000000  00000293  2**0 
                  CONTENTS, RELOC, READONLY, DEBUGGING 
10 .comment      0000002e  00000000  00000000  000002b3  2**0 
                  CONTENTS, READONLY 
11 .note.GNU-stack 00000000  00000000  00000000  000002e1  2**0 
                  CONTENTS, READONLY 

这里,更多的内容参见man objdump中的这个选项。

热点新闻

受疫情影响 Booking.com宣布最多裁员25%

全球酒店预订平台Booking.com母公司Booking Holdings今日宣布,由于新冠病毒疫情继续对旅游造成广泛影响,该公司计划在全球范围内最多裁员25%。目前,Booking.com拥有逾1.7万名员工。 阅读全文

发布于:2020-08-04T23:15:13Z  |  109次阅读  |  详细内容 »

不惜一切坚持生产 特斯拉成为疫情下汽车业最大赢家

疫情危机之中,由于前期“种下的种子”渐渐长成,特斯拉逆势迎来大丰收。面对疫情冲击,全球传统车企遭受重创,销量和利润暴跌之时,特斯拉却仍保持盈利,股价由三月低点至今已飙升了约4倍。这使得它7月初市值超越大众和丰田后,始终稳坐全球第一大车企宝座。 阅读全文

发布于:2020-08-02T17:46:01Z  |  92次阅读  |  详细内容 »

CDC预测:未来30天 美国每天将有1000人死于新冠肺炎

美国疫情现况有多严峻?美疾控中心(CDC)预测,未来30天,美国每天将有1000人死于新冠肺炎。据美国有线电视新闻网(CNN)消息,过去一周,美国27个州的疫情逐渐趋缓,这是一个好消息,但对全美来说,疫情还是相当严重。根据CDC发布的一份综合预测数据,到8月22日,美国新冠肺炎死亡病例将达到17.3万例,在未来30天,平均每天就有1000个美国人死于新冠肺炎。 阅读全文

发布于:2020-08-03T12:15:09Z  |  81次阅读  |  详细内容 »

小伙落水失踪 10天内微信余额却被多次提现

8月2日,据媒体报道,7月19日晚,四川宜宾一男子在救落入江中的弟弟时不慎失踪,但随后却不断收到其微信余额提现和消费的提示信息。报道称,7月19日晚9点左右,男子姜某成和女友带着9岁的弟弟到江边游玩,结果弟弟不慎失足落水,姜某成急忙扑入水中营救,却不料双双遇险。最终弟弟被路人救起送医,姜某成却下落不明,目前搜寻工作仍在继续。 阅读全文

发布于:2020-08-02T17:51:19Z  |  77次阅读  |  详细内容 »

微软发布新的Windows Insider计划网站

微软今日发布了改版后的Windows Insider计划网站。新网站经过重新设计,更加方便用户访问和参与,新的Windows Insider网站将为测试者了解该计划提供一站式服务。Windows Insider计划是一个由数百万Windows最忠实的粉丝组成的社区,他们可以第一时间看到Windows接下来的变化。 阅读全文

发布于:2020-08-02T00:14:38Z  |  77次阅读  |  详细内容 »

新冠病例激增之际 澳大利亚又暴发H7N7禽流感

据美国彭博社8月1日消息,澳大利亚维多利亚州一家农场近日暴发了H7N7禽流感,农场内约有半数禽类感染病毒。另据美媒消息,澳大利亚的新冠疫情形势也不乐观,维多利亚州2日单日新增确诊病例就超过了650例,高于前一日的397例。 阅读全文

发布于:2020-08-02T16:14:37Z  |  71次阅读  |  详细内容 »

任正非三天去了三所高校 传递两个重要信号

许久不见,任正非再露面!一改去年以来频繁接受媒体专访的画风,最近三天(7月29日至31日),任正非接连去了三所高校:上海交通大学、复旦大学、东南大学。任正非此行依然金句连连,他在上海交通大学说,希望大学像“灯塔”,照亮自己,也照亮别人;他在复旦大学说:未来我们拼什么,就是拼教育、拼人才;他在东南大学说:教授甘坐冷板凳,这就是中国的希望。 阅读全文

发布于:2020-08-02T16:14:47Z  |  70次阅读  |  详细内容 »

特斯拉CEO马斯克:中国人聪明勤奋 反观美国太自满

特斯拉CEO埃隆·马斯克周五(7月31日)接受美国“汽车新闻”网站采访时直言,中国令他震撼,中国人非常聪明而且非常勤奋,反观美国自己则太过自满。据美国全国广播公司财经频道(CNBC)报道,采访当天,当“汽车新闻”网站的出版商杰森·斯坦问到“中国作为全球电动汽车策略领导者如何”时,马斯克说道: 阅读全文

发布于:2020-08-02T11:44:51Z  |  70次阅读  |  详细内容 »

抢夺东南亚 蚂蚁金服和腾讯的移动支付战

7月28日,腾讯宣布,土耳其伊斯坦布尔机场正式接入微信支付,中国游客可通过微信支付直接使用人民币进行交易结算。微信支付又落地了一个新市场。以蚂蚁金服(现更名为“蚂蚁科技”)和腾讯为代表的中国公司,早已将移动支付战争打到了海外。支付宝和微信支付已经渗透进几百个海外城市,使中国出境游客可以在本地商户,使用人民币支付。 阅读全文

发布于:2020-08-02T17:49:47Z  |  68次阅读  |  详细内容 »

勒索软件Maze公开数十GB的LG和施乐内部数据

在未能勒索到赎金之后,勒索软件 Maze 背后的犯罪组织公开了 50.2 GB 的 LG 内部数据和 25.8 GB 的施乐内部数据。Maze 犯罪组织入侵企业网络后,首先窃取数据然后加密数据,最后索要赎金解密文件。 阅读全文

发布于:2020-08-05T23:45:42Z  |  66次阅读  |  详细内容 »

字节跳动:考虑在美国之外重新设立TikTok总部

字节跳动发布最新声明称,考虑在美国之外的主要市场,重新设立TikTok总部。字节跳动声明全文:字节跳动始终致力于成为全球公司。根据目前情况,字节跳动考虑在美国之外的主要市场,重新设立TikTok总部,以更好地服务全球用户。 阅读全文

发布于:2020-08-04T03:44:23Z  |  66次阅读  |  详细内容 »

如果特斯拉Cybertruck失败 马斯克还有Plan B

据外媒报道,特斯拉CEO埃隆·马斯克在周末发表的评论详细阐述了他的备用计划以防即将到来的Cybertruck以失败告终。马斯克在周日出版的Automotive News的采访中表示,如果Cybertruck失败,特斯拉只会制造一种常规版和类似版皮卡。 阅读全文

发布于:2020-08-04T08:14:48Z  |  65次阅读  |  详细内容 »

无视疫情?美国玩家举行业余线下《使命召唤》赛事

今年的新冠病毒疫情已经在世界范围造成了巨大影响,许多体育赛事都取消了现场观众,而电子竞技更是利用先天便利在线上进行。游戏本来是人们居家隔离期间的社交利器,但偏偏有人要在危险边缘疯狂试探,明明能在线上举行的游戏赛事,非得搬到线下进行现场接触与人群聚集。 阅读全文

发布于:2020-08-02T16:14:39Z  |  63次阅读  |  详细内容 »

马斯克:当太空旅行像航空旅行一样普遍 人类文明未来将得到保证

8月3日消息,据国外媒体报道,今天SpaceX飞船及NASA宇航员完成历史性飞行,安全返回地球。SpaceX CEO马斯克非常兴奋,在社交网络上发表了许多言论。美国国家航空航天局(简称NASA)宇航员Bob Behnken和Doug Hurley在当地时间下午2:45在墨西哥湾地区降落,这是首次由商业化建造和运营的宇宙飞船载人到达国际空间站并载人返回。 阅读全文

发布于:2020-08-03T12:15:23Z  |  62次阅读  |  详细内容 »

谭德塞:目前还没有治疗新冠病毒的“灵丹妙药”

世界卫生组织总干事谭德塞表示,人类目前还没有治疗新冠病毒的“灵丹妙药”,未来也许也不会有。据报道,3日,谭德塞在世卫组织新冠肺炎例行记者会上表示,“我很高兴大家在确定治疗方法方面取得了进展,可以帮助新冠病毒的重症患者康复。” 阅读全文

发布于:2020-08-03T21:52:11Z  |  61次阅读  |  详细内容 »

普华永道:新冠疫情将导致欧洲5G网络推出延迟12-18个月

据外媒报道,普华永道最近的一份报告显示,新冠疫情将使5G网络在欧洲的推出推迟12-18个月。根据这份报告,欧洲电信公司未来两年的投资支出将减少60-90亿欧元。普华永道在报告中写道:“电信公司需要立即采取行动,以解决其5G投资面临的压力。具体来说,考虑到由于新冠疫情封锁带来的网络容量需求的显著增长和变化,他们必须重新审视自己的5G业务案例和部署时间表。” 阅读全文

发布于:2020-08-03T18:16:46Z  |  61次阅读  |  详细内容 »

热门Linux命令