参考文献:html
http://blog.ceflash.com/%E5%86%99%E7%82%B9swf%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%9A%84%E4%B8%9C%E8%A5%BF/java
http://m.blog.csdn.net/blog/crazyingBird/7173445spa
http://bbs.9ria.com/thread-173116-1-1.html.net
http://my.oschina.net/zhyuliang/blog/207175code
http://stackoverflow.com/questions/13856300/converting-hexadecimal-to-byte-in-javahtm
步骤:blog
1. 运行HxD,打开IE的进程,就是加载了flash那个。进程
2. 到达二进制的最后一个位置,向前查找FWS。ci
3. 找到以后,简单看下内容,符合文档
FWS.‰œ..x.._... .....D.....C.ÿÿÿ?._œ..ˆ.'<.getSWFVersion.timeout.target.ASSetPropFlags.isConnected.ASnat
这样的,就是一个有效开头。
4. 向后找40 00 00 00. 而后整段复制到剪贴板。
5. 使用Java加载这段16进制,转为二进制:
String hello = FileUtils.readFileToString(new File("E:\\Baiduyun\\侠物语\\新建文本文档.txt")); List<Byte> b = new ArrayList<Byte>(); for (String bbb : hello.split(" ")) { b.add((Byte) (byte) (int) (Integer.parseInt(bbb, 16) & 0xFF)); } byte[] bbbb = new byte[b.size()]; for (int i = 0; i < bbbb.length; i++) bbbb[i] = b.get(i); FileUtils.writeByteArrayToFile(new File("E:\\Baiduyun\\侠物语\\GameLoader.crack.swf"), bbbb);
6. 用asv2010打开,完成破解。