三个有趣的脱壳例子

最近看了youtube上的一些视频教程,看到了几个有趣的脱壳方式。这里介绍下。具体的视频教程在MalwareAnalysisForHedgehogs和hasherezade的youtube频道下面。

案例一

工具:python、HxD

样本:https://www.hybrid-analysis.com/sample/a6cbeeecfb50bf94499547fbf0adc6451326be45a16462f9056eaba2342fcf2c?environmentId=100

我们知道有一些壳会用一个key去和最初的源文件进行xor运算。那么这种情况下只要找到那个key就可以和样本xor,从而有机会直接在样本的某个部位找到那个PE文件然后dump出来。将我们的样本在HxD里面打开。

这里我们看到了一个反复的字符串”W..1..4..3..5..8.....”。所以我们猜测这就是那个key。然后看我选中的那段内容,开头是“.Z”,这让我们想起来PE文件的“MZ”头。我们猜测的key第二个字节是“.”也就是“00”,而“00”和“Z”进行xor的话还是“Z”,所以猜测这里就是PE文件的开头了。

把这部分内容复制出来。然后采用一个python脚本来进行xor运算。

运行脚本后,我们得到了这个实际的样本。

案例二

工具:PE-sieve

样本:https://www.hybrid-analysis.com/sample/008c4bd6ee834d113cfc693af0ea90396eaa47e860bcdd567ffd964b57434e1d?environmentId=100

PE-sieve是hasherezade开发的一个能从内存里面dump出满足PE结构内容的工具。根据作者本人说这个工具能够解决大多数常规的壳,更多的使用需要大家自行探索了,这里抛砖引玉介绍一个简单的案例。

将我们的样本跑起来然后获得样本的PID之后用工具dump出来。

获得了一个exe。但是如果用pe-studio打开分析下导入表这些内容会发现似乎仍然不是最终的payload,并且似乎还有一个壳在那里。那么就再跑一下这个样本然后用OD附加上去。

在OD里面看下内存发现了一个有意思的节。

这里我们看到蛮有趣的一点就是一些节名称和一个“F8”偏移,所以可以猜测这是一个PE结构了。手动加上“MZ”和“PE”头,如图所示。

这个时候PE-sieve就可以识别这个结构了。再次运行一下并使用这样的命令“PE-sievePID /imp”可以自动修复导入表。

这里我们看到内存220000处开始的PE结构已经出来了。导入表也已经修复了。

案例三

工具:OD、HxD

样本:https://www.hybrid-analysis.com/sample/482a8b7ead1e07ac728e1e2b9bcf90a26af9b98b15969a3786834d6e81d393cd?environmentId=100

我们知道有一些脚本是在exe文件里面的。这里提供的样本中就wrap了一个.bat脚本。

对于这个样本来说,关键的点就是在“WriteFile”这里下断点了。因为最终样本会将脚本写到磁盘上去。

如图,找到那个Buffer然后复制出来。

改一下扩展名就好了,这就是那个脚本。


原文发布于微信公众号 - ChaMd5安全团队(chamd5sec)

原文发表时间:2018-04-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

教程 | 如何使用Keras、Redis、Flask和Apache把深度学习模型部署到生产环境?

1.3K11
来自专栏TensorFlow从0到N

TensorFlow从0到1 - 18 - TensorFlow 1.3.0安装手记

《TensorFlow从0到1》写到现在,TensorFlow的版本也从当时的1.1.0迭代到了8月初发布的1.3.0。可以预见在未来很长一段时间里,它仍会持...

3576
来自专栏東雲研究所

启用 TCP BBR 拥塞控制算法

自从 Linux 内核 4.9 开始已经封装了这个新的 TCP 控制算法 BBR。

9999
来自专栏CaiRui

LVS调度算法

内核中的连接调度算法 IPVS在内核中的负载均衡调度是以连接为粒度的。在HTTP协议(非持久中),每个对象从WEB服务器上获取都需要建立一个TCP连接,同一用户...

39010
来自专栏macOS 开发学习

Mac开发跬步积累(一):Cocoa Drawing 之 NSImage imageNamed: 到底做了什么?

首先,NSImage提供了支持多种格式图像数据进行管理的api, 但是NSImage对被其管理的实际图像数据几乎是一无所知的,这是因为NSImage并没有直接与...

1173
来自专栏点滴积累

geotrellis使用(十七)使用缓冲区分析的方式解决单瓦片计算边缘值问题

Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 需求分析 ...

3206
来自专栏编程

厉害了,用Python一行代码实现人脸识别

摘要: 1行代码实现人脸识别,1. 首先你需要提供一个文件夹,里面是所有你希望系统认识的人的图片。其中每个人一张图片,图片以人的名字命名。2. 接下来,你需要准...

2878
来自专栏程序员同行者

python3模块: uuid

1752
来自专栏腾讯云serverless的专栏

使用 Serverless 进行 AI 预测推理

本文演示如何使用腾讯云的 SCF 无服务器云函数来实现 AI Serving 能力。

6.2K61
来自专栏瓜大三哥

FPGA乒乓操作你了解吗? 还不赶快来看

2704

扫码关注云+社区

领取腾讯云代金券