Binary Ninja(逆向编译平台),提供了许多的方式来修改二进制文件,大致可以分为低级和高级模式两种,其中低级模式主要就是原始码的十六进制编辑和汇编模式,高级模式可以使用内置的C编译器直接书写C代码来进行操作!
现代UI
并非所有的黑客都会忽略UI/UX。Binary Ninja使用了现代的UX范式,如果默认的主题不适合你,你可以使用众多替代品中的一种。
广泛的API
我们的Python和C++绑定能够与平台的几乎所有元素进行交互。UI、ILs、反汇编、头文件、我们的类型解析器等等。
强大的分析
代码和数据交叉引用、基于置信度的类型传播、值集分析等--所有这些都是自动完成的,并且能够以一种与架构无关的方式进行脚本。
二进制忍者中级语言(BNIL)
我们创建了一个强大而又易于阅读的IL系列,涵盖了分析的多个阶段。最低级别接近汇编,更高的级别接近反编译输出。对于不支持的架构,实现提升器也极其简单
HEX编辑模式
是最直观的修改方式,也是最简易的一种修改方式。如上图所示,可以通过右下角的菜单按钮或者热键H打开(^ + H),这里要注意一下,这里介绍的热键如果没有效果,可以去参考 用户文档.
这种编辑模式下,可以一边修改,一边实时的看修改结果,从而到达比较高的修改测试效率,一次修改过程大致的操作步骤如下:
先在图形视图或者线性汇编试图中找一个准备修改的函数
使用菜单 view -> Split进行一次屏幕视图拆分
现在可以随意调整拆分的视图,看着舒服就行,把其中一个视图切换到hex编辑模式,并修改一下上面选定的函数。你这边修改,另一个视图中就会看到同步的修改结果展示,一般情况下,如果修改一个比较大的函数的时候,操作反应可能会慢一点。编辑器也支持大块的复制粘贴操作。
结构体实时修改
这个实时预览功能说起来比反汇编字节码有用多了, 这里给出一个实时修改结构体并查看结构体解码结果的的演示视频:
这里本来是一段演示视频,但是是youtube的视频源,没有办法观看,请在原文链接中翻墙观看(sorry),视频地址是:http://www.youtube.com/embed/sCKiG_xdNSc
点两下鼠标就搞定
上面介绍的方法,需要你对二进制的内容甚至是系统架构有所了解,对于大多人来说可能还有点困难,但是在Binary Ninja这个平台上,你甚至不必了解那么多的知识也可以通过平台来完成二进制文件的修改工作。比如,专有的 右键修改菜单,有了这个菜单的帮助,你只需要点两下鼠标就可以了
这个弹出菜单里面有不少专门用来修改条件分支跳转的功能,通过这些选项你可以强制性的把一个条件分支改成 永远跳转或者永不跳转。使用 Invert Brach功能,可以进行条件反转,这些功能使用起来很简单命令,但是确实能很方便快速的实现你想要的结果。
还有其他的一些有用的功能,比如把一些汇编指令给Nop掉,也就是说,你选中一条指令,然后用这个功能来进行Nop指令替换,这里系统还会自动的进行剩余空间填充,比如原先的指令占4个直接,你直接把这条指令给Nop调用,那么剩下的3个字节系统会自动的给你也填充成Nop指令,这个功能对于那种变长指令系统还是很实用的。
这里需要注意的一点是, 如果你把鼠标放到一个条件分支上,这个时候菜单里面可能没有 Convert to NOP这个选项,因为和 as Never功能是一样的,软件显示一个就够了。
单行编辑
在Patch这个菜单中,还有一些隐藏的菜单项,比如单行编辑功能。使用单行编辑功能,你可以快速的以汇编形式修改单行指令。选择一条需要修改的指令,按快捷键e或者使用右键菜单Patch/Edit current line选项,然后就可以看到选中那条汇编指令就变成了可编辑状态,编辑完成之后按回车即可,Binary Ninja会自动把修改结果应用到二进制文件中去。
如果编辑汇编的时候,新指令比原先的指令长度小的话,工具会自动填充余下的空间为NOP指令,比如在 x86 x64这些变长指令系统上。
附加说明:工具会尽最大努力保证汇编和反汇编的正确性, 如果遇到指令错误或者不支持的指令,可以联系我们,把这些特殊的情况跟我们沟通一下
2.0.2170 (2020-05-22)
- 修正了。解决了加载数据库时的崩溃问题
加载全部内容
RubyMine2020破解版(附激活码)312.3M251人在玩JetBrainsRubyMine2020是一个全新的为Ruby和Rails开发者准备的功能强大、口碑极佳的电脑编程工具,RubyMine破解版能够为用户提供Ruby开发以及测试协助等一系列功能。能够切实有效的实现父方法和子方法之间无缝跳转的操作。欢迎大家下载体验。
下载童程在线少儿编程客户端119.9M83人在玩童程在线少儿编程客户端是一款针对低龄儿童的编程学习软件,其实给孩子学习编程并不是要孩子学得有多厉害,最重要的还是从小培养孩子的编程兴趣,以及培养孩子的编程思想,有需要的朋友快来下载体验吧。
下载GitHub Copilot(人工智能自动完成)195KB66人在玩GitHub Copilot是GitHub和OpenAI推出的编程工具。该软件可以帮助用户纠正代码中的错误,并可以根据用户的代码上下文自动编写后续代码,有效提高您的工作效率。欢迎有需要的用户下载使用!软件介绍Gi...
下载citespace57.7M59人在玩citespace官网下载,citespace中文版下载是专为研究科学的用户打造的可视化文献分析工具,软件可以对科学文献当中的趋势和模式进行分析,然后将分析结果可视化,可以帮助您快速找到领域发展的关键点,并将领域的发展演进出来,从而更好的作出决策。
下载Unity3D下载中文版135KB59人在玩 Unity3D,简称U3D,是一款3D动画游戏开发工具。现在很多终端游戏、页面游戏、手机游戏在开发3D效果的时候都用这个软件,证明它是一款超级3D画面效果制作工具。功能特点:是一款完全集成的专业游戏引擎...
下载老鹰AE脚本管理器358KB58人在玩#8203;老鹰AE脚本管理器是一款非常优秀的AE脚本管理工具,本版已经全部汉化可供各位用户更好的使用,它支持最新版的AE2018,内含脚本管理器、图层排序、圆形排列等脚本等,需要的用户可以到腾牛网免费下载。
下载乐高mindstorms ev3240.0M49人在玩 乐高mindstorms ev3是一个非常好用的编程学习工具,在这里你可以体验极限头脑风暴编程,让你不再局限于课程中的知识,可以让学生了解更多的编程知识,拓展思维。有兴趣的朋友可以快速下载。软件说明 e...
下载我的世界编程猫MOD编辑器185.9M38人在玩我的世界编程猫MOD编辑器是一款专门针对我的世界这款游戏所推出的辅助工具,这款软件的操作方法非常简单,用户无需掌握任何编程知识便能够很轻松的制作出各种类型的mod,这样就能够极大的提升游戏的可玩性。
下载mblock3慧编程121.8M34人在玩mblock3慧编程是款孩子编程启蒙学习软件。软件通过与mbot机器人互动,为孩子提供一个游戏学习环境,可通过完成各类任务、与机器人互动等方式来进行编程学习,从小就可以培养孩子的编程思想,感兴趣的朋友快来下载吧。
下载梦龙网络计划软件109.0M28人在玩斑马梦龙网络计划2018是广联达斑马·梦龙网络进度计划软件,斑马·梦龙网络计划软件是专业、易用的网络计划工具,可以辅助项目通过关键线路+前锋线进行动态管理,打通PDCA循环,让项目进度真正可控!
下载