zoukankan      html  css  js  c++  java
  • 16进制转10进制算法的一个CRACKME

    这个CRACKME:


    00401262  |.  8D4424 04     lea eax,dword ptr ss:[esp+0x4]
    00401266  |.  6A 0A         push 0xA                                   ; /Count = A (10.)
    00401268  |.  50            push eax                                   ; |Buffer
    00401269  |.  51            push ecx                                   ; |hWnd => 02F5035E (class='Edit',parent=028E0306)
    0040126A  |.  FF15 64204000 call dword ptr ds:[<&USER32.GetWindowTextA>; GetWindowTextA
    00401270  |.  68 10304000   push CrackMe3.00403010                     ;  Iceberg
    00401275  |.  E8 96FEFFFF   call CrackMe3.00401110			;加密 Iceberg 得到

    • 00401110 /$ 8B5424 04 mov edx,dword ptr ss:[esp+0x4] 算法
    • 00401114 |. 33C0 xor eax,eax
    • 00401116 |. 8A0A mov cl,byte ptr ds:[edx]
    • 00401118 |. 84C9 test cl,cl
    • 0040111A |. 74 1A je XCrackMe3.00401136
    • 0040111C |> 80F9 41 /cmp cl,0x41
    • 0040111F |. 7C 15 |jl XCrackMe3.00401136
    • 00401121 |. 80F9 5A |cmp cl,0x5A
    • 00401124 |. 0FBEC9 |movsx ecx,cl
    • 00401127 |. 7E 03 |jle XCrackMe3.0040112C
    • 00401129 |. 83E9 20 |sub ecx,0x20
    • 0040112C |> 03C1 |add eax,ecx
    • 0040112E |. 8A4A 01 |mov cl,byte ptr ds:[edx+0x1]
    • 00401131 |. 42 |inc edx
    • 00401132 |. 84C9 |test cl,cl
    • 00401134 |.^ 75 E6 jnz XCrackMe3.0040111C
    • 00401136 |> 35 78560000 xor eax,0x5678
    00401261  |.  56            push esi
    00401262  |.  8D4424 04     lea eax,dword ptr ss:[esp+0x4]
    00401266  |.  6A 0A         push 0xA                                   ; /Count = A (10.)
    00401268  |.  50            push eax                                   ; |Buffer
    00401269  |.  51            push ecx                                   ; |hWnd => 02F5035E (class='Edit',parent=028E0306)
    0040126A  |.  FF15 64204000 call dword ptr ds:[<&USER32.GetWindowTextA>; GetWindowTextA
    00401270  |.  68 10304000   push CrackMe3.00403010                     ;  Iceberg
    00401275  |.  E8 96FEFFFF   call CrackMe3.00401110
    0040127A  |.  8D5424 08     lea edx,dword ptr ss:[esp+0x8]
    0040127E  |.  8BF0          mov esi,eax
    00401280  |.  52            push edx
    00401281  |.  E8 BAFEFFFF   call CrackMe3.00401140
    00401286  |.  83C4 08       add esp,0x8
    00401289  |.  3BF0          cmp esi,eax
    0040128B  |.  5E            pop esi
    0040128C  |.  75 0E         jnz XCrackMe3.0040129C
    0040128E  |.  A1 20304000   mov eax,dword ptr ds:[0x403020]
    00401293  |.  6A 01         push 0x1                                   ; /Enable = TRUE
    00401295  |.  50            push eax                                   ; |hWnd => NULL
    00401296  |.  FF15 5C204000 call dword ptr ds:[<&USER32.EnableWindow>] ; EnableWindow
    


    
    

    16进制转10进制算法:

    00401140  /$  8B5424 04     mov edx,dword ptr ss:[esp+0x4]
    00401144  |.  33C0          xor eax,eax
    00401146  |.  8A0A          mov cl,byte ptr ds:[edx]
    00401148  |.  84C9          test cl,cl
    0040114A  |.  74 11         je XCrackMe3.0040115D
    0040114C  |>  0FBEC9        /movsx ecx,cl
    0040114F  |.  8D0480        |lea eax,dword ptr ds:[eax+eax*4]
    00401152  |.  42            |inc edx
    00401153  |.  8D4441 D0     |lea eax,dword ptr ds:[ecx+eax*2-0x30]
    00401157  |.  8A0A          |mov cl,byte ptr ds:[edx]
    00401159  |.  84C9          |test cl,cl
    0040115B  |.^ 75 EF         jnz XCrackMe3.0040114C
    
    这个明显就是算法 草  我居然没看出来···················

    int __cdecl sub_401140(int a1)
    {
      int v1; // edx@1
      int v2; // eax@1
      char i; // cl@1
    
    
      v1 = a1;
      v2 = 0;
      for ( i = *(_BYTE *)a1; *(_BYTE *)v1; i = *(_BYTE *)v1 )
      {
        ++v1;
        v2 = i + 10 * v2 - 48;
      }
      return v2 ^ 0x1234;
    }



    
    
    
  • 相关阅读:
    nacos + seata 报错 endpoint format should like ip:port
    Error creating bean with name 'com.example.demo.ProviderFacade': Requested bean is currently in creation: Is there an unresolvable circular reference?
    leetcode 剑指 Offer 65不用加减乘除做加法
    vscode使用spring boot配置详解
    使用springmvc中视图解析器InternalResourceViewResolver遇到访问出错
    docker tomcat修改时区有效方法
    wsl2 docker mysql重启之后无法连接问题
    docker tomcat部署应用并且连接到docker mysql数据库
    vscode git使用
    vscode wsl2使用maven操作{添加包到meavn,测试操作}
  • 原文地址:https://www.cnblogs.com/zcc1414/p/3982533.html
Copyright © 2011-2022 走看看