• 西邮linux兴趣小组2014纳新免试题(五)


    【第五关】

    题目


    http://final5.sinaapp.com/

    关注西邮Linux微信平台,得到一个名为a的文件

    分析


    分析文件a

    需要反汇编,拿IDA上,打开后发现key_function及关键代码

    得到索引 0x171B1A1A, 0x0B080D14, 0X8180E14, 0x15041A17, 0x1C1A0B0E

    使用下面程序进行索引

    #include<stdio.h>
    #include<string.h>
    int main()
    {
            int v[5] = {0x171B1A1A, 0x0B080D14, 0X8180E14, 0x15041A17, 0x1C1A0B0E};
            char index_table[] =  {0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x5f,0x2e,0x49};
            int i;
            char *p;
            for(i = 0; i < strlen(index_table); i++)
                    printf("%c", index_table[i]);
            printf("
    ");
    
            p = (char *)v;
            for(i = 0; i < 5*4; i++)
                    printf("%c", index_table[p[i]]);
            printf("
    ");
    
            return 0;
    }
    
    //运行结果如下:
    abcdefghijklmnopqrstuvwxyz_.I
    __.xuniluoyix_evol_I
    
    

    将该结果发送至微信平台,未得到正确回复。

    尝试将索引改为大端模式,得到x.__linuiyouve_xI_lo,结果不正确。

    观察__.xuniluoyix_evol_I,将其翻转即为一个正常字符串。

    将上面代码中for循环加以修改

    for(i = 5*4-1; i >= 0; i--)

    得到I_love_xiyoulinux.__

    发送至微信,得到通关回复

  • 相关阅读:
    HDU 1058
    Codeforces 349C
    HDU 2602
    HDU 2571
    HDU 2955
    HDU 2084
    HDU 1003
    HDU 1506 & 1505
    POJ 1854
    HDU 2095
  • 原文地址:https://www.cnblogs.com/rainmote/p/4160554.html
Copyright © 2020-2023  润新知