学逆向论坛

找回密码
立即注册

只需一步,快速开始

发新帖

2万

积分

41

好友

1168

主题
发表于 2020-4-24 00:49:24 | 查看: 5733| 回复: 1

相关题目:

♦ Reverse1

File看文件信息,

xuenixiang_2019_re_Reverse1

xuenixiang_2019_re_Reverse1
拖入ida打开,找到程序入口,main函数,和关键函数strcmp()encode()

xuenixiang_2019_re_Reverse1

xuenixiang_2019_re_Reverse1
发现是字符串s和enflag进行比较,一致则输出flag,而s是经过encode后的字符    我们先查看enflag()

xuenixiang_2019_re_Reverse1

xuenixiang_2019_re_Reverse1
将前三个字符 转化为ascii ,然后存放到一个数组里

xuenixiang_2019_re_Reverse1

xuenixiang_2019_re_Reverse1
得到了加密后的字符串, 接着查看encode()函数,看看它的加密算法

xuenixiang_2019_re_Reverse1

xuenixiang_2019_re_Reverse1
加密的过程是 将用户输入的字符串,拆分成了3组,每组进行异或和加减运算之后 累计到一个变量里,将这个变量跟enflag做比较。
所以写一个decode:
nflag=[0x7e,0x74,0x75,0x7f,0x67,0x63,0x24,0x63,0x60,0x65,0x74,0x6d,0x24,0x7d,0x43,0x25,0x7a,0x69]
v3=[]
v4=[]
v5=[]
v7=18
flag=''
for i in range(0,len(enflag),3):
    v5.append((enflag[i]^v7)-6)
    v4.append((enflag[i+1]^v7)+6)
    v3.append(enflag[i+2]^v7^6)

for j in range(v7/3):
    flag+=chr(v5[j])+chr(v4[j])+chr(v3[j])
    print flag

xuenixiang_2019_re_Reverse1

xuenixiang_2019_re_Reverse1
flag{w0wtqly0uW1n}

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

    发表于 2020-6-8 15:36:17
    能不能把题目也上传

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

    GMT+8, 2024-11-22 05:41 , Processed in 0.135944 second(s), 44 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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