首页
社区
课程
招聘
[原创]2019看雪CTF晋级赛Q1第一题 流浪者WriteUp
发表于: 2019-3-25 00:46 7166

[原创]2019看雪CTF晋级赛Q1第一题 流浪者WriteUp

2019-3-25 00:46
7166

使用IDA载入程序,程序载入后按下Shift+F12查看Strings,如图。


可以假设一下程序在对pass进行校验时第一步是先检查输入框内容是否为空,因此可以双击“请输入pass!”文本跳到该字符串地址,再找到引用该字符串的函数。


双击字符串跳转至字符串地址,右键单击该字符串,选择“Xrefs graph to…”选项,如下图。


如下图,可以看到该字符串被sub_401890函数所引用。


在IDA左侧Functions window窗口中找到该函数后双击进入IDA View-A反汇编窗口,按下F5键查看伪代码,如下图。


通过理解上述代码,可得知,pass的每一位都必须由0-9,a-z,A-Z组成,否则程序跳转至sub_4017B0函数,该函数会提示pass错误并终止程序运行。

对于满足0-9,a-z,A-Z组成的字符,在0-9范围内的字符减去48;在a-z范围内的字符减去87;在A-Z范围内的字符减去29。

之后将处理后的字符放入数组中,再传入sub_4017F0函数中进行下一步处理。

双击sub_4017F0函数查看伪代码,如下图。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2019-3-25 00:50 被wenyuanzh编辑 ,原因: 图片挂了
收藏
免费 7
支持
分享
最新回复 (1)
雪    币: 314
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢大佬分享
2019-3-26 19:07
0
游客
登录 | 注册 方可回帖
返回
//