我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:爱彩网 > 二进制 >

CTF逆向不用愁自动化二进制分析!

归档日期:06-10       文本归类:二进制      文章编辑:爱尚语录

  在实际逆向分析的过程中,经常遇到一些关键函数或代码段被原作者使用一些代码混淆技术保护起来。代码混淆是将原代码转换成另一种功能上等价,但实际上难以阅读和理解的代码。经过混淆的代码中,常常夹杂着大量无意义的花指令,大多数反汇编工具将不能很好的进行识别,通常会将其反汇编成有效的指令,需要浪费大量的时间和精力人工去分析。这时就可以使用angr用于辅助逆向分析。

  本期安仔课堂,ISEC实验室的张老师为大家分析自动化二进制,从此CTF逆向分析不用愁!

  Angr是一个基于符号执行的二进制程序分析框架。能对二进制程序进行反汇编并转化为中间语言表示、符号执行、程序插桩、控制流分析、数据相关性分析。

  符号执行是一种重要的形式化方法和软件分析技术,通过使用符号执行技术,将程序中变量的值表示为符号值和常量组成的计算表达式,符号是指取值集合的记号,程序计算的输出被表示为输入符号值的函数,其在软件测试和程序验证中发挥着重要作用,并可以应用于程序漏洞的检测。

  符号执行的发展是从静态符号执行到动态符号执行到选择性符号执行,动态符号执行会以具体数值作为输入来模拟执行程序,是混合执行(concolic execution)的典型代表,有很高的精确度。

  二进制的装载组建是CLE(CLE Load Everything),它负责装载二进制对象以及它所依赖的库,生成地址空间,表示该程序已加载并可以准备运行。

  PyVex是中间语言,Angr使用Valgrind的中间语言——VEX来完成这方面的内容。VEX中间语言抽象了几种不同架构间的区别,允许在他们之上进行统一的分析。各种中间语言在设计理念上有很多的共通点

  这个模块主要专注于将变量符号化,生成约束式并求解约束式,这也是符号执行的核心所在,在Angr中主要是利用微软提供的z3库去解约束式。

  有一个程序test,该程序要求两个特定的输入,以获得正确的结果。在IDA中简单分析test,如下图:

  complex_function使用了大量的代码混淆技术,无法在IDA中生成反编译代码,难以直接分析,这时就能用Angr自动求解。

  在加载二进制文件后,需要加载二进制文件到内存中,Angr将使用CLE模块去完成加载,与Project相同可以查询一些关于程序加载的信息。

  Angr以block为单位分析代码,我们可以从block中获取许多有用的信息,例如代码汇编及指令数。

  Angr使用SimState保存程序执行状况,包含程序的内存、寄存器、文件系统数据......任何会在执行中存在可修改的数据都可以在SimState中找到。

  Simulation manager是angr重要的接口之一,用于模拟执行。我们先使用程序的初始状态创建simulation manager,然后执行符号执行,可以看到我们进入了下一个block。

  在多数情况下,我们不会模拟计算整个程序,而是选择部分代码进行模拟,以减少计算量。同时我们也要手动修复寄存器以及堆栈,保证程序可以正确执行。

  Claripy是Angr的求解器引擎,利用的是微软提供的Z3库解约束式,password是所要求解的变量。

  如上,x==888888并且y444444就会输出Good!,由人工计算能很快得出结果,但若希望程序自动计算出有效的x与y的值,最简单的方法是使用两个随机数输入,尝试x和y的随机值,很明显,在获得答案前需要大量重复的计算。

  对于符号执行而言,x和y被视为符号变量,最开始x和y也是两个随机的输入,例如可以将其视为x=y=1。在具体执行中,第2行的z将会被设置为表达式2y, 第3行遇到第一个分支,因x(1)≠888888而失败,这里会得出一个不等式x≠888888,这个被视为路径条件,对于所有路径条件判断为true的输入而言,它们的执行路径是相同的。

  在一般情况下,希望程序尽可能遵循不同的执行路径,修改遇到的最后一个路径条件x ≠888888,改为x = 888888。然后使用一些自动求解器来构造满足当前路径条件的输入变量x和y。在这种情况下,程序可能得到求解出的值x = 888888,y = 1。

  安胜作为国内领先的网络安全类产品及服务提供商,秉承“创新为安,服务致胜”的经营理念,专注于网络安全类产品的生产与服务;以“研发+服务+销售”的经营模式,“装备+平台+服务”的产品体系,在技术研究、研发创新、产品化等方面已形成一套完整的流程化体系,为广大用户提供量体裁衣的综合解决方案!

  我们拥有独立的技术及产品的预研基地—ISEC实验室,专注于网络安全前沿技术研究,提供网络安全培训、应急响应、安全检测等服务。此外,实验室打造独家资讯交流分享平台—“ISEC安全e站”,提供原创技术文章、网络安全信息资讯、实时热点独家解析等。

  不忘初心、砥砺前行;未来,我们将继续坚守、不懈追求,为国家网络安全事业保驾护航!

  (免责声明:本网站内容主要来自原创、合作媒体供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )

  19家OEM厂商将采用高通骁龙X50 5G基带:明年5G手机将陆续上市

  :没看懂: 1.其最大的优势在于,相同体积下的电池存储能力大约是锂电池的45%,但却可以在12分钟内完成充满电 2.绝对是个不错的消息,因…

  韩媒曝三星Note10将用石墨烯电池 12…290185699:看起来亮点一堆 有实际作用的没有一个 CUP ai 没有什么实际意义 现在CPU功能过剩 电池 华为就是糊弄消费者,石墨烯,人家专业的公司都…

  石墨烯被启用 华为手机能否超越苹果290185699:寒武纪人家是出架构的 小编把一大堆芯片公司拿来比较 就像ARM架构 除非你芯片公司绕开我的架构,自己搞自己的架构 搞一个独立的…

  华为发力AI,让供应商寒武纪很受伤?52RD网友:主要现在的竞争对手太强了,比华为技术差,比OV产品差

  小米市值跌破400亿美元 雷军说的“股…52RD网友:独立也挺好,应该可以进入美国澳大利亚了

本文链接:http://pikeducation.com/erjinzhi/351.html