-
-
[原创]签到题 身在何处WP
-
发表于: 2021-11-15 17:16 2770
-
先查字符串,根据提示信息查交叉引用找到验证函数地址为:0x00041340
//.text:00041340 int __cdecl check(HWND hDlg) { int v1; // ebx int crc_account; // ebx int i_seri; // eax int result; // eax signed int v5; // [esp+Ch] [ebp-260h] char a1[200]; // [esp+10h] [ebp-25Ch] BYREF CHAR account[200]; // [esp+D8h] [ebp-194h] BYREF CHAR seri[200]; // [esp+1A0h] [ebp-CCh] BYREF memset(account, 0, sizeof(account)); memset(a1, 0, sizeof(a1)); memset(seri, 0, sizeof(seri)); v1 = GetDlgItemTextA(hDlg, 1000, account, 201); if ( v1 && (v5 = GetDlgItemTextA(hDlg, 1001, seri, 201), crc_account = crc32(account, v1), strspn(seri, "0123456789") == strlen(seri)) //序列号字符集为[0-9] && v5 <= 10 //序列号长度 <= 10 && (i_seri = atoi(seri)) != 0 //根据提供的一对账号/序列号,可知crc32("52a1ed5a")==0x13B88C77 && (itoa(crc_account ^ i_seri, a1, 16), crc32(a1, 8) == 0x13B88C77) ) //等价检查(cac_account^i_seri) == 0x52a1ed5a { SetDlgItemTextA(hDlg, 1001, "Success!"); result = 1; } else { SetDlgItemTextA(hDlg, 1001, "Wrong Serial!"); result = 0; } return result; }
根据验证逻辑可知序列号为:
seri = itoa(crc32("KCTF")^0x52a1ed5a) //10进制字符串
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2021-11-15 17:21
被Anakin Stone编辑
,原因:
赞赏
他的文章
- [原创]驱动保护-EAC内核调试检测分析 25374
- [原创]第七题 声名远扬WP 14756
- [原创]第二题 迷失丛林WP 12278
- [原创]签到题 身在何处WP 2771
- [原创]VMProtect分析(三) 24929
看原图
赞赏
雪币:
留言: