-
-
[原创]CTF2017 第一题
-
发表于: 2017-6-1 13:40 2906
-
搜索字符串error来到以下位置
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | 0040124F > \ 66 :B8 0800 mov ax, 0x8 00401253 . 66 : 35 0700 xor ax, 0x7 00401257 . 0FBE45 E6 movsx eax, byte ptr [ebp - 0x1A ] 0040125B . 2BC1 sub eax, ecx 0040125D . 8945 FC mov dword ptr [ebp - 0x4 ], eax 00401260 . 0FBE45 E4 movsx eax, byte ptr [ebp - 0x1C ] 00401264 . DB45 FC fild dword ptr [ebp - 0x4 ] 00401267 . 2BC1 sub eax, ecx 00401269 . 8945 FC mov dword ptr [ebp - 0x4 ], eax 0040126C . 0FBE45 E5 movsx eax, byte ptr [ebp - 0x1B ] 00401270 . DB45 FC fild dword ptr [ebp - 0x4 ] 00401273 . 2BC1 sub eax, ecx 00401275 . 8945 FC mov dword ptr [ebp - 0x4 ], eax 00401278 . DA75 FC fidiv dword ptr [ebp - 0x4 ] ; x = sn[ 0 ] / sn[ 1 ] 0040127B . 0FBE45 E7 movsx eax, byte ptr [ebp - 0x19 ] 0040127F . 2BC1 sub eax, ecx 00401281 . 8945 FC mov dword ptr [ebp - 0x4 ], eax 00401284 . DEE9 fsubp st( 1 ), st ; y = sn[ 2 ] - x 00401286 . DA4D FC fimul dword ptr [ebp - 0x4 ] ; y * = sn[ 3 ] 00401289 D80D 1C714000 fmul dword ptr [ 0x40711C ] ; y * = 16 0040128F . D95D FC fstp dword ptr [ebp - 0x4 ] 00401292 . 74 03 je short 00401297 00401294 . 75 01 jnz short 00401297 00401296 E8 db E8 00401297 > 66 :B8 0800 mov ax, 0x8 0040129B . 66 : 35 0700 xor ax, 0x7 0040129F . D945 FC fld dword ptr [ebp - 0x4 ] 004012A2 . D81D 18714000 fcomp dword ptr [ 0x407118 ] ; = = 384 004012A8 . 6A 00 push 0x0 004012AA . 68 64804000 push 00408064 ; crackme 2017 ctf 004012AF . DFE0 fstsw ax 004012B1 . 9E sahf 004012B2 . 75 0E jnz short 004012C2 004012B4 . 68 48804000 push 00408048 ; registration successful ! 004012B9 . EB 0C jmp short 004012C7 004012BB > 6A 00 push 0x0 004012BD . 68 64804000 push 00408064 ; crackme 2017 ctf 004012C2 > 68 40804000 push 00408040 ; error ! 004012C7 > FF35 24AA4000 push dword ptr [ 0x40AA24 ] ; |hOwner = NULL 004012CD . FF15 AC704000 call dword ptr [<&USER32.MessageBoxA>>; \MessageBoxA 004012D3 . C9 leave 004012D4 . C3 retn 得到 384 / 16 = 24 = (sn[ 2 ] - (sn[ 0 ] / sn[ 1 ])) * sn[ 3 ] 上面提到的sn[n]都是 - 0x30 之后的 然后穷举 for x1 in range ( 1 , 1000 ): for x2 in range ( 1 , 1000 ): for x3 in range ( 1 , 1000 ): for x4 in range ( 1 , 1000 ): if (x3 - (x1 / x2)) * x4 = = 24 : print (x1, x2, x3, x4) 结果: 1 1 2 24 1 1 3 12 1 1 4 8 1 1 5 6 1 1 7 4 1 1 9 3 1 1 13 2 1 1 25 1 1 2 1 48 1 2 2 16 1 3 3 9 1 4 1 32 1 5 1 30 1 5 5 5 1 7 1 28 1 9 1 27 .... 挑一个 1148 提交成功 我挑的正好是能提交成功的?还是现在WEB提交答案改进了,多解也能成功提交? |
赞赏
他的文章
- [原创]第十题 2961
- [原创]第一题 2959
- [原创]第1、3题(补) 3238
- [原创]CTF2017 第一题 2907
- [原创]第十八题分析 3485
赞赏
雪币:
留言: