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

访客4年前关于黑客接单1187

“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以后,我能根据数据变量定义清晰地认证它是恰当的比照。

相关文章

上海公司账户开户流程(公司基本帐户开户操作流程)

  注册公司必须要开立银行基本户,人们通常所说的银行开户也是指开立“银行基本户”   签名之后等待工商审核,审核通过后前往工商局打印营业执照正副本,接下来刻三章(公章,财务章,法人章)或者五章(公章,...

什么叫cpu(CPU在计算机运行中起哪些作用)

什么叫cpu(CPU在计算机运行中起哪些作用)

CPU是中央处理器。是计算机的运算器与控制器。 CPU内部结构大概可以分为控制单元、运算单元、存储单元和时钟等几个主要部分;运算器是计算机对数据进行加工处理的中心,它主要由算术逻辑部件(ALU:Ar...

怎么在qq里当黑客,黑客软件屏锁软件,黑客是如何拿下别的网站的

//DES加密[] encrypt([] data,String key){PC1播送ARP恳求,问询IP地址为192.168.3.1的主机的MAC地址。 PC3收到播送帧,宣布ARP应对,告知PC...

找的黑客犯法了,刺激战场亚服免费挂黑客网

一、的犯法了怎么找黑客 1、黑客找网有些人也是黑客,比如电子和音乐,你可以在任何更高水平的科学和艺术中找到它。的犯法了刺激战场亚服免费挂黑客的存在是由于计算机技术的不完善。从某种意义上说,计算机的安全...

华盛顿黑客(华盛顿被攻击)

华盛顿黑客(华盛顿被攻击)

本文目录一览: 1、美国遭到黑客入侵给我们的启示是什么? 2、哪国黑客的最强? 3、一部06或07的美国电影 4、为何美国17州和华盛顿特区进入紧急状态? 5、有部电影讲述美国特种部队...

如何远程控制iphone手机(怎样远程控制iphone手机)

如何远程控制iphone手机(怎样远程控制iphone手机)

怎么利用icloud远程控制苹果手机 打开手机的「设置」应用。 在设置界面中,点击你的 Apple ID(一般位于顶部)。 在 Apple ID 的页面中,选择「查找」选项。 在查找页面中,确保「查找...