首页 > 其他分享 >Binary Ninja (二进制忍者)简介

Binary Ninja (二进制忍者)简介

时间:2023-06-18 22:04:04浏览次数:48  
标签:忍者 Binary 反编译 二进制 视图 反汇编 支持 Ninja 加载

https://binary.ninja/

专为新手打造的反汇编器

 

第一印象

Binary Ninja (二进制忍者)简介_反编译

 

Binary Ninja (二进制忍者)简介_二进制文件_02

 

 

 

 

软件简介

虽然IDA在反汇编器的地位无人可以撼动,但是新手使用IDA往往也会感到无所适从。Binary Ninja以其精美的界面和便捷的交互方式,使得新人简单了解后就能很快上手。

运行平台:支持windows、linux,macos。具体来说, Linux:官方支持64位的Ubuntu最新的LTS和最新的稳定版,许多其他发行版虽然没有官方支持,但开箱即用。 请参阅我们的用户文档,了解更多关于Linux的具体问题。 MacOS:10.13及更新版本(我们通常支持最新的主要版本和至少一个主要修订版,旧版本可能会工作,但不支持。 Windows。 Windows 10 x64 (虽然官方不支持,但目前Windows 8 x64可以使用,如果安装了所有可用的补丁,Win 7 x64也可以使用)

版本:2.1.2263(2020-07-10),演示版 免费  个人 299美元   商业 1199美元   企业  联系官方

输入:任何文件都可以作为原始二进制文件加载,并可以在任何偏移量处反汇编。 当前,我们为以下文件格式提供了官方加载程序: PE /COFF  ELF Mach-O(目前不支持fat文件,建议使用man lipo 手动提取) .NES(通过示例插件) 原始二进制文件(您可以使用“ P”热键或原始十六进制右键单击上下文菜单或线性视图中的在原始二进制文件上轻松地从任何体系结构创建函数) 此外,第三方加载器有助于在不编写自己的加载器的情况下以特定偏移量加载二进制Blob。Binary Ninja包含了对不同处理器的不同程度的支持。我们根据是否支持反汇编、提升lifting、内嵌式汇编编辑(也包括插入原始的汇编块)和C编译(使用我们自己的内置编译器SCC),对每个架构的支持进行了如下细分。

Binary Ninja (二进制忍者)简介_二进制文件_03

 

 

文档:https://binary.ninja/support/#documentation

盈利:收费可试用

组织:Vector 35

开源:否。之前发布过python写的开源反编译工具,但是与这个二进制忍者没有共享代码。

优点:美而简,云反编译 https://cloud.binary.ninja/

缺点:支持的文件和架构太少,文档少,收费,只专注于静态分析工作没有本地调试环境只能用插件binjateon

 

 

快速上手

将文件拖入即可

5种标准视图,如图

Binary Ninja (二进制忍者)简介_二进制文件_04

 

 

 右下角点开,有 高ssa、高、中、低、反汇编,5种,默认是高就是反编译视图,下来就介绍一下这几个视图区别

下来我用IOLI-crackme中的linux下的 crackme0x00 代码为例子讲解,代码可在github上找到。为了方便对比我把忍者中的代码粘贴到了notepad++中,箭头表示对应关系,红框表示增加的内容,黑框表示黒域,黒域就是忍者无法解释的部分,可以叫做间隙或raw

从代码中我把main函数反编译结果汇总了,我们可以看到,高级是伪c代码,反编译效果不错,不过少了一条if的分支没有解析出来,放到了黒域中。高级别最接近源码,中与高相似,中把指针显示出来了。

Binary Ninja (二进制忍者)简介_反编译_05

 

 低级别和反汇编相似,低级别显示了序言尾声、寄存器、堆栈和部分指令。反汇编视图显示了所有的指令

Binary Ninja (二进制忍者)简介_二进制文件_06

 

标签:忍者,Binary,反编译,二进制,视图,反汇编,支持,Ninja,加载
From: https://blog.51cto.com/gklbb/6509805

相关文章

  • 利用Binary Hash Codes的深度图像检索
    1.概述本文的重点:图像的binaryhashcode的生成方法两阶段的检索方法——coarse-to-finesearchstrategy2.基于内容的图像检索2.1.基于内容的图像检索基于内容的图像检索(Content-basedImageRetrieval,CBIR)旨在通过对图像内容的分析搜索出相似的图像,其主要的工作有如下两点:图像......
  • RuntimeError: Error building extension ‘fused‘&FAILED: fused_bias_act_kernel.c
    RuntimeError:Errorbuildingextension‘fused’&FAILED:fused_bias_act_kernel.cuda.o&ninja:buildstopped:subcommandfailed.问题如下:RuntimeError:Errorbuildingextension‘fused’:[1/3]/usr/local/cuda/bin/nvcc-DTORCH_EXTENSION_NAME=fused-DTORCH_......
  • 算法 in Go:Binary Search(二分查找)
    算法inGo:BinarySearch(二分查找)BinarySearch(二分查找)BinarySearch(二分查找)猜数1、2、3、4、5、6、7、8排好序一个集合,先从中间开始猜,根据提示就可以排除一半,在剩余的一半里,再从中间开始猜,依此类推,这就是二分查找。BinarySearch(二分查找)接收什么参数,返回什么值输入:......
  • leetcode 693. Binary Number with Alternating Bits
    Givenapositiveinteger,checkwhetherithasalternatingbits:namely,iftwoadjacentbitswillalwayshavedifferentvalues.Example1:Input:5Output:TrueExplanation:Thebinaryrepresentationof5is:101Example2:Input:7Output:FalseExplanation......
  • leetcode 637. Average of Levels in Binary Tree
    Givenanon-emptybinarytree,returntheaveragevalueofthenodesoneachlevelintheformofanarray.Example1:Input:3/\920/\157Output:[3,14.5,11]Explanation:Theaveragevalueofnodesonlevel0is3,onlevel......
  • leetcode 669. Trim a Binary Search Tree
    GivenabinarysearchtreeandthelowestandhighestboundariesasLandR,trimthetreesothatallitselementsliesin[L,R](R>=L).Youmightneedtochangetherootofthetree,sotheresultshouldreturnthenewrootofthetrimmedbinarys......
  • leetcode 617. Merge Two Binary Trees
    Giventwobinarytreesandimaginethatwhenyouputoneofthemtocovertheother,somenodesofthetwotreesareoverlappedwhiletheothersarenot.Youneedtomergethemintoanewbinarytree.Themergeruleisthatiftwonodesoverlap,thensumn......
  • leetcode 257. Binary Tree Paths
    Givenabinarytree,returnallroot-to-leafpaths.Forexample,giventhefollowingbinarytree: 1/\23\5Allroot-to-leafpathsare:["1->2->5","1->3"]#Definitionforabinarytreenode.#classTreeNode(obje......
  • leetcode 671. Second Minimum Node In a Binary Tree
    Givenanon-emptyspecialbinarytreeconsistingofnodeswiththenon-negativevalue,whereeachnodeinthistreehasexactlytwoorzerosub-node.Ifthenodehastwosub-nodes,thenthisnode'svalueisthesmallervalueamongitstwosub-nodes.G......
  • leetcode 107. Binary Tree Level Order Traversal II
    Givenabinarytree,returnthebottom-uplevelordertraversalofitsnodes'values.(ie,fromlefttoright,levelbylevelfromleaftoroot).Forexample:Givenbinarytree[3,9,20,null,null,15,7],3/\920/\157returnits......