首页 > 编程知识 正文

windows findstr,windows.open 判断完成

时间:2023-05-04 03:55:18 阅读:234343 作者:3010

1 ASLR机制


    Address Space Layout Randomization=地址空间布局随机化;
    是一种针对缓冲区溢出的安全保护技术;
    没有ASLR时,每次进程执行,加载到内容中,代码所处堆栈stack的位置都是相同的,容易被破解;
    如果开启了ASLR,操作系统加载器会针对基地址再去加上一个随机生成的偏移地址,然后再去加载程序模块,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度。

    地址随机化需要程序自身和操作系统的双重支持,会在PE头中设置IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE标识来说明支持ASLR。

    此字段位于PE结构的可选头结构体中;可选头的概念可参阅此,

    https://blog.csdn.net/bcbobo21cn/article/details/115032841

2 PE操作


    下面来用010Editer操作看一下,打开010Editor,打开notepad.exe;
    根据资料,在 NtHeader 数据块内找到4081,然后修改为0081即可;或者找到WORD IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE这个字段 ,把值1改为0即可;

看下图NT头的区域;里面没有4081;也许版本发生了变化;

我截一个网友操作的图,大家了解一下此概念;

    此图是用CFF Explorer进行操作,CFF Explorer可在此下载;
http://windows.dailydownloaded.com/zh/developer-tools/specialized-tools/14498-cff-explorer-download-install
这工具看上去是微软提供的;

 

然后找 IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE 字段;如下图,值为1,就是支持地址随机化;如果改为0,则不支持地址随机化;

根据PE结构资料;可选头的DllCharacteristics是一个WORD;

WORD    DllCharacteristics;

例如此文;https://cloud.tencent.com/developer/article/1015243

但是010Editor显示的,DllCharacteristics是一个结构体,里面又包含多个WORD;这可能是一个多个WORD或起来的值,最终是一个WORD;

3 VS相关选项

在VS开发环境设置中,对此有一个选项支持;如下图;链接器-高级-随机基址;默认生成的应用程序支持地址随机化;

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。