首页
论坛
课程
招聘
[原创]CTF第一题简要分析。。。
2017-10-25 01:44 1061

[原创]CTF第一题简要分析。。。

2017-10-25 01:44
1061
刚好现在没事情干,就写一下吧。。。

IDA string window...看到了成功的提示,点进“恭喜”,xref一下。。。
BOOL sub_401770()
{
HANDLE hProcess; // ST5C_4@1

MessageBoxA(0, "pass!", "恭喜!", 0);
hProcess = GetCurrentProcess();
return TerminateProcess(hProcess, 0);
}
再xref sub_401770...
int __thiscall sub_4017F0(CWnd *this)
{
struct CString *v1; // ST08_4@1
CWnd *v2; // eax@1
int v3; // eax@1
int result; // eax@2
char *Str; // [sp+4Ch] [bp-8h]@1
CWnd *v6; // [sp+50h] [bp-4h]@1

v6 = this;
v1 = (CWnd *)((char *)this + 100);
v2 = CWnd::GetDlgItem(this, 1002);
CWnd::GetWindowTextA(v2, v1);
v3 = sub_4018D0((char *)v6 + 100);
Str = CString::GetBuffer((CWnd *)((char *)v6 + 100), v3);
if ( strlen(Str) )
{
if ( !strcmp(Str, "WelcomeToKanXueCtf2017") )
result = sub_401770();
else
result = sub_4017B0();
}
else
{
result = CWnd::MessageBoxA(v6, "请输入pass!", 0, 0);
}
return result;
}
先获取string,然后判断长度,然后跟
WelcomeToKanXueCtf2017
strcmp
一样就对,不一样就错。。。
所以flag就是这玩意了。。。


2020 KCTF秋季赛【攻击篇】正在火热进行中!

收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回