=========================第二阶段比赛=========================
第二阶段比赛说明
参加资格:只有通过第一阶段比赛的选手,方可参与此阶段的比赛。具体名单请参考: 看雪论坛.珠海金山2007逆向分析挑战赛---第一阶段通过选手名单(65位)
本阶段采用综合计分的方式选出进入第三阶段的选手。
本阶段共四道题目,每题计分,每题的计分方法,将在题目放出时公布。
四道题不是同时给出,在第一题结束后,再放出第二题,以此类推。但无论答题正确与否,都有资格参与下一题的回答。若题目答错或未答,该题均计0分。
第二阶段第四题
StrDiggerMe,StrDiggerMe2这两个文件都是演示程序,使用到的字符都被一个函数解密后再显示出来的。尝试写一个程序,通过静态分析,获得这种加密方式解密后的字符串。并将这些字符串输出到一个out.txt的文件中(每个字符串占一行,若字符串回车用\n 表示)。
要求
1.要求是静态分析,不得使用调试API等让StrDiggerMe运行起来的方法进行解密字符串。
2.上传方式:将解密程序代码及编译好的程序以附件上传到“看雪论坛.珠海金山2007逆向分析挑战赛答案提交区”。
3.提交答案后,请在本帖跟帖确认一下。
其他注意事项
1. 比赛答题期间,不得在论坛或群等公开场所讨论
2. 其他未通过第一阶段的朋友也可提交答题,但不计成绩,仅为友情参与。
提交机会:此题每个选手有多次提交附件的机会.但从第二次提交附件起,每提交一次分数减5分做为惩罚,详见计分公式.以最后一次提交结果为最终计分结果,之前的提交不进行计分.
答题时间:2007-9-7 12:00 至 2007-9-10 12:00止
计分公式:
评分时会拿另外一个使用相同加密算法加密的程序test.exe(此程序使用生成演示程序同样的方法进行处理),通过解密出函数的条数和答题时间得到分数。
得分 =[(4320 - 做题时间)/4320]1/3 * (正确解密条数/实际条数) *150 - (附件提交次数 - 1)*5
对于不了解此加密算法的人允许直接扣取代码的,不视为作弊处理。但总成绩按计分成绩的85%。
test.exe 里加密字符串均会 >= 10 个字节
例:
若test源码类似于以下代码:
str1 = ECRYPT("11111111111111111111");
decode(str1);
str2 = ECRYPT("22222222222222222222");
decode(str2);
strcpy(str3,str1);
strcat(str3,str2);
printf("%s",str3);
选手只要在out.txt输出
11111111111111111111
22222222222222222222
则正确条数为2
本题最高150分,最低0分。
做题时间是指从 2007-9-7 12:00开始到该次附件提交时间的总共分钟数。
更多规则请参考:看雪论坛.珠海金山2007逆向分析挑战赛——“金山杯”赛事细则
看雪论坛.珠海金山2007逆向分析比赛委员会
http://bbs.pediy.com
2007.9.7