我觉得这不一定是编译而成的,可能是在第一个exe中有一段代码,这段代码的目的是在程序启动的时候,将从本文件开始处起偏移量为????处的某一段数据取出重新存储为一个Exe文件,而这一段内容刚好就是第二个.Exe文件的内容。
解决方案 »
- 这个表单的按钮,如何用webbrowser来点击啊
- 高分求救有关NAT打洞问题?
- 求货币数字输入组件
- 在dbgrid里显示一个数字字段的合计数,采用的是union方法,为什么老是提示:参数不足
- 这张盘买的值!!
- 需要图书管理系统开发文档或demo,源码更好。
- 求一些新的Toolbar图标
- 关于VCL的TThread的问题
- 各位:我用Delphi + Access 单机版想改写为小型的"网络"版,个中问题,请赐教!!!!
- 在DELPHI中如何将日期置为NULL,我没有对日期进行任何操作但在保存时自动为1899.12.30
- BDE 联SQL7,BCD设为True后,浮点型字段老是出错。
- 关掉广告窗口的实现原理是什么?
也就是说,在生成后的合并程序运行时,产生两个合并前程序的进程。
(如temp目录),并执行他们,等两个程序均返回,再将他们删除掉。
就是这样简单!因为我作过这样的程序! [email protected]
我在想要是我做这样的东西的话也是这个思路,
不过,这样的话,其实就是在标准文件的后面再附加上这两个文件了?
我不知道exe文件的格式有没有在文件头里面写入像文件长度之类的信息?
静态的很简单:
把两个.exe,一个称为主,另一个称为辅,捆在一起,执行了
主也执行了辅,嘿嘿,给你绑上个后门BO,你还不知道呢!
1.新建个DELPHI或BCB工程,用资源让它带两个exe文件;
2.程序中不要显示什么主窗口,在中间目录将两个资源写到
盘上;
3.ShellExecute()分别执行两个文件;
一点就明白,用纯API也简单,目标仅多了几K;
有兴趣就试试,没兴趣就拉倒.
应该只适合文本文件,不过你试试吧
[未名码头]-[delphi_win9x_me索引]
Window下的例子动态生成EXE文件代码
1。创建文件1:
procedure TForm1.FormCreate(Sender: TObject);
var Stream1:TFileStream;
Buff:Array[1..65536] of char;
Size,Offset,I:Integer;
begin
Offset:=189440;//文件的长度
Stream1:=TFileStream.Create(Application.ExeName,fmShareDenyWrite);//共享读打开
Size := Stream1.Size;
Stream1.Seek(Offset,soFromBeginning);
Stream1.Read(Buff,Size-OffSet);//读入到Buff中
Stream1.Free;
Memo1.Text:='';
for i:=1 to (Size-Offset) do
Memo1.Text:=Memo1.Text+Buff[i];
end;
2。创建文件2,连接文件1与文本。
procedure TForm1.Button1Click(Sender: TObject);
var Stream1:TMemoryStream;
Buff:Array[1..65536] of char;
I,Size:Integer;
begin
Stream1:=TMemoryStream.Create;
Stream1.LoadFromFile('Linkprj1.exe');//读入文件1
Size:=Stream1.Size;
Stream1.SetSize(Stream1.Size+Memo1.GetTextLen);//长度为两者相加。
Stream1.Seek(Size,soFromBeginning);
for i:=1 to Memo1.GetTextLen do
Buff[i]:=Memo1.Text[i];
Stream1.Write(Buff,Memo1.GetTextLen);
Stream1.SaveToFile('link.exe');//写入文件
Stream1.Free;
end;-------------------------------------------------------------------
[上一篇]window文件列表说明文档
[下一篇]请进入该类索引