-
-
[原创]CTF第一题简要分析。。。
-
发表于: 2017-10-25 01:44 2261
-
刚好现在没事情干,就写一下吧。。。

IDA string window...看到了成功的提示,点进“恭喜”,xref一下。。。

IDA string window...看到了成功的提示,点进“恭喜”,xref一下。。。
1 | BOOL sub_401770()<br>{<br> HANDLE hProcess; / / ST5C_4@ 1 <br><br> MessageBoxA( 0 , "pass!" , "恭喜!" , 0 );<br> hProcess = GetCurrentProcess();<br> return TerminateProcess(hProcess, 0 );<br>} |
再xref sub_401770...
1 | int __thiscall sub_4017F0(CWnd * this)<br>{<br> struct CString * v1; / / ST08_4@ 1 <br> CWnd * v2; / / eax@ 1 <br> int v3; / / eax@ 1 <br> int result; / / eax@ 2 <br> char * Str ; / / [sp + 4Ch ] [bp - 8h ]@ 1 <br> CWnd * v6; / / [sp + 50h ] [bp - 4h ]@ 1 <br><br> v6 = this;<br> v1 = (CWnd * )((char * )this + 100 );<br> v2 = CWnd::GetDlgItem(this, 1002 );<br> CWnd::GetWindowTextA(v2, v1);<br> v3 = sub_4018D0((char * )v6 + 100 );<br> Str = CString::GetBuffer((CWnd * )((char * )v6 + 100 ), v3);<br> if ( strlen( Str ) )<br> {<br> if ( !strcmp( Str , "WelcomeToKanXueCtf2017" ) )<br> result = sub_401770();<br> else <br> result = sub_4017B0();<br> }<br> else <br> {<br> result = CWnd::MessageBoxA(v6, "请输入pass!" , 0 , 0 );<br> }<br> return result;<br>} |
先获取string,然后判断长度,然后跟
strcmp
1 | WelcomeToKanXueCtf2017 |
一样就对,不一样就错。。。
所以flag就是这玩意了。。。
[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!
赞赏
他的文章
赞赏
雪币:
留言: