0%

超详细题解

2025-05-27 20:00By
pkkcsa
UPX壳脱壳逆向技术

Problem: [SWPUCTF 2022 新生赛]upx

思路

  • 解题大致思路

基本信息

什么是壳呢?🤔

简单描述就是:壳是保护可执行文件防止反汇编逆向的保护层。

3.1 看到什么

题目关键信息列表:

下载附件后发现是zip文件,解压后发现是p04.exe文件

3.2 解题思路

既然还是exe文件,那么思路大致仍然是查壳,有壳脱,无壳直接丢进IDA进行静态调试分析,分析不出就用动态调试,再写脚本得出flag

3.3 尝试过程和结果记录

  1. 先查壳,发现64位有upx壳(有壳就无法直接丢进IDA进行分析了,比较犟的可以不脱壳放进IDA试试,嘿嘿)

    NSSIMAGE

  2. 有壳那就脱去,那么怎么脱壳呢(脱壳其实是一个很复杂的操作,许多魔改壳,没见过的壳等等,都需要一步步动态调试脱去~~(很磨人)~~,这里只介绍最简单的upx壳,使用upx工具进行脱壳)

    使用upx工具输入命令

    upx -d 文件路径

    NSSIMAGE

    即可完成脱壳,可以再放进die里面查看,发现已经没有了

    NSSIMAGE

  3. 接下来就是放进IDA里

    NSSIMAGE

    逻辑很简单,输入的flag的每个字符和2进行亦或运算,然后于V4字符串比较,相同就是正确的flag。

  4. 编写脚本

    得到flag:NSSCTF{UPX_1s_xord_way_to_encrypt_flag}

EXP

  • 具体攻击代码
    如下:

    def decode_xor2(s): return ''.join(chr(ord(c) ^ 2) for c in s) enc = "LQQAVDyWRZ]3q]zmpf]uc{]vm]glap{rv]dnce" flag = decode_xor2(enc) print("flag:", flag)

总结

  • 对该题的考点总结
    upx
还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有
加载失败
广告
×
评论区
添加新评论