能力值:
(RANK:650 )
|
-
-
2 楼
winrar
|
能力值:
( LV9,RANK:970 )
|
-
-
3 楼
最初由 shoooo 发布 winrar
有是winrar
PS:搜索捆绑
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
可能我没说清楚,是把两个exe合并,不是压缩为一个解压缩文件
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
如果不是运行时释放为独立文件的话,一般不能。
两个EXE文件的加载地址应该有冲突,普通可执行文件中又没有重定位信息,所以,无法加载在同一个地址空间内
如果其中一个包含重定位信息的话,倒是可以。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
谢谢你。。。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
可以,在Delphi可以把两个文件载入文件流(filestream)中,然后添加第一个文件到第二个的后面。
PS:不保证两个exe文件在添加后都能正常运行哦。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
看你是要同步还是异步执行两个程序了
简单的方法就是把一个exe写在另一个的结尾,执行的时候先进行拆分,然后调入内存
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
不是有捆绑机吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
是异步执行,因为是个补丁类的,我不想让人给删除了,所以要捆在一起,不被删除,是异步执行,怎么加在文件尾部?
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
写在另一个的结尾?怎么写?那么多代码^_^
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
最初由 dxcat 发布 写在另一个的结尾?怎么写?那么多代码^_^
如果是这样写,就容易了
把整个文件读到一个BUFF里,然后再把这个BUFF写到第一个文件的尾部
加载时,再从该文件尾部释放出来即可
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
例如:有a.exe和b.exe,把b.exe写入a.exe尾部,能给出具体语句吗?delphi的,或是反汇编的,我还没做过这件事^_^
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
我给你一个把EXE当作资源文件绑到主EXE中的例子吧:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
{$R app.res}
///////////////////////////////////////////////////////////////
//释放EXE资源文件
function ExtractRes(ResType, ResName, ResNewName: string): boolean;
var
Res: TResourceStream;
begin
try
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
try
Res.SavetoFile(ResNewName);
Result := true;
finally
Res.Free;
end;
except
Result := false;
end;
end;
下面我们来研究一下上面的{$R app.res}
制作过程如下
先制作一个文本文件
内容如下:
app exefile HijackThis.exe
这里的APP是资源名,可以随便起 EXEFILE是资源类型,应该是固定的,不很清楚
后面跟的是待绑文件名
然后存为*.RC文件(似乎存为其他文件都可以,诸如.TXT也行)
然后利用BORLAND提供的BRCC32.EXE把上面这个RC文件编译成RES文件
至于释放过程就很简单了,调用上面的过程
如下
procedure TForm1.XPDOS1Click(Sender: TObject);
begin
ExtractRes('exefile','app','tmp.exe');//这里的APP要同刚才制作的文本里的APP同(资源名相同)
end;
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
我试试看^_^
|
|
|