发表日期: 2021-04-30 10:03:04 浏览次数:93
偃师网络公司哪家好【偃师企业网站百度SEO推广公司】偃师做网站开发价格、偃师淘宝店铺开店装修设计运营、公司网站制作方案流程改版维护费用、偃师高端企业网站页面制作设计专业公司需要多少钱
偃师区,隶属于河南省洛阳市,位于河南省西部,总面积668.58平方千米 [1] 。截至2019年末,偃师区总人口63.2万人 [3] ,截至2020年6月,偃师区下辖4个街道、9个镇 [2] ,偃师区人民政府驻槐新街道民主路27号。 [24]
周,设偃师县。1993年,偃师撤县设市。 [4] 2021年3月,撤销县级偃师市,设立洛阳市偃师区 [25] 。偃师区是河南省制造业高质量发展综合评价试点市 [5] 、革命文物保护利用片区分县 [6] 、国家卫生城市(区)。 [18]
2019年,偃师区实现地区生产总值443.6亿元,固定资产投资193.8亿元,一般公共预算收入24.6亿元,社会消费品零售总额222.6亿元。 [7]
近年来,越来越多安全研究员开始使用QEMU以及unicorn这类虚拟化技术对固件进行模拟执行,甚至是FUZZ测试。模拟执行在嵌入式固件分析中应用越来越广泛,为了让大家能了解这一技术的使用方法,本文从实战出发,利用unicorn框架分析某个设备的加密算法。
本文的目的想要分析并调用该固件的一个魔改的MD5。
我们简单地对比了该算法和标准md5的区别,发现大量算法常数被修改了。
标准算法:
修改后的:
标准算法:
修改后的:
对照标准算法实现,分析魔改的地方,然后对标准算法进行修改。
缺点:分析时间长,修改的地方多的话还容易出错。特别是遇上二进制代码混淆,分析起来更加麻烦。
无需花大量时间分析算法,直接复制IDA反编译的代码,重新编译即可。
缺点:反编译的伪代码不一定准确,如果代码函数较多,需要复制和整理的函数也比较多,特别是变量类型这块,也要进行修复。
3.只需要分析函数的参数,使用模拟执行技术,对关键算法进行模拟执行。
标准的MD5一般有三个函数,分别如下所示:
为了模拟执行,我们需要在IDA找到这三个函数的地址,如下所示:
用法如下,这里就不多介绍了
该固件是MIPS大端架构系统,初始化一些加载地址,栈地址之类的全局变量
解析ELF文件,把固件的代码段读取到模拟器中:
分配栈空间,以及变量空间,用于存放md5_ctx以及输入的变量字符串
首先,我们为了让模拟器调用完每个函数之后能够停止运行,必须将返回地址设置为一个指定的地址,当callback检测到运行到该地址,立刻停止下来了:
分别调用3个函数:
通过代码可以知道,最终的md5值在MD5Context偏移为88的地方:
所以在调用完成之后直接把MD5_CTX偏移为88的数据读取出来即为MD5运算结果:
当输入为12345678得到下面的MD5值
所有代码如下:
本文通过unicorn将固件中魔改的md5算法成功进行模拟执行,并输出了正确的值,说明使用unicorn对固件中的算法进行分析是非常有效的。这将会对使用了混淆的算法特别有用,逆向研究人员只需要分析关键函数以及参数,让unicorn执行模拟即可,当然还有些不足,比如有些CPU指令支持不完全,运行效率等问题。

偃师网络公司哪家好【偃师企业网站百度SEO推广公司】偃师做网站开发价格、偃师淘宝店铺开店装修设计运营、公司网站制作方案流程改版维护费用、偃师高端企业网站页面制作设计专业公司需要多少钱