QAQ~QL 发表于 2022-2-16 00:10

【2022春节】解题领红包之三 {Windows 中级题}

本帖最后由 QAQ~QL 于 2022-2-18 19:21 编辑

思路
[*]中级题,PE查壳

UPX壳,使用ESP定律脱壳,不细讲,文末教程
脱后文件拖入ida

得知sub_401520为比较函数,sub_401100和sub_401080和sub_401110为uid参数处理函数运行程序,确定两个变量uid和key,在三个入口函数下断调试+ida分析,发现输入字串经过处理后在sub_401520比较flag输出success遂打算直接还原代码进入uid处理的三个关键方法(sub_401100,sub_401080,sub_401110)这三个方法,生成两个参数,并传入sub_401520(1,2,3,4,uid_1,uid_2)进行判断,遂对三个方法进行步入跟踪sub_401100,sub_401080方法简单,实现过程如下def sub_401100(uid):    return uid % 25
def sub_401080(uid):
    return list(range(1, 26, 2))sub_401110过于繁琐,我还是太菜了,无法还原,无奈放弃还原思路,直接od动调hook算好的uid_1,uid_2便更换思路,从sub_401520判断函数下手在其领空内存发现疑似flag文本   ->    flag{Happy_New_Year_52Pojie_2022}遂记录下字符串Happy_New_Year_52Pojie_2022输入测试数据(Happy_New_Year_52Pojie_2022),得出下标
uidkey
123456Bujjs_Hyq_Syul_52Jidcy_2022
123Utkkp_Gbl_Pbto_52Kvyjb_2022


测试数据,收集flag

发现该函数会处理输入字符,并和flag作比较返回int结果抄起py,输出发现文本处理并无明显规律,重新查看代码str1 = 'Happy_New_Year_52Pojie_2022'# str2 = "Utkkp_Gbl_Pbto_52Kvyjb_2022"str2 = "Bujjs_Hyq_Syul_52Jidcy_2022"
for i in range(27):
    if str1 == str2:
      continue
    print("{:3d}-> {} <> {:3d} -> {}    ==={}".format(ord(str1), str1, ord(str2), str2,ord(str2) - ord(str1)))

跟入sub_401520,发现内容颇长,动调查看有用部分,前面一大段对flag的处理忽略,后面的释放空间也忽略,得到关键函数sub_4011B0和sub_403ED0,祭出ida,想起刚刚的uid_1和uid_2,得出sub_4011B0为关键函数

sub_4011B0在ida中分析得知大小写分类型进行运算   chr(15 * (ord(i) - 20 - num) % 26 + num)num=大写:65 小写:97便使用逆推算法,推出本人uid正确的flagdef u1s1(pr):    for i in string.ascii_letters:
      num = 97 if i.islower() else 65
      if chr(15 * (ord(i) - 20 - num) % 26 + num) == pr:
            return i

str1 = 'Happy_New_Year_52Pojie_2022'
str2 = []
for i in str1:
    print(u1s1(i) if i.isalpha() else i, end="")
代入算出结果发现答案错误,简直怀疑人生了................后抱着试一试的心态,测试
str1=flag{Happy_New_Year_52Pojie_2022}
结果答案正确,大写的无语..............
算了半个晚上用的都是Happy_New_Year_52Pojie_2022属实心态有点蹦了至此题三结束

DEATHTOUCH 发表于 2022-2-16 17:42

图片都挂了

然后这个upx脱壳非常easy,只要鼠标一直往下滚,找到指令全是0000的时候前面那个超远距离的jmp过去就是OEP了。

QAQ~QL 发表于 2022-2-16 18:44

可能是放我服务器被屏蔽了,稍后补

Hmily 发表于 2022-2-17 16:12

QAQ~QL 发表于 2022-2-16 18:44
可能是放我服务器被屏蔽了,稍后补

这个图也不行,处理一下吧。

hua111 发表于 2022-2-21 10:41

页: [1]
查看完整版本: 【2022春节】解题领红包之三 {Windows 中级题}