-
-
[原创]签到题 身在何处WP
-
发表于: 2021-11-15 17:16 2845
-
先查字符串,根据提示信息查交叉引用找到验证函数地址为:0x00041340
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | //.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; } |
根据验证逻辑可知序列号为:
1 | seri = itoa(crc32( "KCTF" )^0x52a1ed5a) //10进制字符串 |
[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!
最后于 2021-11-15 17:21
被Anakin Stone编辑
,原因:
赞赏
他的文章
- [原创]驱动保护-EAC内核调试检测分析 25905
- [原创]第七题 声名远扬WP 14840
- [原创]第二题 迷失丛林WP 12346
- [原创]签到题 身在何处WP 2846
- [原创]VMProtect分析(三) 25076
赞赏
雪币:
留言: