精华内容
下载资源
问答
  • Hex Editor (16进制编辑器) Reverse Engineer's Hex Editor wxMEdit wxHexEditor HxD Hexinator PilotEdit GHex Hex Workshop MadEdit 010 Editor Hex Editor Neo WinHex UltraEdit Free Hex Editor 逆向工程平台 ...

    hello

    Hex Editor (16进制编辑器)
    Reverse Engineer's Hex Editor
    wxMEdit
    wxHexEditor
    HxD
    Hexinator
    PilotEdit
    GHex
    Hex Workshop
    MadEdit
    010 Editor
    Hex Editor Neo
    WinHex
    UltraEdit
    Free Hex Editor
    逆向工程平台
    Binary Ninja
    Immunity Debugger
    dnSpy
    Telerik JustDecompile
    Cutter
    Ghidra
    radare2
    OllyDbg
    x64dbg
    IDA
    RemedyBG
    EDB
    REDasm
    WinDbg
    Relyze
    Android apk 逆向工程
    GDA
    APK Studio
    APK Easy Tool
    Jasi Toolkit
    APK Editor Studio
    PE逆向
    PPEE
    PE-bear
    EXE Explorer
    固件分析
    FACT
    学习资料
    视频
    IDA如何patch掉花指令?
    文档
    The Ghidra book - The Definitive Guide [Complete]
    《Windows PE权威指南》
    Ghidra操作手册
    hello
    收集了些逆向工程所用的工具,同时也会分享些学习资源,方便伙伴们学习使用

    Hex Editor (16进制编辑器)
    Reverse Engineer's Hex Editor
    正如名称所暗示的,这是一个十六进制编辑器。它的目标是成为一个很好的通用十六进制编辑器,并具有广泛的功能选择分析和注释二进制文件格式。

    官网https://github.com/solemnwarning/rehex
    版本
    0.30
    授权
    免费
    靓图

    wxMEdit
    wxMEdit 是一个用 C++、wxWidgets 实现的跨平台的文本/十六进制编辑器

    官网https://wxmedit.github.io/
    版本
    3.1
    授权
    免费
    靓图

    wxHexEditor
    wxHexEditor 是一个开源跨平台磁盘/扇区/文件十六进制编辑器,C++,具有基于 wxWidgets 的用户界面。

    官网http://www.wxhexeditor.org/home.php
    版本
    0.24
    授权
    免费
    靓图

    HxD
    HxD 是一个精心设计和快速十六进制编辑器,它,此外,原始磁盘编辑和修改主内存 (RAM),处理任何大小的文件。

    官网https://mh-nexus.de/en/
    版本
    2.4.0.0
    授权
    免费
    靓图

    Hexinator
    Windows 和 Linux 的专业十六进制编辑器。

    官网https://hexinator.com/
    版本
    1.12
    授权
    免费/收费
    靓图

    PilotEdit
    PilotEdit Lite 是一个高级文本和十六进制编辑器,支持打开大于 4GB 的文件。它提供可自定义的语法和关键字突出显示、高级搜索和替换操作、HEX 模式、列模式等。此外,内置 FTP 客户端允许您直接打开、编辑和上传文件到 FTP 服务器。

    官网https://www.pilotedit.com/
    版本
    14.6
    授权
    免费/收费
    靓图

    GHex
    GHex 是一个简单的二进制编辑器。它允许用户使用多级撤消/重做机制查看和编辑十六进制文件和 ascii 中的二进制文件。功能包括查找和替换函数、二进制、八进制、十进制和十六进制值之间的转换,以及使用用户可配置的替代 MDI 概念,允许用户编辑具有多个文档的多个视图。

    官网https://directory.fsf.org/wiki/Ghex
    版本
    3.18.3
    授权
    免费
    靓图

    Hex Workshop
    Hex Workshop 集成了先进的二进制编辑和数据解释和可视化,以及现代文字处理器的轻松和灵活性。使用十六进制研讨会,您可以编辑、剪切、复制、粘贴、插入、填充和删除二进制数据。您还可以使用我们的集成结构查看器和智能书签处理其本机结构和数据类型中的数据。数据编辑是快速和容易的我们广泛的功能,允许您:跳转到文件或扇区的位置,查找或替换数据,执行算术,位,逻辑操作,二进制比较文件,生成校验和摘要,查看字符分布和导出数据到RTF或HTML发布。

    官网http://www.hexworkshop.com/
    版本
    6.8.0
    授权
    收费
    靓图

    MadEdit
    MadEdit 可以在文本/列/十六进制模式下编辑文件,并支持许多有用的功能,例如语法突出显示、WordWrap、编码 (UTF8/16/32,Big5,GBK...) 和 WordCount。

    官网https://sourceforge.net/projects/madedit/
    版本
    0.29
    授权
    免费
    靓图

    010 Editor
    010 Editor是一款专业的文本/十六进制编辑器,旨在编辑计算机上的任何文件、驱动器或进程。使用二进制模板技术,010 编辑器允许将二进制文件解析为可以理解的数据结构。具有具有标准剪切、复制和粘贴命令的编辑器、对大型文件的支持以及所有编辑操作的无限撤消和重做功能。使用检查器可以轻松地编辑多种不同的格式的数据。

    官网https://www.sweetscape.com/010editor/
    版本
    v11.0.1
    授权
    收费
    靓图

    Hex Editor Neo
    Hex Editor Neo是一个二进制文件编辑软件实用程序的Windows。它的丰富和方便的功能集将帮助所有软件和硬件开发人员使用 ASCII,十六进制,十进制,浮动,双和二进制数据。

    官网http://www.hhdsoftware.com/hex-editor
    版本
    6.52.00.6347
    授权
    收费
    靓图

    WinHex
    WinHex 是一个十六进制编辑器,能够打开磁盘、扇区、文件(本机支持 FAT、NTFS、Ext2/3、ReiserFS、Reiser4、UFS、CDFS、UDF)和物理内存(RAM)。它可以读取、写入和提取数据,以进行进一步的取证分析。

    官网https://www.x-ways.net/winhex/index-m.html
    版本
    20.0
    授权
    收费
    靓图

    UltraEdit
    UltraEdit 是理想的文本、HTML 和 HEX 编辑器,也是程序员的高级 PHP、Perl、Java 和 JavaScript 编辑器。UltraEdit 是行业奖得主,支持 32 位 Windows 平台(Windows 2000 及更晚版本)上基于磁盘的 64 位文件处理(标准)。

    官网https://www.ultraedit.com/
    版本
    v27.10
    授权
    收费
    靓图

    Free Hex Editor
    官网https://www.hhdsoftware.com/free-hex-editor
    版本
    6.52.00.6347
    授权
    免费/收费
    靓图

    逆向工程平台
    Binary Ninja
    Binary Ninja是一个反向工程平台。它侧重于一个干净且易于使用的界面,其强大的多线程分析基于自定义 IL 构建,可快速适应各种体系结构、平台和编译器。

    官网
    版本
    2.2.2487
    授权
    免费/收费
    靓图


    Immunity Debugger
    Immunity Debugger是编写漏洞、分析恶意软件和反向工程二进制文件的强大新方法。它构建在具有函数图形的实体用户界面、专为创建堆而构建的行业第一堆分析工具以及支持良好的大型 Python API 之上,便于扩展。

    官网http://debugger.immunityinc.com/
    版本
    1.85
    授权
    免费
    靓图

    dnSpy
    dnSpy 是一种用于逆向工程 .NET 组件的工具。它包括一个去编译器、一个调试器和一个程序集编辑器(等等),并且可以通过编写自己的扩展来轻松扩展。它使用 dnlib 读取和写入程序集,因此它可以处理模糊化的程序集(如恶意软件),而不会崩溃。

    官网https://github.com/0xd4d/dnSpy
    版本
    6.17
    授权
    免费
    靓图

    Telerik JustDecompile
    JustDecompile 是一种独立的免费反编译工具,可将 .NET 程序集转换为源代码。

    官网https://www.telerik.com/products/decompiler.aspx
    版本
    R1 2019 但现在有2020插件,网络安装
    授权
    免费
    靓图

    Cutter
    Cutter 的目标是成为一个先进的免费和开源逆向工程平台,同时将用户体验牢记在心,Cutter由逆向工程师为反向工程师创建。

    官网https://cutter.re/
    版本
    1.12
    授权
    免费
    靓图

    Ghidra
    Ghidra 是由国家安全局研究局创建和维护的软件逆向工程 (SRE) 框架。此框架包括一套功能齐全的高端软件分析工具,使用户能够分析各种平台上编译的代码,包括 Windows、macOS 和 Linux。功能包括拆解、组装、反编译、图形和脚本,以及数百个其他功能。Ghidra 支持各种工艺指导
    集和可执行格式,并且可以在用户交互和自动模式下运行。用户还可以使用 Java 或 Python 开发自己的 Ghidra 插件组件和/或脚本。

    官网https://ghidra-sre.org/
    备份:Ghidra 9.2 released!链接: https://pan.baidu.com/s/18mJExCNvLSauxEqG-SkCwg 提取码: xdca
    版本
    9.2
    授权
    免费
    靓图

    radare2
    Radare 项目开始作为一个取证工具, 一个脚本命令行十六进制编辑器能够打开磁盘文件, 但后来增加了对分析二进制文件, 拆解代码, 调试程序, 附加到远程 gdb 服务器的支持.

    官网https://www.radare.org/r/
    版本
    4.31
    授权
    免费
    靓图

    OllyDbg
    OllyDbg 是一个 32 位汇编器级分析调试器,强调二进制代码分析使其在源不可用的情况下特别有用。

    官网http://www.ollydbg.de/
    版本
    2.01
    授权
    免费
    靓图

    x64dbg
    x64dbg 是 Windows 的 64 位汇编器级调试器,相应的 32 位调试器称为 x32dbg。

    官网https://x64dbg.com/
    版本
    snapshot_2020-11-12_05-12
    授权
    免费
    靓图

    IDA
    IDA Pro 拆解器和调试器是托管在 Windows、Linux 和 Mac OS X 平台上的多处理器拆解器和调试器。

    官网https://www.hex-rays.com/products/ida/
    版本
    7.5
    授权
    免费/收费
    靓图

    RemedyBG
    RemedyBG 是一个从头开始编写的 64 位 Windows 调试器,目的是替换庞然大物 Visual Studio 调试器,并意识到调试器在过去几十年中进度基本上停滞不前。RemedyBG 调试器引擎的所有代码都是从头开始编写的(包括支持 PDB 符号文件)。

    官网https://remedybg.itch.io/remedybg
    版本
    0.3.1.0
    授权
    收费
    靓图

    EDB
    EDB(Evan 的调试器)是基于 Qt4 的二进制模式调试器,其可用性与 OllyDbg 平起平坐。它使用插件体系结构,因此可以轻松添加新功能。当前版本是针对 Linux 的,但将来的发布将针对更多的平台。

    官网http://codef00.com/projects#debuggerhttps://github.com/eteran
    版本
    1.2.0
    授权
    免费
    靓图

    REDasm
    REDasm 是一种交互式多体系结构拆解器,C++ Qt5 作为 UI 框架。
    其核心是轻的,它可以扩展,以支持新的指令和文件格式。

    官网https://redasm.io/
    版本
    REDasm_2.1.1
    授权
    免费
    靓图

    WinDbg
    WinDbg 是微软 Windows 的多用途调试器,由微软在 Web 上分发,作为 Windows 调试工具的一部分。它可用于在内核模式下调试用户模式应用程序、驱动程序和操作系统本身。这是一个GUI应用程序,但与更知名但功能不太强大的可视化工作室调试器没有什么共同之处。

    官网https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk
    版本
    1.0
    授权
    免费
    靓图

    Relyze
    Relyze 桌面允许您反向工程、反编译和差异 x86、x64、ARM32 和 ARM64 软件

    官网https://www.relyze.com/
    版本
    3.2.0
    授权
    收费
    靓图

    Android apk 逆向工程
    GDA
    GJoy Dex Analysizer(GDA),中国第一款也是唯一一款全交互式的现代反编译器,同时也是世界上最早实现的dalvik字节码反编译器。 GDA不只是一款反编译器,同时也是一款轻便且功能强大的综合性逆向分析利器,其不依赖java且支持apk, dex, odex, oat, jar, class, aar文件的反编译, 支持python及java脚本自动化分析。其包含多个由作者独立研究的高速分析引擎:反编译引擎、漏洞检测引擎、 恶意行为检测引擎、污点传播分析引擎、反混淆引擎、apk壳检测引擎等等

    官网http://www.gda.wiki:9090/
    版本
    授权
    收费/免费
    靓图

    ##
    Apktool - 一个工具,用于反向工程第三方,关闭,二进制Android应用程序。它可以解码资源到几乎原始的形式,并在进行一些修改后重新生成资源

    官网https://ibotpeaches.github.io/Apktool/
    版本
    2.4.1
    授权
    免费
    APK Studio
    APK Studio 是一个跨平台 IDE,用于在单个用户界面中进行反向工程(去编译/编辑)和重新编译 Android 应用程序二进制文件。

    官网https://github.com/vaibhavpandeyvpz/apkstudio
    版本
    3.2.0
    授权
    免费
    靓图

    APK Easy Tool
    最易于使用的GUI apktool 具有具有拖放支持的高级功能。不再浪费时间编写命令行版本。这个程序使用相同的APKTool数据库去编译,编译和签署你的愿望APK应用程序。

    官网https://forum.xda-developers.com/android/software-hacking/tool-apk-easy-tool-v1-02-windows-gui-t3333960
    版本
    v1.57
    授权
    免费
    靓图

    Jasi Toolkit
    JASI 工具套件已经建立的想法,使您的工作简单和容易为 Android 倒车最终用户, 它是快速, 稳定, 顺利和 NOOB 友好...!!
    这是一个GUI程序,它可以帮助你执行任务,只需点击简单的选项,而不是搅乱命令手动为每一个任务,它处理一切本身,旨在节省您的时间。

    官网https://jaspreetsingh.store/jasi-toolkit/
    版本
    2.0
    授权
    免费
    靓图

    APK Editor Studio
    强大但易于使用的APK编辑器为PC和Mac.改变Android应用程序图标,标题,翻译和其他资源。

    官网https://qwertycube.com/apk-editor-studio/
    版本
    1.4.0
    授权
    收费/免费
    靓图

    PE逆向
    PPEE
    PPEE(专业PE文件资源管理器)允许分析格式错误和精心制作的PE文件,使其方便反向工程,恶意软件研究人员和更多。该程序包括 PE 导出、导入、资源、异常、证书(依赖于 Windows API)、基本重定位、调试、TLS、负载配置、绑定导入、IAT、延迟导入和 CLR。

    官网https://mzrst.com/
    版本
    1.1.2
    授权
    免费
    靓图

    PE-bear
    为恶意软件分析人员提供快速灵活的"第一视图"工具。
    稳定且能够处理格式错误的 PE 文件。

    官网https://hshrzd.wordpress.com/pe-bear/
    版本
    0.5.1.1
    授权
    免费
    靓图

    EXE Explorer
    它读取并显示可执行文件属性和结构。它兼容 PE32(便携式可执行文件)、PE32+ (64 位)、NE(Windows 3.x 新可执行文件)和 VxD(Windows 9x 虚拟设备驱动程序)文件类型。.NET 可执行文件也受支持。

    官网http://www.mitec.cz/exe.html
    版本
    8.01
    授权
    免费
    靓图

    固件分析
    FACT
    固件分析和比较工具 (FACT) 旨在自动执行固件安全分析(路由器、物联网、UEFI、网络摄像头、无人机等)。因此,它应易于使用(Web UI)、扩展(插件系统)和集成(REST API)。

    官网https://fkie-cad.github.io/FACT_core
    版本
    2020
    授权
    免费
    靓图

    学习资料
    视频
    IDA如何patch掉花指令?
    https://bbs.pediy.com/thread-263323.htm

    文档
    The Ghidra book - The Definitive Guide [Complete]
    https://bbs.pediy.com/thread-262585.htm

    《Windows PE权威指南》
    https://bbs.pediy.com/thread-263552.htm

    Ghidra操作手册
    https://www.kanxue.com/book-section_list-64.htm

    相关资源:逆向编译工具包.rar
    ————————————————
    版权声明:本文为CSDN博主「weixin_39907596」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_39907596/article/details/112460087

    展开全文
  • :多平台开源二进制分析和逆向工程框架 PyAsmJIT :适用于 Intel x86_64 和 ARM 架构的 JIT。 基于BARF构建的工具: BARFgadgets :让您在二进制程序中搜索、分类和验证ROP 小工具。 BARFcfg :让您恢复二进制
  • 1.安装教程请参考http://blog.csdn.net/xiaosatianyu/article/details/51586498简单列举下命令:sudo pip install virtualenvwrapper export WORKON_HOME=$HOME/Python-workhome source /usr/local/bin/...

    1.安装教程

    请参考http://blog.csdn.net/xiaosatianyu/article/details/51586498

    简单列举下命令:

    sudo pip install virtualenvwrapper
    export WORKON_HOME=$HOME/Python-workhome
    source /usr/local/bin/virtualenvwrapper.sh
    mkvirtualenv angr
    sudo pip install angr 

    安装过程报错:
    1.安装pyvex 报错

    Collecting pyvex>=6.7.4.12 (from angr)
      Downloading pyvex-6.7.4.12.tar.gz (52kB)
        100% |████████████████████████████████| 61kB 386kB/s 
        Complete output from command python setup.py egg_info:
        Package libffi was not found in the pkg-config search path.
        Perhaps you should add the directory containing `libffi.pc'
        to the PKG_CONFIG_PATH environment variable
        No package 'libffi' found
        Package libffi was not found in the pkg-config search path.
        Perhaps you should add the directory containing `libffi.pc'
        to the PKG_CONFIG_PATH environment variable
        No package 'libffi' found
        Package libffi was not found in the pkg-config search path.
        Perhaps you should add the directory containing `libffi.pc'
        to the PKG_CONFIG_PATH environment variable
        No package 'libffi' found
        Package libffi was not found in the pkg-config search path.
        Perhaps you should add the directory containing `libffi.pc'
        to the PKG_CONFIG_PATH environment variable
        No package 'libffi' found
        Package libffi was not found in the pkg-config search path.
        Perhaps you should add the directory containing `libffi.pc'
        to the PKG_CONFIG_PATH environment variable
        No package 'libffi' found
        c/_cffi_backend.c:15:17: fatal error: ffi.h: 没有那个文件或目录
        compilation terminated.
        Traceback (most recent call last):
          File "<string>", line 1, in <module>
          File "/tmp/pip-build-j1RkZM/pyvex/setup.py", line 147, in <module>
            'pyvex': ['lib/*', 'include/*']
          File "/usr/lib/python2.7/distutils/core.py", line 111, in setup
            _setup_distribution = dist = klass(attrs)
          File "/usr/local/lib/python2.7/dist-packages/setuptools/dist.py", line 318, in __init__
            self.fetch_build_eggs(attrs['setup_requires'])
          File "/usr/local/lib/python2.7/dist-packages/setuptools/dist.py", line 375, in fetch_build_eggs
            replace_conflicting=True,
          File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 851, in resolve
            dist = best[req.key] = env.best_match(req, ws, installer)
          File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 1123, in best_match
            return self.obtain(req, installer)
          File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 1135, in obtain
            return installer(requirement)
          File "/usr/local/lib/python2.7/dist-packages/setuptools/dist.py", line 443, in fetch_build_egg
            return cmd.easy_install(req)
          File "/usr/local/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 673, in easy_install
            return self.install_item(spec, dist.location, tmpdir, deps)
          File "/usr/local/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 699, in install_item
            dists = self.install_eggs(spec, download, tmpdir)
          File "/usr/local/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 880, in install_eggs
            return self.build_and_install(setup_script, setup_base)
          File "/usr/local/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 1119, in build_and_install
            self.run_setup(setup_script, setup_base, args)
          File "/usr/local/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 1107, in run_setup
            raise DistutilsError("Setup script exited with %s" % (v.args[0],))
        distutils.errors.DistutilsError: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    

    解决办法:
    sudo pip install cffi

    剩下的就一路顺风了。

    2.使用教程

    注意:angr似乎只能在linux 64位系统下运行
    参看这里:https://github.com/angr/angr-dev/issues/14
    32位会一直报段错误

    使用:

    workon angr  //似乎会 找不到命令
    直接进入angr-doc-master/examples/defcamp_r100
    python solve.py
    
    就可以看到答案了
    

    这里写图片描述

    展开全文
  • GHIDRA的CERT Kaiju二进制分析框架 CERT Kaiju是的二进制分析工具的。 这是某些功能的Ghidra / Java实现,尤其是函数哈希和恶意软件分析工具,但随着时间的推移,有望增加新的工具和功能。 由于这是一项新工作,...
  • 我的安全之路——二进制逆向

    万次阅读 多人点赞 2017-07-23 22:51:37
    我的安全之路——二进制逆向篇write in my dormitory at ‏‎11:23:35 Saturday, May 20th, 2017 by giantbranch(一个当初想横跨web跟二进制的菜鸡)​ ————致即将毕业的自己。​ 上一篇是《我的安全之路——...

    我的安全之路——二进制与逆向篇

    write in my dormitory at ‏‎11:23:35 Saturday, May 20th, 2017 by giantbranch(其实当初想横跨web跟二进制的)

    ​ ————致即将毕业的自己。

    ​ 上一篇是**《我的安全之路——Web安全篇》**,,因为参加比赛,搞论文,就没什么时间写了,今天刚好答完辩,终于有时间开始写我的安全之路下篇了。虽然是5月20日写的,感觉写得太差,主要是技术也不厉害,就没发出来。既然写了,就发出来吧,现在看看有什么完善的再现在发出来吧,确实这个内容比web安全的经历难写,一个是文章题目的原因,另一个是自己接触也不长,经历不足,技术差。

    为什么去搞逆向和二进制了

    ​ 在上一篇中我说过,我参加了一些比赛, 由于比赛的题目除了web,misc还有逆向和pwn等,其中逆向和pwn的分值的占比都是比较高的,尤其在高端的比赛中,逆向和pwn的占比也是很高,在国外更是如此。

    艰难入门之路

    ​ 一开始就只是自己的孤军奋战,那基本就只能借助与搜索引擎:如何学习逆向,学习逆向的网站有哪些等。

    ​ 那么你看到的基本都是首先肯定要有C,C++的编程能力,基本的都要理解透彻。(后来你回发现,当你逆向程序,在汇编层面去理解C++的时候,你会理解得更为透彻。)

    ​ 之后就是汇编语言, 先从x86汇编学比较好吧,好书就是王爽的《汇编语言》,当时学校的《汇编语言程序设计》的课我也没选(因为我的那个群的学分已经满了,难得浪费分去选了,自学还可以挑战自我嘛),就看这本书,其实当时学得也并不是很好,用汇编编程的量不足(可以说几乎没编过汇编的感觉,感觉就编了几个helloworld),选了的话可以强制性地逼你去编。

    ​ 再之后就自己编程序,查看其汇编代码进行理解。来到这一步,就可以尝试去做一些crackme了,或者破解一些简单的软件,这样就差不多入门了。

    入门之后还是迷茫啊

    ​ 发现自己进步得非常慢,几乎没啥大的进步,应该是量还不够,而且由于各种原因,不能完全将时间只投入到逆向的学习与提高上面(这个点是个非常值得注意的点,这是使我有点后悔的一个点,做事一定要专注!【其实当时好像也迫不得已】)。实习的时候是搞渗透的,只能空闲的时间学习逆向,还有就是去参加比赛,但是我还是去当了一个web选手,线下比赛很容易就浪费了很多时间。

    ​ 可以算入了逆向的门,之后一直想玩pwn,但确实难以入门啊,你要懂得汇编,调试,栈,堆等基本知识,你还要安装工具(环境配置可以使用我写的脚本:https://github.com/giantbranch/pwn-env-init ),你才能够理解和实践。重要的是当时的pwn的资料很少,我也没有大牛指导啊,搜索引擎搜到的资料也不多,可能当时没用谷歌吧,所以用好的搜索引擎也很重要,看英文资料也很重要,其实当时国外有个博客有个很好的系列文章,很多国内文章的原型来源于它(https://sploitfun.wordpress.com/)。

    ​ 直到有一次,实习的时候刚好遇上公司的对外培训,我也去水了一下,跟安全研究员交流了一番,才拿到了一些资料,就更加激励我走上这一条路。

    ​ 实习完就想转岗做安全研究员,当时面试的时候还没分析过什么漏洞,就学过蒸米的那个教程,面试官就叫我尝试去分析二进制漏洞,当时就搞了个ftp的缓冲区溢出漏洞IE漏洞(CVE-2012-1889)分析与利用,IE漏洞CVE-2014-0282漏洞分析(这个是分析完ftp后分析的,收获良多,报告没发出来,踩了挺多坑的),也算了入了windows的漏洞分析的门了。

    ​ 之后就是参加一些web偏多的比赛,还有准备毕业设计,还有这段时间一直在颓废了,不禁想问自己:为什么能够颓废这么久呢?

    未来之路

    ​ 现在已经选择了安全研究员之路了,虽然苦逼了一点,但是既然选择就热爱吧。

    ​ 为什么想去当安全研究员呢,因为自从来到这个信息安全专业,我就基本确定走信息安全的道路了,后来也了解到tk教主就是安全研究员做起的,虽然并不是每个人都能成为tk,但是有机会还是可以试一下嘛。

    逆向的资源就看那个逆向开放实验的指导书吧(这个是为学校写的指导书,也不方便开放)

    关于pwn的一些好的博客,资源等(其实有些我收集了还没怎么看呢)

    【更多等待大家补充了】

    http://angelboy.logdown.com/

    https://wizardforcel.gitbooks.io/sploitfun-linux-x86-exp-tut/content/

    https://github.com/scwuaptx/HITCON-Training

    https://github.com/Kung-Pao-Chicken/ctf

    https://github.com/shellphish/how2heap

    https://pwnable.tw/

    http://pwnable.kr/

    https://etenal.me/archives/972#B1

    https://heap-exploitation.dhavalkapil.com/

    展开全文
  • 本文讲的是基于 Viper 的二进制软件自动分析框架, 概述 过去的很长一段时间里,我了解并使用了一些非常酷的、私有的、模块化以及非常高级的二进制分析框架。包括Mandiant的静态分类框架和ReversingLabs等商业产品...
    本文讲的是 基于 Viper 的二进制软件自动分析框架

    概述

    过去的很长一段时间里,我了解并使用了一些非常酷的、私有的、模块化以及非常高级的二进制分析框架。包括Mandiant的静态分类框架和ReversingLabs等商业产品,以及许多昂贵的商业沙箱解决方案,如FireEye,Cyphort和JoeSandbox。我认为托管这样一组静态和动态分析工具对于加快我的CTF团队和私人研究来说可能是非常有益的。所以我决定去收集一系列自动化的静态和动态二进制分析工具去编写一个开源分析平台,今天我们主要讨论的就是它。我所选择的这些工具可用于恶意软件分析,CTF二进制分析或去帮助你在逆向工程中逆向二进制文件。我们将在其中设置多个工具,来进行自动化分析任务和实施逆向工程。这些工具包括大量的静态分析,动态分析和报告工具,我们将在下面的文章中深入讨论。我的最终目标是提供一套有用的内部工具,并通过该框架去对逆向工程和构建微型服务架构进行自动化分析这两个方面去获得良好的学习经验。

    我将选择三个主要框架,每一个都被托管在不同的实体上。为了保证我在这个二进制分析集群的第一次可以顺利通过,我选择了:Viper, Cuckoo, 以及MISP。 Viper是用于存储二进制文件的主要接口和数据库。它允许我们在导入时自动运行其他python模块,从而驱动我们所有的自动化分析的核心。这不仅是我们集成的主要原则,而且还驱动了大量的模块化静态分析操作,因为这些工具和库可以方便地位于同一台机器上。我使用了Cuckoo来推动我的动态沙箱分析,让我们可以运行二进制文件,并且丰富的虚拟机内省,网络流量,甚至清除内存。最后,我们将MISP作为用户界面,并以编程方式集成威胁情报数据。 MISP可以订阅Feed并丰富我们的其他工具,如Viper和Duck,从而使我们能够以可管理的方式整合威胁情报。

    服务器设置

    我为每个机器都装上了一个新的Ubuntu 16映像,并将它们构建在AWS的EC2上。我还为他们设置了各种配置文件中的域名,允许我们打开和关闭它们,只需要更新DNS条目即可。对于开发人员的使用体验,tmux和zsh已经添加了一些自定义配置。人们可以在tmux会话中协同使用这些服务器,以便一个人可以使用像radare2这样的工具进行逆向工程,另一个人可以通过观看tmux会话来学习。

    除此之外,我还安装了一些额外的工具和配置:tmux,zsh + oh-my-zsh,vim + vim-plug和fzf等。

    Viper

    Viper是一个非常惊人的二进制分析平台和框架,它是用python编写的。由于其可扩展,所以就使得集成和编写新模块变得非常简单。

    此外,我们可以自动化的将Python工作人员对我们导入的新文件启动操作进行抽象处理,Viper将保存分析并进行审查。 stock w/ Viper包括:通用散列,模糊散列(pydeep),元数据(exiftool),提取特殊字符串和地址(IPv4 / v6,域名),检测已知的shellcode模式,发送样品到 Cuckoo沙盒,启动反汇编程序(IDA Pro或radare2),在Malwr / Anubis / VirusTotal,XOR搜索,YARA扫描,检测普通打包程序(PEiD),imphashing,数字签名分析以及对几个名字有趣的进行多次编译。

    它还包括大量不可执行文件格式的分析选项,例如HTML操作,提取嵌入式脚本,Java小程序分析,Flash对象分析,图像分析,pdf分析,多个OLE分析和更多的二进制格式功能。它还包括解析许多Java格式,邮件MIMES和一些防病毒文件的功能。我还添加了ClamAV服务集成,VirusTotal和Malwr集成,用于一些额外的威胁intel,但是在撰写本文时,Malwrs API似乎是错误的,这意味着我必须建立自己的私有沙箱解决方案。

     基于 Viper 的二进制软件自动分析框架

    我最兴奋的部分之一是使用Viper框架来进行YARA扫描,并根据我一直在使用的自定义YARA规则自动标记我的文件。 这些YARA规则检测二进制文件的特殊属性,例如:类型,语言,加密原语,易受攻击的功能等。 我已经扩展了在这里使用YARA规则进行二进制分析的想法。

     基于 Viper 的二进制软件自动分析框架

    我认为Viper的真正实力在于自动化了许多这些模块,因为它们已经被内置并且可以配置为在导入时运行。在上图中,您可以看到许多这些模块正在导入,以及YARA扫描,将标签和分析笔记自动添加到二进制文件。此外,我在社区中发现了很多自定义脚本,我甚至可以编写一些我自己的简单模块作为POC。我未来的计划是将更多的下列工具集成到viper模块中,这利用任意的python库是非常容易的。我还设置了许多intel集成的威胁分析,例如VirusTotal,Malwr(虽然这似乎是atm),ShadowServer,XForce和MISP集成,我们将在下面的自己的帖子中讨论这些威胁。这些与在conf文件中配置一样简单,并确保Viper具有对其他服务的直接防火墙访问权限。下面你可以看到我的示例模块在行动,但一定要查看代码,看看这些真的会变得很容易。

     基于 Viper 的二进制软件自动分析框架

    我主要使用它的API功能来运行Viper服务器,这样我可以使用本地脚本将二进制文件提交到平台,并最终将工具(如chatbot或collectors)集成到Viper平台,以驱动其自动化。我们甚至可以使用自定义脚本与API来远程驱动我们的任何自动化。然后我们有一个二进制文件的私人收藏,这些二进制文件被自动分类,标记,可搜索,我们可以用远程和可管理的方式与他们进行交互。

    最后,我在这个框上安装了一些其他工具来进行协同倒置,最着名的是Radare2(用于反汇编)和Manticore(用于符号执行)。我的想法是使用Manticore API或r2pipe编写脚本,以便将这些更深入的静态分析功能整合到Viper中。我还添加了Kaitai-struct,以引用我们可能遇到的各种二进制文件的语法和协议。原因在于这样可以检验我们二进制结构的语法或协议,所以我们可以看到我们的样本是否正常。除此之外,我还为 awesome, modular,pythonic数据转换库添加了Pure Funky Magic脚本。

    Cuckoo

    这是我们的动态沙盒二进制文件的主要集群。我对Cuckoo的灵活性和可定制印象非常深刻。我发现它比过去使用的任何专有工具更可自定义。个人分析vm设置特别重要,因为您必须确保安装了相应的易受攻击的软件,代理将在其启动时进行启动,虚拟机具有正确的网络配置。一旦我的vms都配置完美,我将它们作为一个OVA导出并将其发送到云端。在将来,我想使用vmcloak测试设置Cuckoo图像。我们目前的设置是一个嵌套的基于AWS的Cuckoo,它限制了我们的32bit图像。这个设置涉及许多经验教训,我计划在不久的将来在ESXI上重新构建这个基础设施,使用类似于Cuckoo修改的东西。也就是说,如果您发现自己在使用Cuckoo与VirtualBox,以下命令是非常有用的:

    vboxmanage import “your_ova_name”
    vboxmanage list vms
    vboxmanage list runningvms
    vboxheadless --startvm “your_vm_name”
    vboxmanage snapshot "your_vm_name" take "vm_snapshot_name" --pause   
    vboxmanage controlvm "your_vm_name" poweroff  
    vboxmanage snapshot "your_vm_name" restorecurrent  
    vboxmanage snapshot "your_vm_name" list
    vboxmanage snapshot “your_vm_name” restore “vm_snapshot_name”
    vboxmanage unregistervm “your_vm_name” --delete
    vboxmanage guestproperty enumerate “your_vm_name”
    vboxmanage modifyvm “your_vm_name” --hostonlyadapter1 “vm_network”
    vboxmanage modifyvm “your_vm_name” --nic1 hostonly

     

    我使用API功能来运行Cuckoo,将其与Viper集成。重要的一点是要注意,默认情况下,API没有auth,所以我们使用专用网络和适当的防火墙规则来实现简单而安全的安装。您还可以编写自己的Cuckoo分析脚本,并将其集成到MISP实例中,以进行 threat Intel enrichment。

    基于 Viper 的二进制软件自动分析框架

    MISP

    我们将使用MISP进行信息共享和数据规范化。通过它可以制作,配置和集成到Viper,以便我们可以轻松找到新的样品或分享我们的结果。当然,有了它之后真正的好处是订阅其他资讯,以获得相互合作的威胁情报,并将其应用于我们的工具。 有关如何使用MISP和Viper的更多信息,我就不在这里详述了。 这是一种以便宜的方式管理私人threat intel,获取公开资讯以及对我们自己的报告进行分析的好方法。

     基于 Viper 的二进制软件自动分析框架

    当然,也会有一些其他的二进制分析框架看起来很有趣,并且我在寻找构建这个开源分析平台时也遇到过不少状况。但我最终选择了上面的解决方案,因为它们都是通过Python编写的并且易于彼此集成。也就是说这其实是比较适合我个人的解决方案,因此为了让您有更多收获,我在下面也列出了可能适用于您的解决方案:

    Mastiff是一个比较旧的二进制分析框架,它在功能方面看起来很有前途,但现在其开发者方面看起来像是有些放弃了。

    FAME是一个很酷的恶意软件分析框架,但它看起来纯粹是为了恶意软件分析,因此也就缺乏了我对CTF或逆向工程所需求的重要的分析功能。

     StoQ看起来非常有希望作为企业规模的二进制分析框架,它具有分布式工作队列和收集器。 StoQ与Viper有很多重叠,它包含许多付费服务模块,看起来很好维护,并且很容易具有很高的品质。

    LaikaBOSS是一个递归和模块化的文件分析框架。 LaikaBOSS看起来非常有希望,但是其文档上看起来很复杂并且内容相当少。

    CRITS是一个类似于MISP的威胁共享信息平台,但是我选择了MISP,因为它与我正在使用的其他框架有现有的集成。




    原文发布时间为:2017年6月29日
    本文作者:鲁班七号
    本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
    展开全文
  • 它完全用 Python 编写,适用于希望以自动方式执行静态分析的某些方面而不与二进制代码“失去联系”的逆向工程师和恶意软件分析师。 特征 控制流分析,使用结构分析。 支持除goto 、 break 、 continue之外的所有 ...
  • 找出二进制中的0Welcome to my guide on dynamic binary instrumentation (DBI). In this article, we’re going to learn the evolution of general binary analysis methods and how to perform some common ...
  • 本公开课旨在: · 给未接触过二进制逆向安全的朋友进行“技术性科普” · 给想入门二进制逆向安全的朋友进行“知识以及技术方向”框架的梳理 · 对二进制逆向安全中的“游戏逆向分析”进行学习框架的梳理与技术演示
  • git pull r2pm init r2pm update ...rabin2是radare2套件中的一个工具,主要用来提取二进制文件中的信息 rabin2 -qi classes.dex | grep -i -e sms -e bluetooth -e install -e PackageManager...
  • 这不是我为r2con比赛写的第一篇writeup,你也可以看看用Radare2逆向一个GameboyROM,确保你不会错过我赢得那次比赛的过程中的收获与体会。 这篇文章是为已经熟悉Radare2的人所写的。如果你不是,我建议
  • bomb.c:代码框架,bomb主程序即main函数,没有细节。 bomb: bomb的可执行程序。linux下的可执行程序,需要0或1个命令行参数。 、bomb.c文件 L34’' FILE *infile; --------------- 变量:“从外部文件输入...
  • CSAPP实验-二进制炸弹writeup

    千次阅读 2019-07-15 15:44:38
    0x01 题目概述 二进制炸弹是《深入理解...我们需要通过对二进制文件进行逆向分析,得到能避开炸弹爆炸的合理的输入。 0x02 涉及知识点 汇编语言的基础,逆向分析工具的使用。 0x03 实验环境 Ubuntu16.04LTS,IDA Pro...
  • 具体情况是这样的, 数据库保存的是二进制图片,然后用逆向工程生成的po 图片转化为string类型了,请问怎么将这个图片显示到jsp页面,框架为ssh
  • 二进制学习路线(暂定)

    千次阅读 2019-11-03 17:22:22
    这个是 我们学校团队要求,,,, 让写一个二进制 (pwn/re)的学习路线,, 然后让大一 大二的学弟学妹们看看,, 我直接写到我博客里面 有什么错误或者问题还请各位指教 逆向学习路线 PC逆向方面 入门PC逆向,...
  • 根据对代码块d的理解,可以写出一个大致的c代码框架: 1: for ( int i = 0; i ; i++) 2: { 3: addr = 0x804a5fc; 4:   5: for ( int j = 0; j [i]; j++) 6: addr = *(addr + 0x8...
  • 二进制安全学习指南

    2021-07-12 13:39:15
    Linux/Android Freebsd Apple IOS Sony PS4 漏洞挖掘与利用实战–准备 **学习历史漏洞 - CVEs** **挖掘新漏洞** 逆向分析 + 代码审计 快速逆向与快速理解 对漏洞的感觉 模糊测试 测试框架 样例生成的...
  • Radare2 是一个为二进制分析定制的开源工具。有大量(非原生的)Linux工具可用于二进制分析,为什么要选择 Radare2 呢? 为什么我需要另一个工具? 如果现有的 Linux 原生工具也能做类似的事情,你自然会问为...
  • PREF, 可移植逆向工程框架 PREF ( 可移植逆向工程框架) 旨在成为逆向工程的瑞士军刀。 基本思想是对运行Qt5的每个平台都有一个用于二进制和文件格式分析的软件。 插件功能:010编辑器脚本/模板兼容性。二进制文件
  • 文章目录注实验环境:实验内容实验步骤调试过程及实验总结附录 ...二进制炸弹实际是由C语言源程序生成的可执行目标代码,主程序可参考bomb.c。运行时,会按次序提示用户输入3个不同的字符串。如果输入的字
  • 概述:Firmadyne是一款自动化和可裁剪的嵌入式Linux系统固件分析框架。它支持系统固件逆向QEMU嵌入式系统模拟执行。使用它模拟路由器固件执行路由器,然后可以基于模拟环境进行路由器漏洞挖掘、渗透攻防。本文详细...
  • 和现代语言一样,Object-C是一种反射式语言,他可以在运行时查看和...Object-C实现了smalltalk 消息队列框架,使得其中的方法实际上并不是传统意义上的呗调用,而是被发送消息。因此,如果你知道该收听哪个电台,就能
  • 导读:Radare2 是一个为二进制分析定制的开源工具。 本文字数:23563,阅读时长大约:27分钟https://l...
  • 在研究项目AnaStaSec中,AMOSSYS提供了许多关于如何静态检测二进制代码中的此类漏洞的介绍。在这篇博文中,我们将向读者阐述学术界在如何检测这种类型的漏洞方面提出的各种建议。当然,他们当前的目标是定义一种通用...
  • 超有趣的二进制—高效位运算秒懂

    千次阅读 2019-05-20 17:38:23
    位运算速度要快于整数运算的,特别是整数乘法,需要10个或者更多个时钟,若果采用移位操作一个或者2个时钟就够了,不过由于我们常采用十进制来进行算术运算,对二进制的位运算不够熟悉,阅读起来会比较耗费精力,...
  • 时,二进制搜索树为:     根据前面分析,当给定 d1 时, func4 返回结果是搜索路径上的所有值之和。例如: 假设 d1 = 7 , func4 返回 7 。如果 d1=1 , func4 返回 7+3+1 = 11 。 当要求 func4 返回 ...
  • Rizin是便携式的,可用于分析二进制文件,反汇编代码,调试程序,用作取证工具,可打开磁盘文件的可编写脚本的命令行十六进制编辑器等等! 要了解有关Rizin的更多信息,您可能需要阅读Rizin的官方书。 如何安装您...
  • Triton是一个动态二进制分析(DBA)框架。 它提供了内部组件,例如动态符号执行(DSE)引擎,动态污点引擎, x86 , x86-64 , ARM32和AArch64指令集体系结构(ISA)的AST表示, SMT简化过程, SMT求解器接口以及...
  • 作为麒麟框架团队核心成员,孔子乔和武晨旭在演讲中阐述了麒麟框架在MBR实模式分析中的独特作用,并展示麒麟IDA插件如何为IDA Pro带来插桩分析、可视化模拟和反混淆等高级二进制分析功能。麒麟框架所带来的前所未有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,720
精华内容 2,288
关键字:

二进制逆向框架