怎样把FLASH封装到执行文件中?(100分)

  • 主题发起人 主题发起人 jeefong
  • 开始时间 开始时间
J

jeefong

Unregistered / Unconfirmed
GUEST, unregistred user!
从网上下载了一个Mole Box,这玩意可以将任何文件打包到执行文件中,十分好用.
但我下的破解版,生成的新文件,都被杀毒软件认为是病毒,还没来得及看就被清除了.
现在大伙一起来研究一下,写这样的软件该如何下手? 如:把FLASH加到执行文件中.
另: 谁有能用的Mole Box注册版啊.我想用啊.
 
在Delphi的IDE中安装Flash的ActiveX插件
 
http://www.ymr.com.cn/soft/flashpacker.rar
FLASH打包工具,支持透明和非透明两种模式,可自定义程序标题,可以制作类似QQ宠物的桌面精灵。
 
TO: bbswing
谢谢!
如何能得到这个软件的源码呢?
我还要导入其他文件呢.
 
http://www.2ccc.com/article.asp?articleid=3529
 
这个软件是我做的,目前只支持打包单一文件,我想将它做成支持导入图片、声音、视频等合并成一个SWF文件然后输出。
 
[:D]TFlashPlayer控件
 
TO: bbswing老大,能否透露一点点东西出来? 我一直想弄明白这个原理。
 
我是先制作好一个空白的播放器,然后以资源的形式引入打包器里面,SWF打包的时候,将SWF文件放在空白播放器尾部然后以内存流保存到磁盘,运行的时候,播放器从自身尾部读取SWF数据然后播放
 
杀毒软件才是最大的病毒
 
好象有一个外国的控件可能直接读取RES文件里的FLASH..不过要注册,,,[:(]
 
那是Tflashplayer 299$
 
作者:风铃夜思雨
名称:TShockwaveFlashStreamEx
QQ:273013000
HomePage:Http://Www.SkyGz.Com
测试环境:Win2000,WinXP
前提:
被要求Flash必须加密,不能在硬盘上留下文件。
说明:
模拟网络环境播放流中的Flash动画。
之前曾想用隐藏虚拟硬盘方式和管道方式,由于本人技术方面不行,呵呵。
由于是模拟了网络环境,如有使用多个TShockwaveFlashStreamEx控件,建议端口不要相同。
本控件继承自Flash SDK。
如果您有更好的方法去实现保护Flash作品,可通过以上联系方式。
注意:
防火墙会影响正常使用。
http://www.2ccc.com/article.asp?articleid=3529
 
风铃夜思雨:
你的东西下载要注册,能否发到我的邮箱?
atin98@163.com
 
使用FlashControl最方便了,下载1.0的,要注册,但是可以用十六进制编辑器查找FlashControl.dcu中的"DEMO VERSION"字符删除就可正常使用了。可以从资源流中加载FLASH,比如:
var
rs:TResourceStream;
begin
rs:=TResourceStream.Create(0,'flash','swf');
flashcontrol1.loadMovieFromStream(0,rs);
rs.free;
end;
 
bbswing:
哪里可以下载 FlashControl 1.0 啊? 我搜了半天都搜不到。
能否发过给我?
 atin98@163.com
 
TO:bbswing:
 这样为啥不行呢?
//-----------------------------------
procedure TfrmMain.btFlashShowClick(Sender: TObject);
var
swfSource:TFileStream;
swfSize:integer;
begin
swfSource:= TFileStream.Create(Application.ExeName,fmOpenRead or fmShareDenyNone);
swfSource.Seek(-Sizeof(swfSize),soFromEnd);
// 读出资源大小
swfSource.ReadBuffer(swfSize,SizeOf(swfSize));
//定位到资源的开始位置
swfSource.Seek(-swfSize,soFromEnd);
txtSize.Text := IntToStr(swfSize);

//显示FLASH
ShockwaveFlashStreamEx1.LoadFromStream(swfSource);
ShockwaveFlashStreamEx1.Play ;
end;

//-----------------------
Load的资源大小没错。如果是BMP图片的话,可以显示。
 但是装进swf文件,就不行,一点显示都没有。
 
 
//定位到资源的开始位置
swfSource.Seek(-swfSize,soFromEnd);

这里不对,swfSource.Seek(-swfSize,soFromEnd),这里是将流指针移到离尾部-swfSize的位置,但是这里是SWF资源的一部分加上一个integer,可以用一个内存流来存放SWF,
var
swfSource:TFileStream;
mem:TMemoryStream;
swfSize:integer;
begin
swfSource:= TFileStream.Create(Application.ExeName,fmOpenRead or fmShareDenyNone);
swfSource.Seek(-Sizeof(swfSize),soFromEnd);
// 读出资源大小
swfSource.ReadBuffer(swfSize,SizeOf(swfSize));
//定位到资源的开始位置
swfSource.Seek(-swfSize-SizeOf(swfSize),soFromEnd);
mem:=TMemoryStream.Create;
mem.CopyFrom(swfSource,swfSize);
swfSource.Free;
txtSize.Text := IntToStr(swfSize);

//显示FLASH
ShockwaveFlashStreamEx1.LoadFromStream(mem);
ShockwaveFlashStreamEx1.Play ;
mem.Free;
end;
 

Similar threads

后退
顶部