type
status
date
slug
summary
tags
category
icon
password
re
re694

附件:
提取码:game
0x01
国际惯例—查有没有壳


是upx壳
但exeinfo告诉我们Don't try : upx.exe -d option ( min. 3.91 UPX required !!! )
0x02
于是try脱壳

很明显是不能脱壳
0x03
用16进制编辑器010打开

打开有报错,不管,直接看结构

这是我自己加了upx壳的一个程序的此段内容
而这道题

出题人魔改了这里,我们直接改回去,就能脱壳了(细心的话ida反编译的时候会显示段FUK)
除了此方法外,还可以用x64dbg dump出来,esp定律

0x04
改完拖进ida里,脱壳正常
分析程序流程,找加密函数


0x05
加密
((flag^0x66)+10) ^ 0x50
解密就是
((flag^0x50)-10) ^ 0x66
加密数据在这里

lazyida直接提数据不能,直接快捷键U变成数据,我直接提取的双字

0x06
手撸脚本
re693

附件:
提取码:game
0x01
下载附件,用golang打开(用vs code,notepad++也行)
ctrl f 直接搜main函数(就在最后)

分析,有两个byte数组(
jjxXf
KdlaH
),发现有两个打印函数,打印的是通过MPyt9GWTRfAFNvb1
,kZ2BFvOxepd5ALDR函数加密
0x02
直接查找(ctrl f)
MPyt9GWTRfAFNvb1
和kZ2BFvOxepd5ALDR函数


两个函数也很简单
就是将刚才那两个byte数组,分别和函数里的byte数组进行异或,然后得到的字符串打印出来
也就是这两句话
0x03
此题就是找这两个符合函数的两个函数
flag分为两段
第一段为vNvUO,第二段为YJCya

0x04
第一段函数
exp:
0x05
第二段函数
在main函数可以分析调用
YI3z8ZxOKhfLmTPC
然后顺着条件找到


exp:
0x06
脚本:
flag{3a4e76449355c4148ce3da2b46019f75}
crypto
crypto091

谷歌搜索,170号段首批放号的联通号码以1709开头

直接爆破
pwn
pwn135
附件:
提取码 game

直接非预期
后面复现一下v8读取文件内容和js打印函数
flag{78686b26-1146-4c58-b75b-3673549848fd}