西邮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.__
发送至微信,得到通关回复
作者:rainmote
博客:http://www.cnblogs.com/rainmote
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。