请高手破解百度指数中的一个算法

caoshangfei 2010-09-13 08:22:08
百度指数查询:http://index.baidu.com/main/word.php?word=qq&submit=%B0%D9%B6%C8%D2%BB%CF%C2
显示曲线的那个FLASH (http://index.baidu.com/fla/TrendAnalyser.swf)已经通过闪客精灵破解了。
但是关键一个算法,估计用了混淆,导致破解出来的代码,不容易看懂。因本人不大懂AS的混淆机制,希望有高人指点下。破解出来的StringTool.as代码如下:

如有高手做过,可以加我QQ:1469886 不甚感激。愿意出500分求答案。
package
{
import baidu.lib.utils.*;

public class StringTool extends Object
{
//下面这段定义应该是错的
private static var format:String;
private static var format:String;
private static var format:String;
private static var format:String;
private static var format:String;
private static var format:String;
private static var format:String;
private static var genCode:String;
private static var genCode:String;
private static var genCode:String;
private static var genCode:String;
private static var genCode:String;
private static var genCode:String;
private static var genCode:String;
private static var genCode:String;
private static var genCode:String;
private static var genCode:String;
public function StringTool()
{
return;
}// end function

private static function format(param1:String, param2:String) : String
{
return String.fromCharCode(Math.floor(param1.charCodeAt(0) * param2.charCodeAt(0) / 110));
}// end function

public static function genCode(param1:String) : String
{
return StringTool.genCode.apply(StringTool, arguments);
}// end function

private static function genCode() : String
{
return NumberFormatter.format(Math.random(), "IDDDD");
}// end function

private static function genCode() : void
{
//关键是以下这段代码
genCode = "Z";
genCode = "g";
genCode = "X";
genCode = "e";
genCode = "S";
genCode = "c";
genCode = "J";
genCode = "a";
//上面定义的变量名称一样,应该是错误的。包括下面的代码。
genCode = format(genCode, genCode); //此处的format函数不是上面提到的format函数。在另外一个as文件中。
format = format(genCode, genCode);
format = format(genCode, genCode);
format = format(genCode, genCode);
format = format(genCode, genCode);
format = format(genCode, genCode);
format = format(genCode, genCode);
format = format(genCode, genCode);
genCode = genCode + format + genCode + format + genCode + format + genCode + format + genCode + format + genCode + format + genCode + format + genCode + genCode;
return;
}// end function

private static function genCode(param1:String) : String
/*param1是服务器生成的一个临时数值和查询的关键词相加的字符
然后通过这个function 加上上面的function 生成的秘钥然后md5一下。再在两边加上5个随机数字 提交到服务器上验证
md5函数我测试过应该没被修改过.现在不知道怎么分析他的秘钥(就是上面一个function)
*/
{
var _loc_2:String = null;
if (!genCode)
{
genCode();
}
_loc_2 = genCode() + MD5.encrypt(param1 + genCode) + genCode();
return _loc_2;
}// end function

}
}

...全文
705 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
caoshangfei 2010-09-16
  • 打赏
  • 举报
回复
500积分+500现金。有人帮忙么。
caoshangfei 2010-09-14
  • 打赏
  • 举报
回复
我不想用flash。只是想把里面的代码抓取出来,转换成其他语言的。
passself 2010-09-14
  • 打赏
  • 举报
回复
函数的名字一样应该参数不一样,肯定是破解错了,再说这个验证码的flash没有必要破解,自己再下载一个直接用就可以了
caoshangfei 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 leemiki 的回复:]
这个东西有点牛!

我好好看看再说....
[/Quote]
高手,能加个QQ指导下么。
caoshangfei 2010-09-13
  • 打赏
  • 举报
回复
谢谢。
leemiki 2010-09-13
  • 打赏
  • 举报
回复
这个东西有点牛!

我好好看看再说....

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧