“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以后,我能根据数据变量定义清晰地认证它是恰当的比照。
目前中国顶尖黑客是谁? 1、而且这个中国第一黑客是,袁仁广,人称袁哥,从事漏洞挖掘和漏洞攻防研究近20年,国内公认的顶级白帽黑客。从小喜欢数学,1997年毕业于山东大学数学系。2、截至2023年,中国...
叮咚叮咚,一声脆响的声响从手机上里传出来,满怀欣喜认为是男友或是女友发...
每日要闻如何强制登录别人微信(不用密码登录别人微信)你好,不用密码那也要验证注册时的手机号码登录的,即手机验证码登录没密码登录别人的微信 有别人的微信帐号和密码,不能登录他的微信,还必须要知道验证码...
能接触到对方手机的话可以提前安装软件实现,只有号码的话只能靠定位系统,建议你网上找下安寻GPS在线定位系统,网友反馈误差还可以。 私人很难定位找人,只有公安机关才能定位别人。如果你受骗了,可以在腾讯网...
瓦赫宁根大学及研究中心(Wageningen University & Research,简称WUR)始建于1876年,是荷兰最早提供农业教育的院校。 一百年来,瓦大致力于培养农业、食品科...
import java.util.regex.Matcher;实验东西:我国菜刀125.76.227.70比方什么password username点击页面下方的 [我赞同] 进行下一步;(不赞同不可...