信息系统安全-计算机病毒分析实验-L002003002-病毒免杀实验-UPX加壳分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UPX(the Ultimate Packer for eXecutables)是一个免费且开源的软件,支持很多种不同操作系统上的文件格式。
UPX使用一种叫做UCL的压缩算法,这是一个对有部分专有算法的NRV(Not Really Vanished)算法的一个开源实现。
UCL被设计的足够简单使得解压缩只需要数百字节的额外代码。UCL在解压缩过程中不需要额外的内存,这最大的好处就意味着经过UPX压缩的可执行文件执行时通常也不需要额外的内存。
课程编写
类别
内容
实验课题名称
木马攻击-UPX加壳实验
实验目的与要求
1、了解UPX软件原理
2、掌握UPX软件使用
3、了解加壳ຫໍສະໝຸດ Baidu理
实验环境
VPC1(虚拟PC)
操作系统类型:windows网络接口:本地连接
VPC1连接要求
PC网络接口,本地连接与实验网络直连
软件描述
1、学生机要求安装java环境
2、安装windows 2003的系统
实验环境描述
1、学生机与实验室网络直连;
2、VPC1与实验室网络直连;
3、学生机与VPC1物理链路连通;
预备知识
对于程序员来说,自己苦心开发的一套代码在即将发布,售卖的时候,突然发现市面上各个角落都有自己开发的软件,这肯定是自己的软件被人破解了。那么有没有办法防止被破解呢,一般现在大家惯用的手法就是在自己的核心代码上加一个壳,例如一些花指令啊,还有一种的就是我们今天要讲的,直接给程序加一层保护壳,防止别人来迫害我们的劳动成果。
图9
注:大家看到了吧,上面的EP这个位置已经显示了UPX1,下面的壳探测也清
晰的表明了使用的是UPX。
11、实验完毕,关闭虚拟机和所有窗口。
UPX(从2.90 beta版本开始)可以在大多数平台上使用LZMA算法,但因为速度慢在16位平台上默认禁止使用。(使用参数--lzma强制使用)
UPX支援两种解压方式——就地解压和解压至临时文件夹。
就地解压方法会直接把可执行文件提取到内存。但这种方式不可能支援所有操作系统平台,如果这样就会用另一种解压方式,将压缩文件提取到临时文件夹。这样涉及到额外占用和其他缺点,但他支援封装任何可执行文件。可执行文件往往先会被提取到一个位置,之后用open()打开。
图3
4、打开“UPX压缩与解压器”软件。
图4
5、点击UPX压缩与解压器软件中的“打开”,找到notepad.exe程序,把notepad.exe放到文件名位置,并打开。如图5所示:
图5
6、点击打开以后,UPX自动进入如图6所示页面:
图6
7、去掉“解压”前面勾选项,点击“执行”按钮,将对notepad.exe进行操作,执行以后结果,如图7所示:
一旦获得了一个文件描述符,就可以unlink()临时文件,UPX对文件句柄使用execve()(通过/proc)把临时文件的执行代码替换到UPX代码段中。
提取到临时文件的方法有以下几个缺点:
特殊权限会被忽略,如设置用户标识符。
argv[0]将会变得无效。
应用程序将无法共享共同的部分。
未修改的UPX包通常能够被杀毒软件检测和解压。同时UPX也内置能够解压未修改UPX包的功能。默认的UPX许可证明确禁止修改,来防止使用新版本UPX手工解压/重新压缩。
实验内容
1、掌握UPX软件使用
2、测试加壳是否成功
实验步骤
1、学生单击“网络拓扑”进入实验场景,单击windows2003中的“打开控制台”按钮,进入目标主机。如图1所示:
图1
2、输入默认账号administrator,密码123456,进入目标主机桌面。如图2所示:
图2
3、进入到D:\tools文件夹,找到“UPX压缩与解压器”软件。
图7
8、找到PEiD.exe,使用软件PEid测试notepad.exe是否加壳,打开PEid软件。进入PEid软件页面。如图8所示:
图8
9、点击软件中“...”按钮,选择notepad.exe软件放置到file选项中。如图9所示:
图9
10、Notepad.exe放到PEid软件中,自动检测。如图10所示:
UPX使用一种叫做UCL的压缩算法,这是一个对有部分专有算法的NRV(Not Really Vanished)算法的一个开源实现。
UCL被设计的足够简单使得解压缩只需要数百字节的额外代码。UCL在解压缩过程中不需要额外的内存,这最大的好处就意味着经过UPX压缩的可执行文件执行时通常也不需要额外的内存。
课程编写
类别
内容
实验课题名称
木马攻击-UPX加壳实验
实验目的与要求
1、了解UPX软件原理
2、掌握UPX软件使用
3、了解加壳ຫໍສະໝຸດ Baidu理
实验环境
VPC1(虚拟PC)
操作系统类型:windows网络接口:本地连接
VPC1连接要求
PC网络接口,本地连接与实验网络直连
软件描述
1、学生机要求安装java环境
2、安装windows 2003的系统
实验环境描述
1、学生机与实验室网络直连;
2、VPC1与实验室网络直连;
3、学生机与VPC1物理链路连通;
预备知识
对于程序员来说,自己苦心开发的一套代码在即将发布,售卖的时候,突然发现市面上各个角落都有自己开发的软件,这肯定是自己的软件被人破解了。那么有没有办法防止被破解呢,一般现在大家惯用的手法就是在自己的核心代码上加一个壳,例如一些花指令啊,还有一种的就是我们今天要讲的,直接给程序加一层保护壳,防止别人来迫害我们的劳动成果。
图9
注:大家看到了吧,上面的EP这个位置已经显示了UPX1,下面的壳探测也清
晰的表明了使用的是UPX。
11、实验完毕,关闭虚拟机和所有窗口。
UPX(从2.90 beta版本开始)可以在大多数平台上使用LZMA算法,但因为速度慢在16位平台上默认禁止使用。(使用参数--lzma强制使用)
UPX支援两种解压方式——就地解压和解压至临时文件夹。
就地解压方法会直接把可执行文件提取到内存。但这种方式不可能支援所有操作系统平台,如果这样就会用另一种解压方式,将压缩文件提取到临时文件夹。这样涉及到额外占用和其他缺点,但他支援封装任何可执行文件。可执行文件往往先会被提取到一个位置,之后用open()打开。
图3
4、打开“UPX压缩与解压器”软件。
图4
5、点击UPX压缩与解压器软件中的“打开”,找到notepad.exe程序,把notepad.exe放到文件名位置,并打开。如图5所示:
图5
6、点击打开以后,UPX自动进入如图6所示页面:
图6
7、去掉“解压”前面勾选项,点击“执行”按钮,将对notepad.exe进行操作,执行以后结果,如图7所示:
一旦获得了一个文件描述符,就可以unlink()临时文件,UPX对文件句柄使用execve()(通过/proc)把临时文件的执行代码替换到UPX代码段中。
提取到临时文件的方法有以下几个缺点:
特殊权限会被忽略,如设置用户标识符。
argv[0]将会变得无效。
应用程序将无法共享共同的部分。
未修改的UPX包通常能够被杀毒软件检测和解压。同时UPX也内置能够解压未修改UPX包的功能。默认的UPX许可证明确禁止修改,来防止使用新版本UPX手工解压/重新压缩。
实验内容
1、掌握UPX软件使用
2、测试加壳是否成功
实验步骤
1、学生单击“网络拓扑”进入实验场景,单击windows2003中的“打开控制台”按钮,进入目标主机。如图1所示:
图1
2、输入默认账号administrator,密码123456,进入目标主机桌面。如图2所示:
图2
3、进入到D:\tools文件夹,找到“UPX压缩与解压器”软件。
图7
8、找到PEiD.exe,使用软件PEid测试notepad.exe是否加壳,打开PEid软件。进入PEid软件页面。如图8所示:
图8
9、点击软件中“...”按钮,选择notepad.exe软件放置到file选项中。如图9所示:
图9
10、Notepad.exe放到PEid软件中,自动检测。如图10所示: