• 2

求救~~文字編碼“繁體中文(Mac OS)”不適用。

三四年前我寫過一支程式把 Flash EXE 轉回 SWF 的:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>

typedef unsigned char byte_t;
typedef unsigned int dword_t;

#ifdef _BIG_ENDIAN
#define swapdword(word) ((((dword_t)(word)&0xFF000000) >> 24)|\
(((dword_t)(word)&0x00FF0000) >> 8)|\
(((dword_t)(word)&0x0000FF00) << 8)|\
(((dword_t)(word)&0x000000FF) << 24))
#else
#define swapdword(word) ((dword_t)(word))
#endif

void dumpdata(FILE *fp, long length) {
byte_t buf[512];
long readsize = 512;

readsize = (length > readsize) ? readsize : length;
while(length>0) {
errno=0;
if(fread(buf,1,readsize,fp)!=readsize) {
fprintf(stderr,"failed readding: %s\n",strerror(errno));
exit(-1);
}
if(fwrite(buf,1,readsize,stdout)!=readsize) {
fprintf(stderr,"failed writting: %s\n",strerror(errno));
exit(-1);
}
length -= readsize;
readsize = (length > readsize) ? readsize : length;
}
}

void usage(void) {
fprintf(stderr,"usage: exe2swf source.exe > output.swf\n");
exit(0);
}

int main (const int argc, const char **argv) {

dword_t val = 0;
FILE *fp;

if(argc<2) {
usage();
}

fp = fopen(argv[1],"r");
if(!fp) {
fprintf(stderr,"failed to open %s\n",argv[1]);
usage();
}
if(fseek(fp,-8l,SEEK_END)) {
fprintf(stderr,"failed to read %s: [%s]\n",argv[1],strerror(errno));
exit(-1);
}
if(!fread((byte_t *)(&val),4,1,fp)) {
fprintf(stderr,"failed to read %s: [%s]\n",argv[1],strerror(errno));
exit(-1);
}
if(val != 0x563412FA) {
fprintf(stderr,"%s is not a valid Flash projector file\n",argv[1]);
exit(0);
}
if(!fread((byte_t *)(&val),4,1,fp)) {
fprintf(stderr,"failed to fread %s: [%s]\n",argv[1],strerror(errno));
exit(-1);
}
val = swapdword(val);
fprintf(stderr,"%s: %d bytes\n",argv[1],val);
if(fseek(fp,-(val+8),SEEK_END)) {
fprintf(stderr,"failed to read %s: [%s]\n",argv[1],strerror(errno));
exit(-1);
}

dumpdata(fp,val);

fclose(fp);

return 0;
}


不曉得過了這麼久,Flash Projector 的格式有沒有改過...

ulyssesric wrote:
三四年前我寫過一支程...(恕刪)


考慮編譯一下吧,程式碼不是人人都看的懂的
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?