学逆向论坛

找回密码
立即注册

只需一步,快速开始

发新帖

116

积分

0

好友

25

主题
发表于 2020-6-15 00:58:06 | 查看: 6317| 回复: 0

相关题目:


前言  自己最近在做总结,看到之前所做的两个upx加壳的题目,于是总结一下。
基本介绍  upx大家应该都不陌生,在做题时算是比较容易遇到的一种壳,代码开源。
  UPX(the Ultimate Packer for eXecutables)是一个免费且开源的可执行程序文件加壳器,支持许多不同操作系统下的可执行文件格式
做题  能用upx -d直接脱壳的就不举例了。
  强网杯有一题hide,鹏城杯有一题C++ note都是无法一键脱壳的,关于hide可以参考我之前写的博客(网上也有很多资料)。
  具体的解题过程在此不做讲解
出题Easy  首先我们写一个简单的验证过程,这里就直接拿之前写的题xxTea的代码,源代码在之前的文章里有。
  如果因为程序过小而压缩失败可以通过添加如下代码进行解决:
int const dummy_to_make_this_compressible[10000] = {1,2,3};
  我在ubuntu下进行压缩,版本3.91如下:

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  通常我们使用upx main -o main-upx命令进行压缩,对比下压缩前后的文件信息。

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  压缩前

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  压缩后

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  使用strings查看

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  尝试使用upx -d main-upx脱壳

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  直接就能脱,这种题目会有,一般只是考查对upx的基本使用,并没有任何难度。
Nornal  往往upx压缩的题目是不会让做题者直接使用工具解压的,因此这里面可以做许多文章,可以通过编译源码,隐藏UPX版本、标志等信息,这里讲一下自己遇到过的隐藏UPX版本、标志进行的混淆。
  首先要来了解一下upx加壳之后的ELF文件格式
  文件格式参考自这位大神的分析

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  具体分析看分析哦,这里只说明如何隐藏标志,防止一键脱壳。
  实验过程如下:
  upx 3.95版本,mac下进行实验
  压缩

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  能正常解压

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  修改UPX!标志位
  修改前:

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  修改后:

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  尝试解压,提示l_info corrupted

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  此时程序能正常运行

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  除此之外我还试了下在3.91版本下修改标志位,发现upx -d仍然能直接脱(不明所以)。
手拖upx  如果upx -d命令无法直接脱壳,那么我们可以选择手动脱壳,方法也很简单,不需要复杂的操作。(头铁的我一般直接动态逆)
  这里选取的样本为upx 3.95压缩,修改标志位。
  运行程序后,查看进程的内存信息

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  脱壳的基本原理是程序在运行时会将代码释放到内存中,我们只需在运行时将内存中的可执行代码段dump出来即可。
  如下命令:
sudo dd if=/proc/$(pidof mac-main-upx)/mem of=main_dump skip=0x400000  bs=1c count=786432

从做题到出题再到做题三部曲-UPX

从做题到出题再到做题三部曲-UPX
  当然使用gdb附加,使用(gdb) dump memory /root/memory.dump 0x400000 0x40c000也是一样的效果。
  这时便可以动静结合来进行调试了。
当然如果你有能力修复的,那么把dump的程序修复下也是可以的。
总结  upx防脱的方法还有好多,不过网上公开的源代码并不多,但我觉得没必要在混淆上做太多文章,毕竟混淆只是增加了调试的速度而已,头铁直接刚就是了,哪怕面目全非。
  一点总结,有不当之处还请指出。



温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的认可,还可以获得学币奖励,请尊重他人的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。

小黑屋|手机版|站务邮箱|学逆向论坛 ( 粤ICP备2021023307号 )|网站地图

GMT+8, 2024-12-22 23:59 , Processed in 0.255436 second(s), 42 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表