Reverse Question of the greatest challenge of geeks in the fifth quarter (2)

Source: Internet
Author: User

Obtain the dialog box data and determine the length:

004011b5 |. 6a 14 push 0x14;/COUNT = 14 (20 .) 004011b7 |. 51 push ECx; | buffer = 0018f8b8004011b8 |. 66: 894424 2D mov word PTR [esp + 0x2d], ax; | 004011bd |. 68 e8030000 push 0x3e8; | controlid = 3e8 (1000 .) 004011c2 |. 52 push edX; | hwnd004011c3 |. c64424 20 00 mov byte PTR [esp + 0x20], 0x0; | 004011c8 |. 884424 37 mov byte PTR [esp + 0x37], Al; | 004011cc |. 33ed xor ebp, EBP; | 004011ce |. ff15 b8504000 call dword ptr [<& user32.getdlgitemte>; \ getdlgitemtexta004011d4 |. 8d7c24 10 Lea EDI, dword ptr [esp + 0x10]; stack address = 0018f8b8, (ASCII "crack_qs") 004011d8 |. 83c9 FF or ECX, 0xffffffff004011db |. 33c0 XOR eax, eax004011dd |. f2: AE repne SCAs byte PTR ES: [EDI]; Key Length: 004011df |. f7d1 not ecx004011e1 |. 49 dec ecx004011e2 |. 83f9 0d CMP ECx, 0xd; Determine whether the key length is 13004011e5 |. 0f85 f0000000 jnz 004012db; skip to the end of the function if it is not 13 BITs

Next, check whether there are non-numbers in the key content:

004011ED  |> /8A440C 10     /mov     al, byte ptr [esp+ecx+0x10]004011F1  |. |3C 30         |cmp     al, 0x30004011F3  |. |0F8C E2000000 |jl      004012DB004011F9  |. |3C 39         |cmp     al, 0x39004011FB  |. |0F8F DA000000 |jg      004012DB00401201  |. |41            |inc     ecx00401202  |. |83F9 0D       |cmp     ecx, 0xD00401205  |.^\7C E6         \jl      short 004011ED

First verification key:

00401207 |. 0fbe7c24 16 movsx EDI, byte PTR [esp + 0x16]; keybuffer start address [esp + 0x10] 0040120c |. 0fbe4c24 10 movsx ECx, byte PTR [esp + 0x10] 00401211 |. 0fbe5424 19 movsx edX, byte PTR [esp + 0x19] 00401216 |. 8d4439 A0 Lea eax, dword ptr [ECx + edi-0x60]; key [0] + key [6]-0x60 (sum of two numbers to get the int value) 0040121a |. 83ea 26 sub edX, 0x26; key [9]-0x30 + 0xa0040121d |. 3bc2 CMP eax, EDX; judge whether key [0] (INT) + key [6] (INT) is equal to key [9] (INT) + 0xa0040121f |. 0f85 b6000000 jnz 004012db

Second verification key:

00401225 |. 8a5c24 17 mov BL, byte PTR [esp + 0x17]; key [7] 00401229 |. 8d41 D0 Lea eax, dword ptr [ecx-0x30]; key [0] (INT) 0040122c |. 99 cdq0040122d |. 0fbef3 movsx ESI, BL; ESI = Key [7] 00401230 |. 83e2 03 and EDX, 0x300401233 |. 03c2 add eax, EDX; (0 & 0x3) + key [0] (INT) 00401235 |. 8d56 D0 Lea edX, dword ptr [esi-0x30]; key [7] (INT) 00401238 |. c1f8 02 SAR eax, 0x2; (0 & 0x30) + key [0] (INT)> 20040123b |. 3bc2 CMP eax, EDX; Judge (0 & 0x3) + key [0] (INT)> 2 is equal to key [7] (INT) 0040123d |. 0f85 98000000 jnz 004012db

The third verification key:

00401243 |. 385c24 14 CMP byte PTR [esp + 0x14], BL; judge whether key [4] (INT) is equal to key [7] (INT) 00401247 |. 0f85 8e000000 jnz 004012db

The fourth verification key:

0040124d |. 0fbe4424 11 movsx eax, byte PTR [esp + 0x11]; key [1] 00401252 |. 8d1430 Lea edX, dword ptr [eax + esi]; key [1] + key [7] 00401255 |. 03d1 add edX, ECx; key [1] + key [7] + key [0] 00401257 |. 03d7 add edX, EDI; key [1] + key [7] + key [0] + key [6] 00401259 |. 81fa d4000000 CMP edX, 0xd4; judge whether key [1] + key [7] + key [0] + key [6] is equal to 0xd40040125f |. 75 7A jnz short 004012db

The fifth verification key:

00401261 |. 0fbe5424 12 movsx edX, byte PTR [esp + 0x12]; key [2] 00401266 |. 0fbe7424 15 movsx ESI, byte PTR [esp + 0x15]; key [5] 0040126b |. 03f2 add ESI, EDX; key [2] + key [5] 0040126d |. 03c1 add eax, ECx; key [0] + key [1] 0040126f |. 3bc6 CMP eax, ESI; judge whether the key [0] + key [1] is equal to the key [2] + key [5] 00401271 |. 75 68 jnz short 004012db

The sixth verification key:

00401273 |. 0fbe4424 13 movsx eax, byte PTR [esp + 0x13]; key [3] 00401278 |. 42 Inc edX; key [2] + 100401279 |. 3bd0 CMP edX, eax; judge whether key [2] + 1 is equal to key [3] 00401_ B |. 75 5E jnz short 004012db

Verification key in Section 9:

0040127d |. 807c24 16 38 CMP byte PTR [esp + 0x16], 0x38; judge whether key [6] is equal to '8' 00401282 |. 75 57 jnz short 004012db00401284 |. 807c24 10 39 CMP byte PTR [esp + 0x10], 0x39; Determine whether key [0] is equal to '9' 00401289 |. 75 50 jnz short 004012db0040128b |. 807c24 18 30 CMP byte PTR [esp + 0x18], 0x30; judge whether key [8] is equal to '0' 00401290 |. 75 49 jnz short 004012db

Check the key for the tenth time (check whether there are three '2' in the key '):

00401292  |.  33C0          xor     eax, eax00401294  |.  B1 32         mov     cl, 0x3200401296  |>  384C04 10     /cmp     byte ptr [esp+eax+0x10], cl     ;  if(key[i] == ‘2‘)0040129A  |.  75 01         |jnz     short 0040129D0040129C  |.  45            |inc     ebp                             ;  j++0040129D  |>  40            |inc     eax0040129E  |.  83F8 0D       |cmp     eax, 0xD004012A1  |.^ 7C F3         \jl      short 00401296004012A3  |.  83FD 03       cmp     ebp, 0x3004012A6  |.  75 33         jnz     short 004012DB

11th verification key:

004012A8  |.  0FBE4424 1B   movsx   eax, byte ptr [esp+0x1B]         ;  key[11]004012AD  |.  0FBE4C24 1A   movsx   ecx, byte ptr [esp+0x1A]         ;  key[10]004012B2  |.  8D50 FF       lea     edx, dword ptr [eax-0x1]         ;  key[11]-1004012B5  |.  3BCA          cmp     ecx, edx                         ;  key[10] == key[11]-1004012B7  |.  75 22         jnz     short 004012DB

12th verification key:

004012B9  |.  83C1 D0       add     ecx, -0x30                       ;  key[10](int)004012BC  |.  83C0 D0       add     eax, -0x30                       ;  key[11](int)004012BF  |.  0FAFC8        imul    ecx, eax                         ;  key[10](int)*key[11](int)004012C2  |.  0FBE4424 1C   movsx   eax, byte ptr [esp+0x1C]         ;  key[c]004012C7  |.  83E8 30       sub     eax, 0x30                        ;  key[c](int)004012CA  |.  33D2          xor     edx, edx004012CC  |.  3BC8          cmp     ecx, eax                         ;  key[10](int)*key[11](int) == key[c](int)

Key: 9156258207236.

Bin download link: http://pan.baidu.com/s/1mgA4Kje password: vvmi

Reverse Question of the greatest challenge of geeks in the fifth quarter (2)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.