Karta:一款新的二进制文件剖析和比照插件

访客3年前关于黑客接单1140

“Karta”(在德语中的意思是“map”)是IDA(一个静态数据反编译程序)的源码輔助二进制比照插件,该插件的开发设计是为了更好地比照一个十分大的二进制文件(一般 是固件文档)中的开源系统库的标记。针对这些每日都需要解决固件文档的人而言,反复反转net-snmp(一个完全免费的、对外开放源码的SNMP完成,之前称之为UCD-SNMP)十分浪费时间的。因此 ,大家急缺一种比照插件专用工具,来鉴别应用过的开源代码,并在IDA中全自动比照他们相匹配的标记。

大家最开始的开发设计关键是放到了迅速比照的全过程上,但结合实际,就发觉即便 她们尝试反向的二进制文件包括超出十万个涵数,也只是会比照一个包括300个涵数的库,而光这一全过程就必须等候好多个钟头。

事实上,出自于特性缘故而布署的启发式算法对比照結果也是有非常大危害。Karta的假阳性率极低,而真检出率很高。这促使它乃至能够用以比照大中小型二进制文件。

因而,有些人觉得Karta能够变成开发者辅助工具中的一个关键专用工具,并运用于下列情景:

1.侦查环节:明确二进制文件中应用的对外开放源码(包含他们的版本);

2.提升Clutter:比照应用的开源系统的标记,进而为反向工程省时省力;

3.搜索用例:应用已使用过的对外开放源码目录,在其中的标记早已在二进制文件中比照,便于在可实行或固件文档中轻轻松松搜索用例。

KARTA

如前所述,Karta是IDA*的源码輔助二进制比照插件,该插件有两个关键的主要用途:

1.标志:对静态数据编译程序的开放源码的准确版本开展标志;

2.比照:比照已标志的开放源码的标记;

Karta现在是开源系统的,我能在Github中寻找。

因为在不一样体系结构上编译程序开源系统库是比较复杂的事儿,因而大家一般 会根据让插件单独于系统软件运作来清除此繁杂的全过程。比如,假如我要比照libpng开源系统的1.2.29版本(它是我还在HP OfficeJet固件中应用的版本),我所要做的就是以Github拷贝它并在(文中应用的x86)机器设备上编译程序它。编译程序进行后,Karta能够形成叙述库的标准.json环境变量。应用此配备,即便 固件已编译程序为Big-Endian ARM Thumb方式,Karta插件如今还可以在固件中取得成功寻找库。

Karta由控制模块构成,IDA反编译控制模块能够被一切别的反编译控制模块更换。

找寻用例

尽管现阶段,我已经为详细介绍了好多个插件用例,但在受欢迎程序流程中搜索用例可能是最趣味的用例。下列是我还在研究过程中发觉的2个真正用例。

HP OfficeJet固件

因为在对HP发传真固件科学研究期内,我需要将用例作为调节漏洞( CVE-2017-9765 )。该漏洞容许 *** 攻击远程控制毁坏 SOAP Web 服务项目后台进程,并在受害人机器设备上实行随意编码。在进行Karta的开发设计以后,我回到固件并查验了Karta是怎样协助我开展漏洞科学研究的。

标志符插件会跟我说固件中应用的开源系统库是:

· libpng: 1.2.29

· zlib: 1.2.3

· OpenSSL: 1.0.1.j

· mDNSResponder: unknown

· gSOAP: 2.7

我能见到的确应用了gSOAP(编译程序专用工具出示了一个SOAP/XML 有关C/C 語言的完成,进而让C/C 語言开发设计web服务或客户端软件的工作中越来越轻轻松松了许多),迅速的CVE检索表明它包括一个重要的漏洞:CVE-2017-9765 。

在迅速编译程序了此版本的gSOAP的配备以后,我运作了比照器并导进了比照的标记。如下图所显示,我能见到易受攻击的编码涵数soap_get_pi与Karta比照。

反汇编的soap_get_pi涵数,与Karta比照

这对Karta插件而言是一个很好的信息,这代表着它能够在真正的情景中一切正常工作中(遗憾因为我仅仅在调节漏洞进行后才知道这一点)。

一般的闭源代码:TeamViewer

尽管在固件中轻轻松松寻找用例很便捷,但在Windows PC上应用的日常程序流程中,完成这一点就难以了,为何?在阅读文章Project Zero在WebRTC上的 *** 文章时,我发现了她们在一个名叫libvpx的库中发觉了一个漏洞:CVE-2018-6155,它能够进攻VP8视频编号技术性源码,进而危害了VP8库libvpx而不是WebRTC中的编码。因而,该漏洞有可能危害应用除WebRTC以外的全部别的库的程序流程。

这看上去很趣味,由于Project Zero尤其强调这一漏洞“有可能危害应用除WebRTC以外的全部别的库的程序流程”。因为我还在计算机上安装了TeamViewer,看上去它应当应用同样的开源系统库,让我来看一下。

因此,我还在IDA中打开了TeamViewer.exe,并在剖析全过程中运行它。因此,我都专业安装了全新版本的libvpx(1.7.0),为它撰写了一个简易的标志符,并将其加上到Karta中。因为IDA进行这一剖析的時间太长了,我立即将其终止,并运作Karta的标志符插件。从这当中明确的对外开放源码包含:

· zlib: 1.2.5

· mDNSResponder: unknown

· libjpeg: 9a

· libvpx: 1.6.1

TeamViewer不但应用libvpx(转码软件开发包),并且全是2017年1月的旧版本。

下列是Google公布的补丁下载,在其中我很感兴趣的涵数是vp8_deblock,以下所显示。

vp8_deblock涵数的编码精彩片段,易受CVE-2018-6155进攻

如今让IDA修复剖析过程,随后再次编译程序libvpx版本1.6.1的Karta配备。配备进行后,在IDA进行对二进制文件的剖析以后,我运作了Karta的比照器插件。以下所显示,比照器发觉了易受攻击的涵数:

Karta的比照数据显示它与易受攻击的涵数相对性比(用深蓝色突显)

在我将結果导回IDA以后,我能根据数据变量定义清晰地认证它是恰当的比照。

相关文章

电信怎么查流量?用代码就能查流量的方法,简

电信怎么查流量?用代码就能查流量的方法,简

很多人才换了电信的手机卡却不知道怎么查询流量以及话费,不知道打什么电话号码以及发什么短信查话费。那电信怎么查话费和流量?电信怎么用短信查话费呢?下面wed114结婚网小编为大家带来详细内容。 电...

想当黑客,黑客代码高清图片

想当黑客,黑客代码高清图片

一、想当黑客接单流程 1、找黑客流程无论软件是多么免费,对更新软件的需求总是如此。想当代码高清图片事实上,你可以在任何最高水平的科学和艺术活动中找到它,例如电子和音乐。手机可以模仿的网址想当XXX黑客...

想创业的女生做什么好(女生创业做什么项目比较好)

现在有许多 女性由于在家里带娃因此 不可以工作,可是又想挣钱,那应当该怎么办啦?大家都了解女人创业如今早已不是什么新奇的事儿了,那麼你了解女孩要如何创业赚钱快、项目投资至少、盈利最大、赚钱最快呢?合适...

c语言是一种什么语言(c语言是一种什么语言,它层次清晰)

c语言是一种什么语言(c语言是一种什么语言,它层次清晰)

本文导读目录: 1、C语言到底是什么? 2、什么是C语言? 3、C语言属于什么语言 4、计算机C语言是什么语言 5、C语言是一种什么语言? C语言到底是什么? 是一种计算机程序设计语...

布偶猫多少钱一只?猫界中的女神,真的美呆了

布偶猫多少钱一只?猫界中的女神,真的美呆了

布偶猫多少钱一只?熟知布偶猫的都被布偶猫的可爱温顺各方面的特点所吸引,对购买布偶猫的朋友都希望能够挑到心仪的,为了能够帮助到爱布偶猫的朋友,为大家整理以下资料,供大家参考,一起来往下看吧。 布偶...

倒霉熊1(倒霉熊第一季全集)

  晦气熊 【片名】Backkom 【译名】晦气熊 【年月】2005 【国度】韩国 【种别】动画/搞笑 【语言】韩语 【简介】 出自韩国人之手的可爱的北极熊Backkom的诙谐搞笑短。   全集共分...