快乐想象认字破解过程(其实是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设置里的能用的选项都勾上
电脑版:
楼主我的机器码是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));
}
}
}
}
我下载的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));
}
}
}
还有这种,学习了 本帖最后由 liguibin 于 2018-7-2 18:14 编辑
很好,这类学习软件很稀少,收藏备用,谢谢! 谢谢楼主分享 感谢分享,学习一下。 注册码呢?楼主 感谢楼主分享哦 看起来不错的软件,多谢分享 感谢分享,这类的软件虽说不是很坑不过确实稀少 不知道适合几岁的小孩.。。