flare-emu的分析功能被进一步拓展-黑客接单平台

访客5年前黑客资讯714
IDAPython 库 flare-emu团队新开发的一个库,这个库是依赖于 IDA Pro 和 Unicorn 模仿结构,并为让逆向工程师可以经过脚本对代码的功用进行模仿,Unicorn 支撑 x86, x86_64, ARM 以及 ARM64 架构。 flare-emu为用户的脚本模仿供给了一个易于运用并且灵敏的接口,旨在为不同的系统架构设置灵敏且强健的模仿器的一切根底作业,这样你就可以专心于处理代码剖析的问题。 5个不同的接口 它现在供给了5个不同的接口来处理你的代码模仿需求,并且它还有一系列相关的协助和东西函数。 1.emulateRange 这个API可以在用户指定的上下文中模仿一系列指令或函数,关于用户界说的钩子,它既可用于单个指令,也可以用于在调用 call 指令的时分,用户可以决议模仿器是单步越过仍是单步履行(进入函数调用)。此接口为用户供给了一种为指定寄存器和栈参数指定值的简洁办法。假如指定了字节串,则将其写入模仿器的内存,并将指针写入寄存器或栈变量。模仿后,用户可以运用flare-emu的有用效用函数从模仿内存或寄存器中读取数据,或运用回来的Unicorn模仿方针进行直接勘探。 此外, flare-emu 还供给了一个关于 emulateRange 的一个小的封装,名为 emulateSelection,可以用来模仿当时在 IDA Pro 中杰出显现的部分指令。假如 flare-emu 没有供给你需求的一些功用,你可以直接运用回来的 Unicorn 模仿器方针。 2. iterate 这个API是用来强制模仿函数中的特定分支,以抵达预期的运转途径。用户可以指定一个方针地址列表,或许指定一个函数的地址,从该函数中运用对该函数的穿插引证列表作为方针,以及一个用于抵达方针时的回调。程序会履行到给定的方针地址上,尽管当时的条件可能会跳转到其他的分支上。 与emulateRange API相似,也供给了用户界说的钩子选项,用于独自的指令和何时遇到“调用”指令。iterate API的一个比如是完成与咱们的argtracker东西相似的功用。 3.emulateBytes 这个API供给了一种简略模仿一个外部 shellcode 的办法,供给的字节不会添加到IDB,仅仅直接的模仿履行,这关于预备模仿环境十分有用。例如,flare-emu自身运用此API来操作ARM64 CPU的模型特定寄存器(MSR),该模块不是由Unicorn揭露的,以便启用向量浮点(VFP)指令和寄存器拜访。与emulateRange相同,假如 flare-emu 没有供给你需求的一些功用,你可以直接运用回来的 Unicorn 模仿器方针。 4.iterateAllPaths 这个API十分相似于iterate,只供给方针函数,不供给方针地址,它将测验查找一切途径并进行模仿。这在履行代码剖析时十分有用,由于代码剖析需求拜访函数的每个基本块。 5.emulateFrom 这个API在函数鸿沟未明确界说的情况下十分有用,由于混杂处理过的二进制文件或shellcode一般便是这样界说的。只需你供给了一个开始地址,它将进行模仿,直到没有任何东西可以模仿,或许你在其中一个钩子中中止进行模仿。这可以经过将strict参数设置为False来调用,并启用动态代码进行勘探,flare-emu将让IDA Pro在模仿过程中履行指令。 装置 要装置flare-emu,只需将flare_emu.py和flare_emu_hooks.py放入IDA Pro的python目录,然后将其作为IDApython脚本中的模块导入,flare-emu依赖于Unicorn及其Python绑定。 注意事项 flare-emu是运用新的IDA Pro 7x API编写的,它不与曾经版别的IDA Pro版别不兼容。 详细用法 尽管flare-emu可用于处理许多不同的代码剖析问题,但其更常见的用处之一是协助研究人员解密歹意软件二进制文件中的字符串。 在此,咱们简略提一下FLOSS,FLOSS是一个很好的东西,一般可以经过测验辨认字符串解密函数并运用模仿来解密在每次穿插引证时传入的字符串来主动履行此操作。可是,FLOSS并不总是可以辨认这些函数并运用其通用办法正确模仿它们。有时你需求做更多的作业。此刻,便是flare-emu大显神通的机会了。只需你运用随手了,flare-emu就可认为你节约许多时刻。下面,就让咱们来看看歹意软件剖析人员在处理加密字符串时遇到的一些常见场景。 简略的字符串解密场景 假如你现已确认了解密x86_64二进制文件中的一切字符串的函数这个函数就会处处被调用,并解密许多不同的字符串。在IDA Pro中,你可以此函数命名为decryptString。下面便是你的flare-emu脚本,用于解密一切这些字符串,并在每次函数调用时运用解密的字符串作为注释,一起记载每个解密的字符串及其解密的地址。 from __future__ import print_function import idc import idaapi import idautils import flare_emu def decrypt(argv): myEH = flare_emu.EmuHelper() myEH.emulateRange(idc.get_name_ea_simple("decryptString"), registers = {"arg1":argv[0], "arg2":argv[1], "arg3":argv[2], "arg4":argv[3]}) return myEH.getEmuString(argv[0]) def iterateCallback(eh, address, argv, userData): s = decrypt(argv) print("%016X: %s" % (address, s)) idc.set_cmt(address, s, 0) if __name__ == '__main__': eh = flare_emu.EmuHelper() eh.iterate(idc.get_name_ea_simple("decryptString"), iterateCallback) 在__main__中,咱们首先从flare-emu创立一个EmuHelper类的实例,这是咱们运用flare-emu做一切工作的类。接下来,咱们运用iterate API,为它供给decryptString函数的地址和回调函数的称号,EmuHelper将为模仿的每个穿插引证调用回调函数。[1][2][3]黑客接单网

相关文章

又见陈旧的Typosquatting进犯:这次侵略Npm盗取开发者身份凭据

有些进犯方式尽管听起来很天真,但有时分却也能够收效,比方typosquatting进犯——咱们前次看到这种进犯是在上一年6月份,这自身也是种很陈旧的进犯方式。 所谓的typosquatting,主要...

Apple iCloud帐户的破解与保护攻防战-黑客接单平台

不管你是履行桌面仍是云取证,云端数据都将成为越来越重要依据来历,而且有时是仅有依据来历。即便你不从事取证作业,云拜访也能够协助你拜访已删去或以其他办法无法拜访的数据。 与智能手机或受暗码维护的桌面相似...

xHunt:针对科威特航运组织的攻击行动-黑客接单平台

2019年5月至6月,unit42安全团队在一起针对科威特航运业的进犯事情中,检测到了一个新后门东西——Hisoka,它的作用是下载几个的定制东西进行后缝隙运用,一切东西好像都由同一个开发人员创立,最...

鱼叉式网络钓鱼攻击——一份关于攻击动机、技术和预防方法的完整指南-黑客接单平台

每天都有不计其数的鱼叉式垂钓邮件发送给全世界的受害者。 进犯有许多不同的途径,不管怎样进犯,都会对您的网络形成损伤。 所以,精确的、有针对性的进行剖析和履行是至关重要的。 在本指南中,咱们将介绍鱼叉式...

如何用虚拟钱银匿名注册域名

以比特币为首的P2P虚拟钱银推翻了人们对钱银的认知,也为网上生意供给了新的途径。近几年来,虚拟钱银付出以其去中心化、匿名性等特色深受欢迎,活泼在各个领域,涵盖了电商、慈悲安排、企业院校等合法组织,当然...

代码审计之Fiyo CMS事例共享

Fiyo CMS是小型的商务电话服务及移动协作东西,由一名前职业学校学生初次开发和创立的,后者其时在RPL的SMK 10三宝垄学习。 那时他的姓名不是Fiyo CMS,而是Sirion,它是Site...