内存提取SWF,破解doswf方法概述

参考文献:

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/

http://m.blog.csdn.net/blog/crazyingBird/7173445

http://bbs.9ria.com/thread-173116-1-1.html

http://my.oschina.net/zhyuliang/blog/207175

http://stackoverflow.com/questions/13856300/converting-hexadecimal-to-byte-in-java

步骤:

1. 运行HxD,打开IE的进程,就是加载了flash那个。

2. 到达二进制的最后一个位置,向前查找FWS。

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打开,完成破解。

原文地址:https://www.cnblogs.com/zc22/p/3809398.html