-
-
[原创]2019看雪CTF晋级赛Q1第一题 流浪者WriteUp
-
发表于:
2019-3-25 00:46
7166
-
[原创]2019看雪CTF晋级赛Q1第一题 流浪者WriteUp
使用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编辑
,原因: 图片挂了