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

【第五关】

题目


http://final5.sinaapp.com/

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

分析


分析文件a

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

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

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

得到索引 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.__

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

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

上一篇:Yii 框架中带有区间的搜索


下一篇:Android包管理机制(二)PackageInstaller安装APK