delphi编程实现免杀捆绑

用过了各种各样的捆绑机,无一例外都被俺的卡巴杀出来了,即使一个好的捆绑器短时间不被杀,时间一长照样又被揪出来了,
现在免费而且免杀的捆绑机就是rar了,他经过换图标确实能达到很好的效果,但是右键一看,里面多了一个"用rar打开"就露馅了。
俺在学delphi资源的时候想到用释放资源的方法不是可以实现捆绑吗?经过试验,效果很好,
不会检测到任何附加数据和2个文件头之类的现象,唯一能看到的就是exescope里会看到资源里多了一个exefile,
不过经过fsg一加密就看不到里面的内容了,而且即使高手一般也不会麻烦到每次运行exe的时候都要检测附加数据,
可执行头部数目,还要exescope一番,岂不累死?一般开着杀毒看看没事就不会怀疑什么了。
闲话少说,开始delphi之旅。 我们下个MINI的DELPHI7.0 去BAIDU找就行了


首先要建立我们的资源文件,

在记事本中写入mask exefile mask.exe这样形式的n行
第一个mask是delphi调用这个exefile资源文件的名字,第二个表示资源类型exefile就是exe文件了,最后是文件名,
把所有需要捆绑的文件都以这样的形式写入,保存为rc后缀的文件exe.rc,接着cmd下输入Brcc32 exe.rc
就会把exe.rc编译成资源文件exe.res。
前期工作做完了,接着在delphi中新建一个console application,
这样是方便我们建立一个个头更小的exe,如果是一个application的话什么都不做都会有359k之巨!
而且这里我们也不需要任何窗体。接着就可以把代码替换成如下:


program Project2;

uses
windows,
shellapi,
classes;

//必须用到的单元


{$R exe.res} //连接我们的资源文件

function ExtractRes(ResType, ResName, ResNewName: string): boolean; //建立一个函数释放res
var
Res: TResourceStream; //Tresource调用了classes单元
begin
try
Res := TResourceStream.create(Hinstance, Resname, Pchar(ResType));
try
Res.SavetoFile(ResNewName);
Result := true;
finally
Res.Free;
end;
except
Result := false;
end;
end;


var
handle:Thandle; //调用了classes单元

begin
ExtractRes('exefile','mask','c:/new.exe'); //调用ExtractRes函数释放到c:/new.exe
ShellExecute(handle, 'open', PChar('c:/new.exe'), nil, nil, SW_SHOW); //调用shellexecute这个api执行它,调用了shellapi和windows单元
end.
ExtractRes('exefile','mask1','c:/new1.exe'); //调用ExtractRes函数释放到c:/new.exe
ShellExecute(handle, 'open', PChar('c:/new1.exe'), nil, nil, SW_SHOW); //调用shellexecute这个api执行它,调用了shellapi和windows单元
end.

注释已经写得很详细了,这是释放一个文件的演示,释放多个文件多几个ExtractRes 和ShellExecute 就ok了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值