博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Delphi_检查exe文件是否是"随机基址"
阅读量:7117 次
发布时间:2019-06-28

本文共 1284 字,大约阅读时间需要 4 分钟。

ZC: cnpack 还是蛮好用的

 

1、代码:

procedure TForm1.btnRandomizedBaseAddressClick(Sender: TObject);var pDosHdr :PImageDosHeader;    pNtHdrs :PImageNtHeaders;    pNtFileHdr :PImageFileHeader;    ms :TMemoryStream;    lbRelocsStripped :LongBool;// IMAGE_FILE_RELOCS_STRIPPED;    strExe, strExe2 :string;begin  strExe := Trim(edtSelectFile01.Text);  //ShowMessage(ExtractFilePath(strExe));  //ShowMessage(ExtractFileName(strExe));  //Exit;  strExe2 := ExtractFilePath(strExe)+'ZZ_'+ExtractFileName(strExe);  ms := TMemoryStream.Create;  try    ms.LoadFromFile(strExe);    pDosHdr := ms.Memory;    pNtHdrs := PImageNtHeaders(DWORD(ms.Memory) + pDosHdr._lfanew);    if pNtHdrs.Signature <> $4550 then // PE      ShowMessage('不是PE文件')    else    begin      pNtFileHdr := @pNtHdrs.FileHeader;      lbRelocsStripped := LongBool(pNtFileHdr.Characteristics and $01);      if lbRelocsStripped then        ShowMessage('固定基址')      else      begin        if MessageBox(Self.Handle, '是否修改为固定基址?', '随机基址', MB_YESNO)=IDYES then        begin          pNtFileHdr.Characteristics := pNtFileHdr.Characteristics or $01;          ms.SaveToFile(strExe2);          ShowMessage('随机基址 改为 固定基址 ==> 操作完成');        end;      end;    end;  finally    ms.Free;  end;end;

 

2、

转载于:https://www.cnblogs.com/CodeSkill/p/5577326.html

你可能感兴趣的文章
Shell
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
RedHat配置yum源服务器
查看>>
我的友情链接
查看>>
detached entity passed to persist 错误的引起的原因和解决办法
查看>>
自动发送密码抓取远程日志 Shell脚本实现代码
查看>>
pyhon的语法缩进真叫一个蛋疼
查看>>
linux企业级应用
查看>>
禁止远程桌面到服务器复制粘贴
查看>>
CentOS7 安装MariaDB
查看>>
育贤网站开发问题总结
查看>>
我的友情链接
查看>>
邮件服务
查看>>
企业信息化建设的乱象故事
查看>>
记录一次MySQL两千万数据的大表优化解决过程,提供三种解决方案
查看>>
我的友情链接
查看>>
Linux 下的(防火墙)iptables
查看>>
我的友情链接
查看>>
Debian9.2安装Zabbix3.4.2
查看>>