在8月3日举办的BlackHat大会上,BlackBerry宣布开源PE逆向工具——PE Tree。PE Tree是由BlackBerry 研究团队研发的使用pefile和PyQt5 来以树形查看PE文件的逆向工具。因为面向的是逆向工程师和社区,PE Tree还融合了HexRays IDA Pro反编译器的功能,可以查看PE结构、复制内存中的PE文件并执行导入重构。

概览

PE Tree是用python开发的,支持Windows、Linux和macOS 操作系统。可以以独立应用安装和运行,也可以以IDAPython插件的形式安装和运行。

图 1.标准应用

图 2. IDAPython插件

PE文件在映射为树形之前会用Ero Carrera的 pefile 模块进行分析,得到如下header信息:

· MZ header

· DOS stub

· Rich headers

· NT/File/Optional headers

· Data directories

· Sections

· Imports

· Exports

· Debug information

· Load config

· TLS

· Resources

· Version information

· Certificates

· Overlay

图 3. Header信息

如果pefile在分析过程中检测到任何问题,就会显示告警信息:

图 4. Pefile 告警

点击链接可以执行VirusTotal 搜索,包括:

· 文件哈希;

· PDB路径;

· 时间戳;

· Section hash/name;

· Import hash/name;

· Export name;

· Resource哈希;

· 证书序列号。

注:IMAGE_DIRECTORY_ENTRY_DEBUG和IMAGE_EXPORT_DESCRIPTOR时间戳一般是由编译器设置的,所以可以用于进一步的分析。

此外,PE文件的特定部分可以被爆出和导出到CyberChef,用于下一步处理,比如:

· DOS stub

· Sections

· Resources

· Certificates

· Overlay

图 5. 保存和导出证书

左侧的 “rainbow view”提供了PE文件结构的高层概览以及每个区域的offset/size/ratio。比如,下面就是含有多个资源的PE文件。

图 6. Rainbow图

点击每个区域可以查看树视图,右击可以保存和导出到CyberChef。

Rainbow图在处理PE文件目录时是非常有用的,因为可以很容易地指出类似的文件组成,并确定样本之间可能的关联。

IDAPython

HeyRays的 IDA Pro融合是通过IDAPython插件来实现的,它可以实现更高级的功能,比如从IDA数据库和重构导入中找到和复制PE文件:

图 7. 搜索PE文件的IDA数据库

在复制内存中的PE文件时,PE Tree会在IDB中添加文件结构的基本评论,并对IAT函数重新命名偏移量,使得很容易就可以查看和分析注入和未打包的PE。

注:PE Tree可以以一种与OllyDumpEx/ImpRec类似的方法来复制PE文件和重构导入,比如,解压MPRESS:

图 8. 执行IDB检索

图 9. 复制后,未打包的PE文件中含有新的导入地址表

如果选择Rebuild imports,PE Tree就会对所有可能的IAT引用搜索IDA disassembly,并构造新的IAT、IDT和hint name表。如果选定“Use existing imports”, PE Tree就会通过DIRECTORY_ENTRY_IMPORT 基于IAT来重构导入。

未来发展

PE Tree目前仍在开发中,未来将会添加更多的新特征。下一版本将关注rekall 支持,提供从内存复制或运行系统(live)中查看和复制进程的能力。

图 10. 用Rekall!复制活动进程内容

PE Tree源码和使用方法参见BlackBerry GitHub:https://github.com/blackberry/pe_tree

参考及来源:https://blogs.blackberry.com/en/2020/08/blackberry-open-source-pe-tree-tool-for-malware-reverse-engineers

usb3.0导入工具pe_BlackHat大会上,BlackBerry宣布开源逆向工具PE Tree相关推荐

  1. BlackHat大会上,BlackBerry宣布开源逆向工具PE Tree

    在8月3日举办的BlackHat大会上,BlackBerry宣布开源PE逆向工具--PE Tree.PE Tree是由BlackBerry 研究团队研发的使用pefile和PyQt5 来以树形查看PE ...

  2. NSA开源逆向工具Ghidra入门使用教程

    NSA开源逆向工具Ghidra入门使用教程 安全运营 奇安信威胁情报中心 2019-03-07 Ghidra具有反编译功能,查看.定位反编译后的代码相较于IDA有优势.不过在使用过程中发现其处理某些混 ...

  3. pe安装usb3.0驱动_电脑店U盘启动盘制作工具下载安装须知

    电脑店U盘启动盘制作工具集成最全面的硬件驱动,精心挑选的系统维护工具,加上独有人性化的设计,具备较强的兼容性.稳定性和安全性.能够完美兼容台式机.品牌机及笔记本等新老机型,且安全无毒,电脑店一键U盘启 ...

  4. 【BlackHat】黑帽大会上值得关注的安全工具

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 从2017年开始,黑帽安全大会就设立"武器"频道,供网络安全社区介绍和发布安全工具.本文选取了一些最有意思的工具. C ...

  5. Black Hat | PE Tree:BlackBerry 发布PE文件开源逆向工具

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 BlackBerry 在今年举办的美国黑帽大会上为网络安全社区发布了一款新工具:PE Tree. PE Tree 是一款适用于 Lin ...

  6. 云栖大会上宣布即将开源的手淘Atlas什么来头?

    在刚刚过去的云栖大会上,手淘宣布其移动容器化框架Atlas将于2017年年初开源,对这个框架,在过去团队对外部做过一些分享,外界也一直对其十分关注,到现在它终于即将开源了. 本文将介绍Atlas的设计 ...

  7. 本次云栖大会上,阿里开源了哪些顶级项目?

    近年来,阿里巴巴在技术领域投入不断加强,拥抱开源也由来已久,积极加入了包括自由软件基金会.Apache软件基金会和Linux基金会在内的多家国际知名开源组织.目前,阿里巴巴开源和维护的开源项目超过15 ...

  8. springcloud工作笔记101---强大的代码自动提示工具_aiXcoder智能编程_以及开源java工具大全_提升开发效率

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 软件开发进入AI时代了,你有自己的「AI编程同伴」了吗? 凭我的「aiXcoder智能编程助手」专 ...

  9. 平滑线反锯齿工具_PS大神常用选框类工具有哪些?其实很简单,小白认真学也能懂...

    就PS中的基本选择工具,大致可分为两大类,选框类与套索类,这两类基本工具各有各的优势与缺点,本章暂不讨论,先来学习和了解选框类的四项基本选择工具,包括矩形选框工具.椭圆选框工具.单行选框工具和单列选框 ...

最新文章

  1. jquery中在子窗口中获取父窗口的Input文本值
  2. 浙大计算机科学基础题型,浙江大学878计算机学科专业基础(含数据结构)考研复习经验...
  3. [HAOI 2010]软件安装
  4. 一起学nRF51xx 14 -  temp
  5. encoder decoder 模型理解
  6. net4.0 兼容2.0的方法
  7. 实现android应用程序自动化测试的批处理脚本,批处理脚本实现android应用程序自动化测试...
  8. 【腾许Bugly干货分享】“HTTPS”安全在哪里?
  9. 【转】DCOM远程调用权限设置
  10. 前端学习(2596):后台系统的权限控制和管理--刷新页面消失
  11. 【httpClient】Timeout waiting for connection from pool
  12. python image.open函数_PIL.Image.open和cv2.imread的比较与相互转换的方法
  13. One Pixel Attack for Fooling Deep Neural Networks论文解读
  14. 股票指标php源码,股票软件通达信精品指标公式-MACD转折点指标源码
  15. uniapp h5微信分享
  16. String转JSONObject,JSONObject转JSONArray,JSONArray数组转换成JSON字符串
  17. 墙裂推荐6个优质公众号
  18. 干货!让人一见钟情的网站header设计攻略
  19. 2022交易猫系统+带聊天/安心购/已验号模板+APP双端跳转
  20. 微信支付-通知验签始终不通过的问题

热门文章

  1. android EditText使用指南
  2. 润土之四——构造润土的来由
  3. 拉普拉斯分布_理解拉普拉斯特征映射中的优化问题的约束条件
  4. 100行Python代码的贪吃蛇
  5. OpenGL ES与EGL的关系(二十一)
  6. Audio bringup I2C调试(三十一)
  7. Clojure 学习入门(6)- 函数定义
  8. UIImage保存到相册
  9. PLCrashReporter使用
  10. iOS UIImage的剪裁、合并实现