ok0ok 发表于 2018-7-2 17:49

快乐想象认字破解过程(其实是swf的破解)

本帖最后由 ok0ok 于 2018-7-12 09:07 编辑

快乐想象认字
网址:http://www.shizi123.com/
是款儿童识字软件
下载地址:]http://storedl1.nearme.com.cn/uploadFiles/Pfiles/201601/07/75da993d4687903ca50d5aba446f9b50.apk
   是款不错的小儿想象认字法,点注册

输入错的注册码,提示注册码错误


用ApkIDE打开后查找不到“注册” 之类的提示符,在论坛里请教了下,原来这是SWF破解,认真查看后发现这个heji6.swf 是关键文件,感谢 @iteamo 和@风之伤的热心指点

用ffdec_11.1.0导入 heji6.swf要用新版本哟,确实比较好用,查找关键字
有结果了
这里是关键部分了

第97行是输入的与生成的注册码对比,点击下面的 EDIT 按键进行编辑

把107行的提示符替换成 上面的正确注册码生成源码,点保存

如果已经安装程序,直接把这个SWF替换成改好的
输入错误注册码后 提示正确的
完成注册
要考完一组才能继续,我一直以为没破解,搞了好久
这就考完了 可以进行下一组


确实是个不错的学字软件 小朋友很快点认字了,以前用的是上网有的4.0破解版

破解过程中遇到的问题分享一下:

原来用AndroidKiller_v1.3.1 来反编译,不管是用什么版本的APKtool来编译,要么提示不能编译,不能进行签名,要么就程序不能安装。换成ApkIDE 来反编译,编译就正常。可能和jdk版本有关。
用新的ffdec_11.1.0 可以很好在源码里直接修改 不用看右边的java


把ffdec_11.1.0设置里的能用的选项都勾上






电脑版:


、彩虹 发表于 2020-10-2 14:42

楼主我的机器码是GA839056
我下载下来的是这样的。请问我的注册码是多少呀。万分感谢
package
{
   import flash.display.Loader;
   import flash.display.MovieClip;
   import flash.display.SimpleButton;
   import flash.events.Event;
   import flash.events.MouseEvent;
   import flash.net.URLRequest;
   import flash.net.navigateToURL;
   import flash.text.TextField;
   
   public class 注册 extends MovieClip
   {
      
      
      public var § +§:TextField;
      
      public var §&%§:SimpleButton;
      
      public var §+!§:TextField;
      
      public var §0$§:SimpleButton;
      
      public var §[#§:TextField;
      
      public var §1%§:SimpleButton;
      
      private var §<!§:Array;
      
      private var §2§:Loader;
      
      private var waima:String;
      
      private var §%%§:§?#§;
      
      public function 注册()
      {
         var _loc1_:String = null;
         var _loc2_:* = 0;
         var _loc3_:* = 0;
         super();
         if(!_loc4_)
         {
            this.§<!§ = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","p","q","r","s","t","u","v","w","x","y","z");
            if(MovieClip(this.parent).zhuce_com)
            {
               if(!_loc4_)
               {
                  this.§1%§.enabled = false;
                  this.§+!§.text = "软件已注册。";
                  addr144:
                  this.§0$§.addEventListener(MouseEvent.CLICK,this.§=!§);
                  if(_loc5_)
                  {
                  }
                  addr169:
                  MovieClip(this.parent).dispguanggao(1,2);
               }
               addr160:
               this.§&%§.addEventListener(MouseEvent.CLICK,this.§!#§);
               if(!_loc5_)
               {
                  §§goto(addr169);
               }
            }
            else
            {
               _loc1_ = MovieClip(this.parent).jiqima.toString();
               if(!_loc5_)
               {
                  §§push(int(int(_loc1_.charAt(_loc1_.length - 1))));
                  if(!_loc5_)
                  {
                     _loc2_ = §§pop();
                     §§push(int(int(_loc1_.charAt(_loc1_.length - 3))));
                  }
                  _loc3_ = §§pop();
                  trace(this.waima);
                  if(!_loc4_)
                  {
                     this.§[#§.text = this.§<!§.toUpperCase() + this.§<!§.toUpperCase() + MovieClip(this.parent).jiqima.toString();
                     this.§1%§.addEventListener(MouseEvent.CLICK,this.§`'§);
                     if(!_loc5_)
                     {
                        §§goto(addr144);
                     }
                     §§goto(addr160);
                  }
               }
            }
         }
      }
      
      private function §1&§(param1:Event) : *
      {
         if(this.§%%§.mcSwf != null)
         {
            if(!_loc3_)
            {
               this.waima = this.§%%§.mcSwf.waima;
               this.§%%§.removeEventListener(Event.ENTER_FRAME,this.§1&§);
               this.§[#§.text = this.waima.substr(0,2) + MovieClip(this.parent).jiqima.toString();
               trace(§_a_-_---§.§_a_--_--§(-1820302806) + this.waima);
               MovieClip(this.parent).myshob.setwaima(this.waima);
            }
         }
      }
      
      private function §=!§(param1:MouseEvent) : *
      {
         if(!_loc2_)
         {
            this.§&%§.removeEventListener(MouseEvent.CLICK,this.§!#§);
            if(!_loc3_)
            {
               this.§0$§.removeEventListener(MouseEvent.CLICK,this.§=!§);
               if(!_loc3_)
               {
                  this.§1%§.removeEventListener(MouseEvent.CLICK,this.§`'§);
                  if(_loc2_)
                  {
                  }
                  addr64:
                  addr73:
                  MovieClip(this.parent).gotoAndStop(§_a_-_---§.§_a_--_--§(-1820302788));
                  return;
               }
            }
         }
         MovieClip(this.parent).delguanggao();
         if(!_loc3_)
         {
            §§goto(addr64);
         }
         §§goto(addr73);
      }
      
      private function §`'§(param1:MouseEvent) : *
      {
         if(this.§ +§.text != "")
         {
            if(this.§ +§.text == §1'§.§2#§(this.§[#§.text))
            {
               MovieClip(this.parent).myshob.setiszhuce();
               if(!_loc3_)
               {
                  MovieClip(this.parent).myshob.setjiqima(MovieClip(this.parent).myMAC.strMAC);
                  MovieClip(this.parent).zhuce_com = true;
                  this.§1%§.enabled = false;
                  if(!_loc2_)
                  {
                     this.§+!§.text = "软件注册成功。";
                     this.§1%§.removeEventListener(MouseEvent.CLICK,this.§`'§);
                  }
                  else
                  {
                     addr95:
                     stage.focus = this.§ +§;
                  }
               }
            }
            else
            {
               this.§+!§.text = "注册码不正确,请重新输入。";
               this.§ +§.text = "";
               if(!_loc3_)
               {
                  §§goto(addr95);
               }
            }
         }
      }
      
      private function §;&§(param1:Number, param2:String) : String
      {
         var _loc3_:* = null;
         var _loc4_:* = NaN;
         var _loc5_:* = NaN;
         var _loc6_:* = NaN;
         var _loc7_:* = NaN;
         var _loc8_:* = null;
         var _loc9_:* = null;
         if(!_loc12_)
         {
            §§push(param2);
            if(!_loc12_)
            {
               §§push(§§pop());
            }
            _loc8_ = §§pop();
         }
         §§push(new Array(4));
         if(!_loc12_)
         {
            §§push(§§pop());
         }
         var _loc10_:* = §§pop();
         var _loc11_:* = 0;
         if(!_loc12_)
         {
            while(_loc11_ < 4)
            {
               _loc10_ = _loc8_.charCodeAt(_loc11_);
               _loc11_++;
            }
            §§push(String(_loc10_ * _loc10_) + String(_loc10_ * _loc10_));
            if(!_loc12_)
            {
               _loc3_ = §§pop();
               §§push(Number(Number(_loc3_)));
               if(!_loc13_)
               {
                  _loc7_ = §§pop();
                  if(!_loc13_)
                  {
                     §§push(String(param1));
                     if(_loc12_)
                     {
                     }
                     addr138:
                     _loc9_ = §§pop();
                     if(!_loc12_)
                     {
                        trace("kkkkkkkkkkk=" + _loc9_);
                     }
                     §§push(Number(Number(_loc9_.slice(0,2))));
                     if(!_loc12_)
                     {
                        §§push(§§pop());
                        if(!_loc12_)
                        {
                           _loc4_ = §§pop();
                           if(_loc12_)
                           {
                           }
                           addr168:
                           _loc4_ = §§pop();
                           §§push(_loc5_);
                           §§push(Number(Number(_loc9_.slice(_loc9_.length - 2,_loc9_.length))));
                        }
                        addr181:
                        _loc5_ = §§pop();
                        addr183:
                        §§push(§§pop() % 26);
                        if(!_loc12_)
                        {
                           §§push(Number(§§pop()));
                        }
                        _loc5_ = §§pop();
                        addr202:
                        if(_loc12_)
                        {
                        }
                        trace("注册码" + this.§<!§ + this.§<!§ + _loc9_.substring(0,_loc9_.length));
                     }
                     §§push(26);
                     if(!_loc13_)
                     {
                        §§goto(addr168);
                        §§push(Number(§§pop() % §§pop()));
                     }
                     §§goto(addr183);
                  }
                  trace(_loc4_ + "      " + _loc5_);
                  if(!_loc12_)
                  {
                     §§goto(addr202);
                  }
               }
               addr123:
               addr124:
               _loc6_ = §§pop();
               §§push(Number(Math.round(_loc6_ * 13.55) + 135797531));
               §§push(Number(Math.round(_loc6_ * 13.55) + 135797531));
               if(!_loc13_)
               {
                  _loc6_ = §§pop();
                  §§goto(addr138);
                  §§push(§§pop().toString());
               }
               §§goto(addr181);
            }
            _loc9_ = §§pop();
            if(!_loc12_)
            {
               §§goto(addr123);
               §§push(Number(Number(_loc9_.substring(2,_loc9_.length - 2))));
            }
            §§goto(addr124);
         }
         return this.§<!§ + this.§<!§ + _loc9_.substring(0,_loc9_.length);
      }
      
      private function §!#§(param1:MouseEvent) : *
      {
         if(!_loc3_)
         {
            trace("dddddddddddddddddd");
         }
         var _loc2_:URLRequest = new URLRequest(§_a_-_---§.§_a_--_--§(-1820302801));
         if(!_loc3_)
         {
            navigateToURL(_loc2_,§_a_-_---§.§_a_--_--§(-1820302811));
         }
      }
   }
}

sclbin 发表于 2018-7-11 09:37

我下载的swf文件查找现来同你的不一样(如下)我的机器码显示:JJ851929    要怎样改,请教大师,谢谢
{
   import flash.display.Loader;
   import flash.display.MovieClip;
   import flash.display.SimpleButton;
   import flash.events.Event;
   import flash.events.MouseEvent;
   import flash.net.URLRequest;
   import flash.net.navigateToURL;
   import flash.text.TextField;
   
   public class class_26 extends MovieClip
   {
      
      
      public var var_67:TextField;
      
      public var var_46:SimpleButton;
      
      public var var_41:TextField;
      
      public var var_14:SimpleButton;
      
      public var var_90:TextField;
      
      public var var_59:SimpleButton;
      
      private var var_43:Array;
      
      private var var_134:Loader;
      
      private var waima:String;
      
      private var var_76:class_32;
      
      public function class_26()
      {
         var _loc1_:* = null;
         var _loc2_:int = 0;
         var _loc3_:int = 0;
         super();
         this.var_43 = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","p","q","r","s","t","u","v","w","x","y","z");
         if(MovieClip(this.parent).zhuce_com)
         {
            this.var_59.enabled = false;
            this.var_41.text = "软件已注册。";
         }
         else
         {
            _loc1_ = MovieClip(this.parent).jiqima.toString();
            _loc2_ = int(_loc1_.charAt(_loc1_.length - 1));
            _loc3_ = int(_loc1_.charAt(_loc1_.length - 3));
            trace(this.waima);
            this.var_90.text = this.var_43.toUpperCase() + this.var_43.toUpperCase() + MovieClip(this.parent).jiqima.toString();
            this.var_59.addEventListener(MouseEvent.CLICK,this.method_35);
         }
         this.var_14.addEventListener(MouseEvent.CLICK,this.method_45);
         this.var_46.addEventListener(MouseEvent.CLICK,this.method_33);
         MovieClip(this.parent).dispguanggao(1,2);
      }
      
      private function method_60(param1:Event) : *
      {
         if(this.var_76.mcSwf != null)
         {
            this.waima = this.var_76.mcSwf.waima;
            this.var_76.removeEventListener(Event.ENTER_FRAME,this.method_60);
            this.var_90.text = this.waima.substr(0,2) + MovieClip(this.parent).jiqima.toString();
            trace(class_2.method_7(-1820302806) + this.waima);
            MovieClip(this.parent).myshob.setwaima(this.waima);
         }
      }
      
      private function method_45(param1:MouseEvent) : *
      {
         this.var_46.removeEventListener(MouseEvent.CLICK,this.method_33);
         this.var_14.removeEventListener(MouseEvent.CLICK,this.method_45);
         this.var_59.removeEventListener(MouseEvent.CLICK,this.method_35);
         MovieClip(this.parent).delguanggao();
         MovieClip(this.parent).gotoAndStop(class_2.method_7(-1820302788));
      }
      
      private function method_35(param1:MouseEvent) : *
      {
         if(this.var_67.text != "")
         {
            if(this.var_67.text == class_10.method_94(this.var_90.text))
            {
               MovieClip(this.parent).myshob.setiszhuce();
               MovieClip(this.parent).myshob.setjiqima(MovieClip(this.parent).myMAC.strMAC);
               MovieClip(this.parent).zhuce_com = true;
               this.var_59.enabled = false;
               this.var_41.text = "软件注册成功。";
               this.var_59.removeEventListener(MouseEvent.CLICK,this.method_35);
            }
            else
            {
               this.var_41.text = "注册码不正确,请重新输入。";
               this.var_67.text = "";
               stage.focus = this.var_67;
            }
         }
      }
      
      private function method_108(param1:Number, param2:String) : String
      {
         var _loc3_:* = null;
         var _loc4_:* = NaN;
         var _loc5_:Number = NaN;
         var _loc6_:* = NaN;
         var _loc7_:Number = NaN;
         var _loc8_:* = null;
         var _loc9_:* = null;
         _loc8_ = param2;
         var _loc10_:Array = new Array(4);
         var _loc11_:int = 0;
         while(_loc11_ < 4)
         {
            _loc10_ = _loc8_.charCodeAt(_loc11_);
            _loc11_++;
         }
         _loc3_ = String(_loc10_ * _loc10_) + String(_loc10_ * _loc10_);
         _loc7_ = Number(_loc3_);
         _loc9_ = String(param1);
         _loc6_ = Number(Number(_loc9_.substring(2,_loc9_.length - 2)));
         _loc6_ = Number(Math.round(_loc6_ * 13.55) + 135797531);
         _loc9_ = (Number(Math.round(_loc6_ * 13.55) + 135797531)).toString();
         trace("kkkkkkkkkkk=" + _loc9_);
         _loc4_ = Number(Number(_loc9_.slice(0,2)));
         _loc4_ = Number(Number(_loc9_.slice(0,2)) % 26);
         _loc5_ = Number(_loc9_.slice(_loc9_.length - 2,_loc9_.length));
         _loc5_ = _loc5_ % 26;
         trace(_loc4_ + "      " + _loc5_);
         trace("注册码" + this.var_43 + this.var_43 + _loc9_.substring(0,_loc9_.length));
         return this.var_43 + this.var_43 + _loc9_.substring(0,_loc9_.length);
      }
      
      private function method_33(param1:MouseEvent) : *
      {
         trace("dddddddddddddddddd");
         var _loc2_:URLRequest = new URLRequest(class_2.method_7(-1820302801));
         navigateToURL(_loc2_,class_2.method_7(-1820302811));
      }
   }
}

hualong1009 发表于 2018-7-2 18:08

还有这种,学习了

liguibin 发表于 2018-7-2 18:11

本帖最后由 liguibin 于 2018-7-2 18:14 编辑

很好,这类学习软件很稀少,收藏备用,谢谢!

竹影婆娑 发表于 2018-7-2 18:13

谢谢楼主分享

happynocn 发表于 2018-7-2 18:32

感谢分享,学习一下。

竹影婆娑 发表于 2018-7-2 18:35

注册码呢?楼主

清华高材生 发表于 2018-7-2 18:37

感谢楼主分享哦

laozhangty 发表于 2018-7-2 18:56

看起来不错的软件,多谢分享

1051496412 发表于 2018-7-2 20:04

感谢分享,这类的软件虽说不是很坑不过确实稀少

祝我开心 发表于 2018-7-2 21:56

不知道适合几岁的小孩.。。
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: 快乐想象认字破解过程(其实是swf的破解)