用了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));
                    }
                }

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

相关文章:

  • 2022-12-23
  • 2021-12-26
  • 2022-12-23
  • 2021-06-19
  • 2021-11-12
  • 2021-11-02
  • 2021-12-25
  • 2021-10-15
猜你喜欢
  • 2021-09-03
  • 2022-02-14
  • 2021-08-28
  • 2021-11-27
  • 2021-11-23
  • 2021-06-12
  • 2021-11-20
相关资源
相似解决方案