首页
社区
课程
招聘
WannaLOL第一题wp
发表于: 2017-6-2 12:49 2138

WannaLOL第一题wp

2017-6-2 12:49
2138

已经提示无壳,直接od载入,下bpx GetDlyItemTextA断点

004011F4   $  55            push ebp
004011F5   .  8BEC          mov ebp,esp
004011F7   .  83EC 1C       sub esp,0x1C
004011FA   .  8D45 E4       lea eax,dword ptr ss:[ebp-0x1C]
004011FD   .  6A 15         push 0x15                                ; /Count = 15 (21.)
004011FF   .  50            push eax                                 ; |Buffer = 00000020
00401200   .  68 E9030000   push 0x3E9                               ; |ControlID = 3E9 (1001.)
00401205   .  FF35 38AA4000 push dword ptr ds:[<hDlg>]               ; |hWnd = 000501AA (class='#32770',parent=000400E6)
0040120B   .  FF15 A8704000 call dword ptr ds:[<&USER32.GetDlgItemTe>; \GetDlgItemTextA
00401211   .  68 F4010000   push 0x1F4                               ; /Timeout = 500. ms
00401216   .  FF15 00704000 call dword ptr ds:[<&KERNEL32.Sleep>]    ; \Sleep
0040121C   .  8D45 E4       lea eax,dword ptr ss:[ebp-0x1C]
0040121F   .  50            push eax                                 ; /s = 00000020 ???
00401220   .  E8 DB000000   call <WannaLOL._strlen>                  ; \_strlen
00401225   .  83F8 04       cmp eax,0x4
00401228   .  59            pop ecx                                  ;  <WannaLOL.aCrackme2017Ctf>
00401229   .  0F85 A0000000 jnz WannaLOL.004012CF
0040122F   .  6A 30         push 0x30
00401231   .  59            pop ecx                                  ;  <WannaLOL.aCrackme2017Ctf>
00401232   .  384D E4       cmp byte ptr ss:[ebp-0x1C],cl            ;  第一位
00401235   .  0F84 94000000 je WannaLOL.004012CF
0040123B   .  384D E5       cmp byte ptr ss:[ebp-0x1B],cl            ;  第二位
0040123E   .  0F84 8B000000 je WannaLOL.004012CF
00401244   .  384D E6       cmp byte ptr ss:[ebp-0x1A],cl            ;  第三位
00401247   .  0F84 82000000 je WannaLOL.004012CF
0040124D   .  384D E7       cmp byte ptr ss:[ebp-0x19],cl            ;  第四位
00401250   .  74 7D         je short WannaLOL.004012CF               ;  四位都不能是0
00401252   .  807D E4 31    cmp byte ptr ss:[ebp-0x1C],0x31
00401256   .  75 77         jnz short WannaLOL.004012CF
00401258   .  807D E5 35    cmp byte ptr ss:[ebp-0x1B],0x35          ;  前两位必须是15
0040125C   .  75 71         jnz short WannaLOL.004012CF
0040125E   .  74 03         je short WannaLOL.00401263
00401260   .  75 01         jnz short WannaLOL.00401263
00401262      E8            db E8
00401263   .  66:B8 0800    mov ax,0x8
00401267   .  66:35 0700    xor ax,0x7                               ;  ax定义为f
0040126B   .  0FBE45 E6     movsx eax,byte ptr ss:[ebp-0x1A]
0040126F   .  2BC1          sub eax,ecx                              ;  第三位-30
00401271   .  8945 FC       mov dword ptr ss:[ebp-0x4],eax
00401274   .  0FBE45 E4     movsx eax,byte ptr ss:[ebp-0x1C]         ;  第一位给eax
00401278   .  DB45 FC       fild dword ptr ss:[ebp-0x4]              ;  第三位-30双精度压站
0040127B   .  2BC1          sub eax,ecx
0040127D   .  8945 FC       mov dword ptr ss:[ebp-0x4],eax           ;  第一位-30
00401280   .  0FBE45 E5     movsx eax,byte ptr ss:[ebp-0x1B]
00401284   .  DB45 FC       fild dword ptr ss:[ebp-0x4]              ;  第1位-30压站
00401287   .  2BC1          sub eax,ecx                              ;  第一位-第二位
00401289   .  8945 FC       mov dword ptr ss:[ebp-0x4],eax           ;  第一位-第二位给变量4
0040128C   .  DA75 FC       fidiv dword ptr ss:[ebp-0x4]             ;  第一位-30/第二位-第一位
0040128F   .  0FBE45 E7     movsx eax,byte ptr ss:[ebp-0x19]         ;  第四位给eax
00401293   .  2BC1          sub eax,ecx
00401295   .  8945 FC       mov dword ptr ss:[ebp-0x4],eax
00401298   .  DEE9          fsubp st(1),st                           ;  (第三位-30)-0.2
0040129A   .  DA4D FC       fimul dword ptr ss:[ebp-0x4]             ;  ((第三位-30)-0.2 )*(第四-30位)
0040129D   .  D80D 1C714000 fmul dword ptr ds:[0x40711C]             ;  ((第三位-30)-0.2 )*(第四-30位)*16
004012A3   .  D95D FC       fstp dword ptr ss:[ebp-0x4]              ;  结果保存到变量4
004012A6   .  74 03         je short WannaLOL.004012AB
004012A8   .  75 01         jnz short WannaLOL.004012AB
004012AA      E8            db E8
004012AB   .  66:B8 0800    mov ax,0x8
004012AF   .  66:35 0700    xor ax,0x7
004012B3   .  D945 FC       fld dword ptr ss:[ebp-0x4]               ;  结果再次压站
004012B6   .  D81D 18714000 fcomp dword ptr ds:[0x407118]            ;  和384.000比
004012BC   .  6A 00         push 0x0

最后的公式其实就是(i-0.2)*j*16=384

python注册机:

for i in range(1,10):
    for j in range(1,10):
        if (i-0.2)*j==24:
            print i,j



[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回