前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >某IOT蠕虫病毒分析之UPX脱壳实战

某IOT蠕虫病毒分析之UPX脱壳实战

作者头像
xfkxfk
发布2018-03-29 14:51:06
1.5K0
发布2018-03-29 14:51:06
举报

关于upx的脱壳的文章比较多,基本上都是Windows平台下的脱壳文章,处理起来比较简单。FormSec将在本文中分析一款mips下病毒程序使用的upx壳保护手段。

在应急事件处理过程中,提取到病毒样本为virus.dat,样本使用了upx(3.91)壳,对程序进行了压缩处理。

作者对加壳后的样本进行了修改,导致使用upx –d命令解压失败;虽然解压失败了,但是不影响程序正常功能的执行。

分别使用两个版本的upx程序尝试脱壳,可以看出最新版的提示信息比较具体

提示:upx: virus.dat: CantUnpackException:p_info corrupted

由于最新版的脱壳程序直接报告出是p_info字段的问题,在网上找了一圈没有关于针对该问题的解决方案,这里直接找upx(3.94)最新版的源码分析一下,主要简单分析作者使用的干扰脱壳程序的技术手段,以及如何修复

1. 定位输出错误信息的位置,直接查找错误信息字符串即可;查找到两处分别对应32位和64位版本的文件头

2. 简单分析一下p_lx_elf.cpp ->PackLinuxElf32::unpack 函数的功能;

3. p_info结构体的定义如下,12bytes

4. 定位文件中p_info的位置,可以看出作者将该结构体用0填充后,解压程序检测到异常,导致解压缩失败

5. 修复upx壳,下图标记的位置保存着有效的p_info->p_filesize 字段(p_filesize 和 p_blocksize相同)

6. 修复p_info信息:

7. 脱壳成功

上面主要记录了整个处理定位问题,一直到如何修复的方法与思路,希望能够帮助到对二进制病毒分析比较感兴趣的同学后续有机会的话,会出一篇关于该病毒的详细技术分析报告,欢迎各位大佬斧正

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 逢魔安全实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档