-
-
第一题 流浪者WriteUp
-
发表于: 2019-3-14 22:47 2991
-
通过查看字符串来到下面这个函数
int __cdecl sub_4017F0(char *a1)
{
int result; // eax
char Str1[28]; // [esp+D8h] [ebp-24h]
int v3; // [esp+F4h] [ebp-8h]
int v4; // [esp+F8h] [ebp-4h]
v4 = 0;
v3 = 0;
while ( *(_DWORD *)&a1[4 * v4] < 62 && *(_DWORD *)&a1[4 * v4] >= 0 )
{
Str1[v4] = aAbcdefghiabcde[*(_DWORD *)&a1[4 * v4]];// abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ\x00 Str1从这个串中得到KanXueCTF2019JustForhappy的
++v4;
}
Str1[v4] = 0;
if ( !strcmp(Str1, "KanXueCTF2019JustForhappy") )
result = pass_401770();
else
result = error_4017B0();
return result;
}
下面查找交叉引用,找出索引的构造
int __thiscall sub_401890(CWnd *this)
{
struct CString *v1; // ST08_4
CWnd *v2; // eax
int v3; // eax
int v5[26]; // [esp+4Ch] [ebp-74h]
int i; // [esp+B4h] [ebp-Ch]
char *Str; // [esp+B8h] [ebp-8h]
CWnd *v8; // [esp+BCh] [ebp-4h]
v8 = this;
v1 = (CWnd *)((char *)this + 100);
v2 = CWnd::GetDlgItem(this, 1002);
CWnd::GetWindowTextA(v2, v1);
v3 = sub_401A30((char *)v8 + 100);
Str = CString::GetBuffer((CWnd *)((char *)v8 + 100), v3);
if ( !strlen(Str) )
return CWnd::MessageBoxA(v8, "请输入pass!", 0, 0);
for ( i = 0; Str[i]; ++i )
{
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- [原创]KCTF 2024 第十题 试探 3220
- KCTF2023第五题 争分夺秒 9540
- KCTF2022第三题 石像病毒 7299
- [原创]KCTF2021春季赛第四题 英雄救美 10040
- [原创] 第五题:魅影舞姬 3213
看原图
赞赏
雪币:
留言: