欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

三星基带逆向工具发行

程序员文章站 2022-08-05 08:46:51
6月份,我们曾使用Recon(一款远程控制软件),解释说明了关于三星基带工具的安全性能。在这篇文档中,我们加入了一些演示操作的幻灯片,以图文并茂的方式,向读者介绍了三星公司这款基带逆向安全工具...

6月份,我们曾使用Recon(一款远程控制软件),解释说明了关于三星基带工具的安全性能。在这篇文档中,我们加入了一些演示操作的幻灯片,以图文并茂的方式,向读者介绍了三星公司这款基带逆向安全工具。

首先,我们讨论了应如何充分理解专有的固件格式,如何实现RTOS(实时操作系统)的逆向工程操作的步骤;接着,弄清该工具的安全结构;对安全性能进行分析,试图找到能够实施网络攻击的漏洞;最后,我们编写了一个可执行RCE(远程代码执行)攻击的程序。

在这一测试过程中,我们找到了一些有效的操作方式,可以帮助我们很好地将一些嵌入式设备,应用到基带工具的逆向工程中,并发挥了很好的作用。我们希望,在此次测试过程中,我们所使用的逆向工程工具库,能给今后想要对三星Shannon基带工具,或基带安全性做进一步研究的安全人员,提供一些有用的指导和帮助。我们将会兑现承诺,在Github社区上上传所使用的工具库,感兴趣的读者可以自行下载使用。

如果你有任何的问题和想法,请在Github社区上与我们进行交流。

相关工具下载地址:https://github.com/comsecuris/shannonRE

代码详情:
├── 010
│   └── sam.bt [010 template for Shannon's TOC header format]
├── android
│   ├── collect-ramdump.sh [Collect ramdumps using cbd directly, requires root]
│   └── download-dump.sh [Collect ramdumps using the menu, does not require root]
├── idapython
│   ├── loader
│   │   └── sam_modem_ramdump.py [IDA loader for the Shannon MAIN image]
│   ├── misc
│   │   └── clean-IDC.sh [Clean up an IDC by removing {comments, filenames, *_something named labels, deletes}]
│   │   └── typeinfo.idc [Structure definitions for a Shannon idb]
│   └── plugins
│       ├── def_arm32_functions.py [Auto-find more functions by scanning for prologues]
│       ├── find_mcr.py [Find and label all the mcr instructions in an idb]
│       ├── label_functions.py [Label function names automatically using string references]
│       ├── name_msg_handlers.py [Name an L3 task's message handlers in its dispatch table automatically]
│       ├── parse_mpu.py [Parse the modem's MPU config table and pretty print all the configuration rules]
│       ├── pseudocomments.py [Save/Restore pseudocode comments from/to an idb. This is useful because IDCs lack these.]
│       ├── register_map.py [Label the register map inside a modem ramdump]
│       ├── stackscan.py [Identify possible stackframes inside a modem ramdump]
│       └── taskscan.py [Walk the task linked list in a modem ramdump to enumerate and label tasks]
└── modem
    ├── memdump.py [Dump memory ranges live from the modem]
    ├── readmem.py [Read memory from a modem address]
    ├── unpack_modem.py [Split up a modem image into its TOC parts (Boot, Main, etc)]
    └── writemem.py [Write memory to a modem address]