用as开发flash游戏的外挂

前阵子突然没什么事干了..

老板不找东西给我做,主程不找东西给我做..慢慢我就会觉得自己是个伟大的艺术家,在活着的时候是不会受到别人重视的.

当然我比那些伟大的艺术家更伟大,为什么?的区别就是,我知道我死后也不会受到别人的重视..所以我们要怎么做?我们要自己找事做..

 

无聊去反编译了TheMiner的代码去看了下..收获到个不错的事件..那就是allComplete..

想着TheMiner既然可以读取到所有游戏的信息,分析并处理..那我为什么不可以用它来处理个别的游戏呢..例如是我们自己的游戏..

参考资料除了上面提到的TheMiner,还有下面这个网站..

http://philippe.elsass.me/2010/09/as3-hacking-preloadswf-for-fun-and-profit/

其实我也是跟大部分人一样..懂得26个英文字母而已..然后啃了很多,才勉强看到那句重点:

All you need is “allComplete”

下面是要认识到的两个基本的东西:

1.怎么使用allComplete:

package  
{  
    import flash.display.LoaderInfo;  
    import flash.display.Sprite;  
    import flash.display.Stage;  
    import flash.events.Event;  
  
    public class PreloadSwf extends Sprite  
    {  
        public function PreloadSwf():void  
        {  
            addEventListener("allComplete", allComplete);  
        }  
  
        private function allComplete(e:Event):void  
        {  
            removeEventListener("allComplete", allComplete);  
  
            var info:LoaderInfo = e.target as LoaderInfo;  
            trace(info.url, "is being monitored");  
  
            // now let the fun begin! try:  
            // info.content  
            // info.content.stage  
            // info.parameters  
            // info.applicationDomain  
            // info.bytes  
        }  
    }  
}  

ps:很简单的. 做监听..然后接收到事件的时候把监听断掉, 避免有更多的事件触发做了重复多余的东西..
在这里有个很好用的东西..每个allComplete传过来的data都是完整无加密的..说是这些数据是可以存起来的.
如果说我们想破解某个已经加密的swf文件..可以通过这种方法把它取出来...
当allComplete触发完成之后,就可以通过LoaderInfo的信息去取我们所要的类了...既然取到我们要的类,那我们还有什么事做不了的呢..

2.配置mm.cfg  
这个文件里面存了我的破解swf文件路径..不太了解的话可以搜索一下TheMiner的配置..
PreloadSwf=swf文件路径

然后把这个配置文件存放在用户目录下,例如我的系统是win7,装个C盘.用户名是yans.那目录应该是C:\Users\Yans..
其它的系统可以参考这个

*Macintosh OS X 
/Library/Application Support/Macromedia  
*Windows 95/98/ME 
%HOMEDRIVE%\%HOMEPATH%  
*Windows 2000/XP 
C:\Documents and Settings\username  
*Windows Vista 
C:\Users\username  
*Linux 
/home/username  

 

 

大概写了些基本的方法.下次再写一些具体的实例..还有现在用的简单的一个框架..

posted @ 2013-05-13 01:00  yans  阅读(3833)  评论(0编辑  收藏  举报