Var
S1:String;
S2:String;
begin
S1:='Sensitive Data';
S2:=Crypt(S1,'encryption key');
S1:='';
FreeAndNil(S1);
end;
Run Code Online (Sandbox Code Playgroud)
现在,当我使用像"WinHex"这样的程序搜索我的进程内存时,我可以很容易地找到未加密的字符串!即使我试图创建新的表单来加密这个字符串然后卸载表单但它仍然存在
有没有办法彻底删除它
提前致谢
在应用程序运行时更改了可执行文件的名称后,两者GetModuleFileName并GetModuleFileNameEx使用PID都将返回原始文件名。
如何获得新的文件名,甚至检测到更改?理想情况下,我宁愿不使用FindFirstChangeNotification。
当我点击正在运行的控制台时,它会冻结应用程序,直到我完成选择,
我找到了如何使用“SetConsoleMode”在多种语言中禁用它,但找不到 Delphi 的代码
我使用此代码来确定是否已将特定模块注入到我的应用程序的进程中(我使用它来阻止某些数据包嗅探器软件)
Var
H:Cardinal;
Begin
H:= GetModuleHandle('WSock32.dll');
if H >0 then FreeLibrary(H);
end;
Run Code Online (Sandbox Code Playgroud)
问题是当我打电话给Freelibrary时它什么都不做!
我不想显示消息然后终止应用程序我只想静默卸载注入的模块
提前致谢
我正在使用WMI SMBios获取一些硬件信息
我不想让用户看到内存中使用的序列号是什么,所以我试图清除它
我打电话的时候
SMBios:=TSMBios.Create;
//my code
SMBios.free;
Run Code Online (Sandbox Code Playgroud)
SMBios对象仍在许多位置的内存中 
我试过这个代码 Destroy Event
if Assigned(FRawSMBIOSData.SMBIOSTableData) then
begin
ZeroMemory(FRawSMBIOSData.SMBIOSTableData,FRawSMBIOSData.Length);
FreeMem(FRawSMBIOSData.SMBIOSTableData);
end;
Run Code Online (Sandbox Code Playgroud)
它GetSystemFirmwareTable在SMBios中使用API代码很好,但在WMI中它删除了一些内存,但我仍然可以找到几个块
想知道为什么在调用object.free或freeandnil后未使用的内存未被释放
任何想法如何强制应用程序释放它?
假设我有字符串"blabla[R]bla[R]blaaa[R]blabla[R]bla[R]bla"。
常规replacingOccurrences替换所有出现的情况。我只想换3个。
newString = myString.replacingOccurrences(of: "[R]", with: "(X)")
Run Code Online (Sandbox Code Playgroud)
做出结果"blabla(X)bla(X)blaaa(X)blabla[R]bla[R]bla"。
Delphi 2010
我通过自定义TCP套接字控件传输图像使用UTF-8
客户端
var
TSS: TStringStream;
STR :String;
JPG:TJPEGImage;
BMP:TBitmap;
begin
Try
BMP.LoadFromFile('C:\1.bmp');
JPG.Assign(BMP);
JPG.CompressionQuality:=80;
JPG.Compress;
TSS:=TStringStream.Create;
JPG.SaveToStream(TSS);
STR:=TSS.DataString;
MyTCPSocket.SendString(STR);
finally
BMP.free;
JPG.free;
TSS.free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
服务器端
Var
TSS: TStringStream;
TSS:=TStringStream.Create;
TSS.WriteString(STR);
TSS.SaveToFile('C:\2.jpg');
Run Code Online (Sandbox Code Playgroud)
这段代码在同一台PC上运行很棒.
当我将图像发送到使用不同编码的其他PC接收图像但我在数据中看到许多错误字符"?????"时的问题
我认为当TStringStream将字节写入文件时,它无法将unicode字符转换为字节,因此它看起来像"?"
任何想法都非常感谢