网页游戏 神创天下 第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 @     阅读(490)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2009-10-11 太tmd恐怖了,一个搞破解的过程分析。
2009-10-11 一个项目管理系统的思路:偶需要思想
2007-10-11 细颗粒度的权限系统 理论探索
2007-10-11 权限系统思考
IT民工
点击右上角即可分享
微信分享提示