Skip to content

Latest commit

 

History

History
119 lines (54 loc) · 3.93 KB

[Relay学安全]-2024-1-21-隐藏DOS黑窗口的一个技巧.md

File metadata and controls

119 lines (54 loc) · 3.93 KB

隐藏DOS黑窗口的一个技巧

原创 relaysec Relay学安全

Relay学安全

微信号 gh_8d57319ec39c

功能介绍 这是一个纯分享技术的公众号,只想做安全圈的一股清流,不会发任何广告,不会接受任何广告,只会分享纯技术文章,欢迎各行各业的小伙伴关注。让我们一起提升技术。


__发表于

我们一般写的loader或者自己挖的白程序有时候会弹出一个DOS黑窗口,其实自己的写的话很好规避掉,隐藏掉即可。

但是如果我们挖到一个白程序,也是会弹出一个DOS黑框,卡在那不动得话就很难受,我们又没有源码,不能直接使用如下方式给他规避掉。

#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
FreeConsole();
HWND handos = GetForegroundWindow();ShoWindow(handos,SW_HIDE);
xxxxxxxxxx int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow);

其实我们除了上面得方式也可以设置Subsystem这个字段,这个字段在可选PE头中,如下微软介绍。

https://learn.microsoft.com/zh-cn/cpp/build/reference/subsystem-specify-subsystem?view=msvc-170

那么我们就可以直接在PE结构中进行更改了。

可选PE头如下:


typedef struct _IMAGE_OPTIONAL_HEADER64 {  WORD                 Magic;  BYTE                 MajorLinkerVersion;  BYTE                 MinorLinkerVersion;  DWORD                SizeOfCode;  DWORD                SizeOfInitializedData;  DWORD                SizeOfUninitializedData;  DWORD                AddressOfEntryPoint;  DWORD                BaseOfCode;  ULONGLONG            ImageBase;  DWORD                SectionAlignment;  DWORD                FileAlignment;  WORD                 MajorOperatingSystemVersion;  WORD                 MinorOperatingSystemVersion;  WORD                 MajorImageVersion;  WORD                 MinorImageVersion;  WORD                 MajorSubsystemVersion;  WORD                 MinorSubsystemVersion;  DWORD                Win32VersionValue;  DWORD                SizeOfImage;  DWORD                SizeOfHeaders;  DWORD                CheckSum;  WORD                 Subsystem;  WORD                 DllCharacteristics;  ULONGLONG            SizeOfStackReserve;  ULONGLONG            SizeOfStackCommit;  ULONGLONG            SizeOfHeapReserve;  ULONGLONG            SizeOfHeapCommit;  DWORD                LoaderFlags;  DWORD                NumberOfRvaAndSizes;  IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];} IMAGE_OPTIONAL_HEADER64, *PIMAGE_OPTIONAL_HEADER64;

微软介绍:

https://learn.microsoft.com/zh-cn/windows/win32/api/winnt/ns-winnt-image_optional_header64

使用DIE工具打开EXE。选择高级选项,点击PE结构,找到可选PE头,然后找到Subsystem字段,将右上角得只读取消掉。

然后将Windows CUI更改为Windows GUI即可。

然后我们来看一下效果,没有设置之前:

设置之后,可以看到DOS框已经规避掉了,这样的话你挖到白名单的一些程序或者如果没有源码的。

预览时标签不可点

微信扫一扫
关注该公众号

继续滑动看下一个

隐藏DOS黑窗口的一个技巧

原创 relaysec Relay学安全

轻触阅读原文

Relay学安全

向上滑动看下一个

知道了

微信扫一扫
使用小程序


取消 允许


取消 允许

: , 。 视频 小程序 赞 ,轻点两下取消赞 在看 ,轻点两下取消在看 分享 留言