灰儿 发表于 2021-9-8 22:37:58

江苏省中小学免费语音教材初中光盘版改为硬盘播放方法

江苏省中小学免费语音教材光盘版(七年级至九年级上册)光盘镜像文件拷贝到硬盘后,双击根目录下的START.EXE程序文件,弹出如下提示:
请在光驱或正规U盘中运行!
如果使用对应 flash player 11 播放器(10或9等老版本不支持),播放时会闪一下,然后退出。



解决方法:
1.使用Flash反编译工具 Flash Decompiler Trillix打开start.swf文件,然后再转换为fla源码文件。




2.使用 Adobe Flash CS6 编辑start.fla源文件,同时打开源文件根目录下的\start.swf_as\com\kingsunsoft\pep\localdata\LocalValidate.as 脚本语言(ActionScript 3.0)。
代码如下:

package com.kingsunsoft.pep.localdata
{
    import flash.external.*;
    import flash.net.*;
    import flash.system.*;

    public class LocalValidate extends Object
    {
      public function LocalValidate()
      {
            super();
            return;
      }

      public static function readFile(arg1:String):String
      {
            var loc1:*=null;
            var loc2:*=null;
            var loc3:*=null;
            var loc4:*=null;
            return loc4 = ExternalInterface.call("readFile", arg1);
      }

      public static function writeFile(arg1:String, arg2:String):int
      {
            var loc1:*=null;
            var loc2:*=null;
            var loc3:*=null;
            var loc4:*=null;
            return int(ExternalInterface.call("writeFile", arg1, "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + arg2));
      }

      public static function checkRegeist():Boolean
      {
            var loc1:*=ExternalInterface.call("isreactivated");
            if (loc1 == "true")
            {
                return true;
            }
            return false;
      }

      public static function ValidateKingsunSwf():Boolean
      {
            var valResultStr:String;
            var validateRestList:Array;

            var loc1:*;
            validateRestList = null;
            valResultStr = "120||0";
            if (lessonIdStr.length == 0)
            {
                lessonIdStr = "abc";
            }
            try
            {
                valResultStr = ExternalInterface.call("validatelesson", lessonIdStr);
                if (valResultStr == "close|1")
                {
                  fscommand("quit");
                  loc2 = false;
                }
            }
            catch (e:Error)
            {
                valResultStr = "78045||0";
                var loc3:*=false;
            }
            finally
            {
                if (!(valResultStr == null) && valResultStr.length > 6)
                {
                  validateRestList = new Array();
                  validateRestList = valResultStr.split("||");
                  if (String(validateRestList).length > 3)
                  {
                        if (String(validateRestList).substr(2, 1) == "1")
                        {
                            var loc4:*=true;
                            3;
                            return loc4;
                        }
                        fscommand("quit");
                        loc4 = false;
                        4;
                        return loc4;
                  }
                  loc4 = false;
                  5;
                  return loc4;
                }
                loc4 = false;
                6;
                return loc4;
            }
      }

      public static function ValidateKingsunTrial():int
      {
            var valResultStr:String;
            var validateRestList:Array;

            var loc1:*;
            validateRestList = null;
            valResultStr = "120||0";
            if (lessonIdStr.length == 0)
            {
                lessonIdStr = "abc";
            }
            try
            {
                valResultStr = ExternalInterface.call("validatelesson", lessonIdStr);
            }
            catch (e:Error)
            {
                valResultStr = "78045||0";
                var loc3:*=0;
            }
            finally
            {
                if (!(valResultStr == null) && valResultStr.length > 6)
                {
                  validateRestList = new Array();
                  validateRestList = valResultStr.split("||");
                  if (String(validateRestList).length > 3)
                  {
                        if (String(validateRestList).substr(2, 1) == "1")
                        {
                            if (String(validateRestList).substr(4, 1) == "8")
                            {
                              var loc4:*=8;
                              2;
                              return loc4;
                            }
                            loc4 = 4;
                            3;
                            return loc4;
                        }
                        fscommand("quit");
                        loc4 = 0;
                        4;
                        return loc4;
                  }
                  loc4 = 0;
                  5;
                  return loc4;
                }
                loc4 = 0;
                6;
                return loc4;
            }
      }


      {
            lessonIdStr = "";
      }

      public static var lessonIdStr:String="";
    }
}

搜索如下代码并替换:

      public static function checkRegeist():Boolean
      {
            var loc1:*=ExternalInterface.call("isreactivated");
            if (loc1 == "true")
            {
                return true;
            }
            return false;
      }

      public static function ValidateKingsunSwf():Boolean
      {
            var valResultStr:String;
            var validateRestList:Array;

            var loc1:*;
            validateRestList = null;
            valResultStr = "120||0";
            if (lessonIdStr.length == 0)
            {
                lessonIdStr = "abc";
            }
            try
            {
                valResultStr = ExternalInterface.call("validatelesson", lessonIdStr);
                if (valResultStr == "close|1")
                {
                  fscommand("quit");
                  loc2 = false;
                }
            }
            catch (e:Error)
            {
                valResultStr = "78045||0";
                var loc3:*=false;
            }
            finally
            {
                if (!(valResultStr == null) && valResultStr.length > 6)
                {
                  validateRestList = new Array();
                  validateRestList = valResultStr.split("||");
                  if (String(validateRestList).length > 3)
                  {
                        if (String(validateRestList).substr(2, 1) == "1")
                        {
                            var loc4:*=true;
                            3;
                            return loc4;
                        }
                        fscommand("quit");
                        loc4 = false;
                        4;
                        return loc4;
                  }
                  loc4 = false;
                  5;
                  return loc4;
                }
                loc4 = false;
                6;
                return loc4;
            }
      }

把以上代码替换为如下代码:
      public static function ValidateKingsunSwf():Boolean
      {
            var valResultStr:String;
            var validateRestList:Array;

            var loc1:*;
            validateRestList = null;
            return true;
      }


3.保存修改,然后发布为exe放映格式文件。







修改过的start.swf_as\com\kingsunsoft\pep\localdata\LocalValidate.as 代码文件:


页: [1]
查看完整版本: 江苏省中小学免费语音教材初中光盘版改为硬盘播放方法