某加密样本 Trace分析 - 2 密级: 【C-1】 | 时间:2024-02-20 | 目录:测试笔记 | 编辑本文 文章距今已发表三个月,请自行判断文中技术方法、代码的有效性:) ## 基础信息 加密结果: 7fdf80a3bab0a71cc16aac6f71a9448e 可以在trace中找到md5魔数和k表。 ## 找到明文入参 之前的文章说过 ![](https://img.meituan.net/imgupload/78922daf29b91903af43c97b8e39734857951.png) 那么实际上 0xffffff进行 add运算时,可能就是第一轮运算的明文的第一个 ![](https://img.meituan.net/imgupload/b76f7799f7306cb9d54a8d9ec517c50e135026.png) 说明 进行相加的明文的第一个分组的m[0] 是 0xfeedfacf ![](https://img.meituan.net/imgupload/ad6353b25d62112d3b65c5c9905fcd91110022.png) 谷歌能知道是Mach-O文件的魔数头 ``` [0xd32e04c] 0x10e60604c ldr w16, [x1]; # r[ x1=0x11f4ac000, ] w[ x16=0xfeedfacf, ] [0xd32e050] 0x10e606050 str w16, [x0, #0x58]; # r[ x0=0x17027a4c0, ] r[ x16=0xfeedfacf, ] ``` 这条指令是一个加载指令,它从内存地址x1指向的位置加载一个字(word,32位)到寄存器w16中。 x1的值为0x11f4ac000,指令执行后,w16被加载的值是0xfeedfacf。说明明文message来源在0x11f4ac000,找找线索。看到对0x11f4ac000进行数据装载操作的指令有大量的0填充。 ![](https://img.meituan.net/imgupload/3e234e35d4b286de1436db2eab5ca073212601.png) 此处看到是feedfacf ,恰好是明文前几个字节。说明这个地址在开始进行明文填充,并加载到内存上了。一直到填充结束的位置。copy table到新的log文件,使用python正则匹配 ![](https://img.meituan.net/imgupload/e9352343a03db40ad736cfed345b0fe3281279.png) ![](https://img.meituan.net/imgupload/4e51abaa2fc5a4cef6d989e2cc1aa9ea64375.png) 使用cyberchef进行哈希,结果一致。证明md5没有做魔改 ![](https://img.meituan.net/imgupload/4c4cd543d788b46cea500ba4fc3fcedf108414.png) ## 结论 样本在对Mach-O文件获取md5值。 评论列表 写评论 您的IP:3.139.237.170,临时用户名:4604a7a0评论已接入DepyWAF审计与流量系统,请勿频繁操作导致IP拉黑 提交评论 © 版权声明:非标注『转载』情况下本文为原创文章,版权归 Depy's docs 所有,转载请联系博主获得授权。