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了。
總結
以上是生活随笔為你收集整理的delphi编程实现免杀捆绑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java实现对文件的读写操作
- 下一篇: vue 直接访问静态图片_在使用vue中