寻找 FWS 以后的数据 重新保存 就实现了~

解决方案 »

  1.   

    =============================================================
    宣传小广告:
    发布了个小工具,Flash矢量共享软件 大家来看看呀!
    http://www.csdn.net/cnshare/soft/13/13646.shtm
    EXE分离 拆除所有SWF格式保护密码 闪侠必备工具!!!
    =============================================================
      

  2.   

    楼上的方法不尽正确,exe文件最后几个字节保存着swf文件的信息,如大小等,如若简单的保存FWS后的数据则swf文件会变大,虽然只是几十个字节,正确方法则是读处swf文件大小信息后,再从FWS后截取。
    exe文件中最后四个字节是原swf文件的大小,当然,exe文件后还有一些其他原不属于swf文件的字节,这些知道了原swf文件大小后,要剔除自然不是难事:)
      

  3.   

    var
      f1,f2:file of byte;
      d1,d2,d3,d4:byte;
      f:longint;
      i:integer;      
    begin
      AssignFile(f1,'xxx.exe');
      i:=fileopen(fn,fmOpenReadWrite);
      f := GetFileSize (i, NIL) ;
      fileclose(i);
      reset(f1);
      seek(f1,f-4);
      read(f1,d,d2,d3,d4);
      if (d1+d2*256+d3*256*256+d4*256*256*256)<f then begin
            
      f:=f-(d1+d2*256+d3*256*256+d4*256*256*256)-8;
      seek(f1,f);
      read(f1,d,d2,d3);
            
      if (d=70)and(d2=87)and(d3=83) then begin
        //开始向后读f个字节写入新文件
      end;
      

  4.   

    if (d=70)and(d2=87)and(d3=83) then begin
        //开始向后读d1+d2*256+d3*256*256+d4*256*256*256个字节写入新文件
      end;