欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

三个白帽挑战之二进制题《迷阵陷落》分析

来源:本站整理 作者:佚名 时间:2016-05-12 TAG: 我要投稿

三个白帽在线挑战平台,集WEB和二进制挑战于一身,以在线挑战的形式把网络安全相关领域白帽子的技术和智慧淋漓尽致地展现出来,为白帽子们搭建了一个非常完美、和谐的在线交流平台,使得白帽子之间可以融洽地施展绝技、交流创意和想法。一次一次的挑战让白帽子们大饱眼福、乐在其中,让大家脑洞大开,并且收获满满,同时回味无穷!
由于对windows平台下二进制有过研究,本着和大家交流学习的目的,在和三个白帽平台管理沟通后,为《条条大路通罗马系列》设计了一个二进制算法题目。本文将首先从破解者角度对这个二进制题进行分析,单纯以破解者身份来逆向分析算法,解密数据,从而最终获得flag。另外将从该题设计者角度进行分析,一步步描述每步算法相对应的数据如何加密、解密的,试图达到什么样的效果,试图在哪里困住破解者。

0x01 正向破解加密算法
首先我们按照程序的流程,一步步分析算法、破解算法。
1、和第一次二进制题一样,首先通过字符串查找,找到字符串where is flag?flag is in the beautifull spring!
2、双击字符串来到算法关键位置,相关汇编代码分析如下:
004026E0  |.  57            push    edi                            ;  这里开始了一个非常初级的数独游戏
004026E1  |.  8D4C24 10     lea     ecx, dword ptr [esp+10]
004026E5  |.  897424 18     mov     dword ptr [esp+18], esi
004026E9  |.  E8 68080000   call   
004026EE  |.  33DB          xor     ebx, ebx
004026F0  |.  68 60564000   push    00405660                       ;  where is flag?flag is in the beautifull spring!
004026F5  |.  8D4C24 14     lea     ecx, dword ptr [esp+14]
004026F9  |.  C78424 D00000>mov     dword ptr [esp+D0], 1
00402704  |.  895C24 18     mov     dword ptr [esp+18], ebx
00402708  |.  E8 43080000   call   
0040270D  |.  8BAC24 D80000>mov     ebp, dword ptr [esp+D8]
00402714  |.  83C9 FF       or      ecx, FFFFFFFF
00402717  |.  8BFD          mov     edi, ebp
00402719  |.  33C0          xor     eax, eax
0040271B  |.  F2:AE         repne   scas byte ptr es:[edi]
0040271D  |.  F7D1          not     ecx
0040271F  |.  49            dec     ecx
00402720  |.  83E9 0C       sub     ecx, 0C
00402723  |.  74 5A         je      short 0040277F
00402725  |>  BF 54564000   /mov     edi, 00405654                 ;  adf438ghi
0040272A  |.  83C9 FF       |or      ecx, FFFFFFFF
0040272D  |.  33C0          |xor     eax, eax
0040272F  |.  33D2          |xor     edx, edx
00402731  |.  F2:AE         |repne   scas byte ptr es:[edi]
00402733  |.  F7D1          |not     ecx
00402735  |.  49            |dec     ecx
00402736  |.  74 23         |je      short 0040275B
00402738  |.  8A1C2E        |mov     bl, byte ptr [esi+ebp]        ;  单个取输入的字符
0040273B  |>  3A9A 54564000 |/cmp     bl, byte ptr [edx+405654]    ;  判断取出来的字符是否在adf438ghi中

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载