[MoeCTF 2023]UPX!
本文最后更新于301 天前,其中的信息可能已经过时,如有错误可以直接在文章下留言

MoeCTF 2023是我接触的第一个CTF的比赛,是一个新生赛,我感觉里面的题目都出的很好啊,最近觉得应该做一下,当时作为小白只做了Misc方向的题目,这道题是Reverse的,新生赛嘛,都简单,最近很焦虑,觉得自己Reverse方向的水平和小白也没啥区别,学习成绩也一般,难受。

打开压缩包给的.exe程序,如图

提示很明显,比较新生题,用exeinfope查壳,加了壳,如图。

直接用UPX脱壳,如图

脱壳成功后再用IDA打开,在Strings Windows追踪,很容易发现主函数,如图

逻辑很简单,小白一般第一个接触到的异或的性质,异或(用符合XOR或者^来表示)

异或是一种二进制的位运算,运算规则为:

相同为0,不同为1,即

1 ^ 1 = 0

0 ^ 0 = 0

1 ^ 0 = 1

由运算规则可知,任何二进制数与零异或,都会等于其本身,即 A ^ 0 = A

并且若A^B=C,则B^C=A,这题就是运用了异或的这个性质

我的解题脚本如下

byte=[  0x0A, 0x08, 0x02, 0x04, 0x13, 0x01, 0x1C, 0x57, 0x0F, 0x38,
  0x1E, 0x57, 0x12, 0x38, 0x2C, 0x09, 0x57, 0x10, 0x38, 0x2F,
  0x57, 0x10, 0x38, 0x13, 0x08, 0x38, 0x35, 0x02, 0x11, 0x54,
  0x15, 0x14, 0x02, 0x38, 0x32, 0x37, 0x3F, 0x46, 0x46, 0x46,
  0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00]
flag=[0]*len(byte)
for i in range(len(byte)):
    flag[i]=chr(byte[i]^103)
flag=''.join(flag)
print(flag)

得到flag为moectf{0h_y0u_Kn0w_H0w_to_Rev3rse_UPX!!!}

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇