西邮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("\n");

        p = (char *)v;
        for(i = 0; i < 5*4; i++)
                printf("%c", index_table[p[i]]);
        printf("\n");

        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.__

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

 

posted @ 2014-05-03 03:08  雨中尘埃  阅读(365)  评论(0编辑  收藏  举报