网页游戏 神创天下 第7大道 资源文件破解

用了doswf加密混淆,所以只能猜resource.dat文件格式。搞了2个小时。

                trace(' ------------ '+b.bytesAvailable);
                trace(b.readInt());
                trace(b.readInt());
                
                while(b.bytesAvailable)
                {
                    var l:int = b.readByte();
                    
                    if(l == 1)
                    {
                        // control mode
                        var nextInt:int = b.readByte();
                        switch(nextInt)
                        {
                            case 0:
                            {
                                var l0_1 = b.readByte();
                                var l0_2 = b.readInt();
                                var l0_3 = b.readByte();
                                trace(b.bytesAvailable+':l1-0:' + l0_1+':'+l0_2+':'+b.readUTFBytes(l0_3));
                                break;
                            }
                            case 1:
                            {
                                trace(b.bytesAvailable+':l1-1:' + b.readByte() + ' '  + b.readByte() + ' '  + b.readByte() + ' '  + b.readByte() + ' '  + b.readByte());
                            }
                            case 2:
                            {
                                var l = b.readByte();
                                if(l <= 0)
                                {
                                    var l_2_0 = b.readInt();
                                    var l_2_0_l = b.readByte();
                                    trace(b.bytesAvailable+':l1-2-0:' + l_2_0 + ':' + b.readUTFBytes(l_2_0_l));
                                }
                                else
                                {
                                    trace(b.bytesAvailable+':l1-2-s:' + b.readUTFBytes(l));
                                }
                                break;
                            }
                            case 3:
                            {
                                var l = b.readByte();
                                if(l <= 0)
                                {
                                    trace(b.bytesAvailable+':l1-3-0:' + b.readInt());
                                }
                                else
                                {
                                    trace(b.bytesAvailable+':l1-3-s:' + b.readUTFBytes(l));
                                }
                                break;
                            }
                            case 4:
                            {
                                var l = b.readByte();
                                if(l <= 0)
                                {
                                    trace(b.bytesAvailable+':l1-4-0:' + b.readInt());
                                }
                                else
                                {
                                    trace(b.bytesAvailable+':l1-4-s:' + b.readUTFBytes(l));
                                }
                                break;
                            }
                            default:
                            {
                                throw new Error('unknown type');
                                break;
                            }
                        }
                    }
                    else if(l == 4)
                    {
                        b.readByte();
                        b.readByte();
                        b.readByte();
                        b.readByte();
                        b.readByte();
                        b.readByte();
                        var l = b.readByte();
                        trace(b.bytesAvailable+':l4:' + b.readUTFBytes(l));
                    }
                    else if(l == 0)
                    {
                        b.readByte();
                        b.readByte();
                        b.readByte();
                        b.readByte();
                        b.readByte();
                        b.readByte();
                        if(b.bytesAvailable <= 0)
                            break;
                        var l = b.readByte();
                        trace(b.bytesAvailable+':l0:' + b.readUTFBytes(l));
                    }
                    else if(l == 3)
                    {
                        b.readByte();
                        b.readByte();
                        b.readByte();
                        b.readByte();
                        b.readByte();
                        b.readByte();
                        if(b.bytesAvailable <= 0)
                            break;
                        var l = b.readByte();
                        trace(b.bytesAvailable+':l0:' + b.readUTFBytes(l));
                    }
                    else
                    {
                        trace
                        (b.bytesAvailable + ':'+l+':body:' + b.readUTFBytes(l));
                    }
                }

真辛苦。不过是第一次猜中了。

posted @ 2013-10-11 17:33    阅读(468)  评论(0编辑  收藏  举报
IT民工