4. 去黑框
正常我们编译C语言的控制台程序,都会出现命令框,打内网还好,不过当正常钓鱼的时候需要隐藏,否则会引起对方的怀疑。
4.1 设置子系统
#pragma comment(linker,"/subsystem:"Windows" /entry:"mainCRTStartup"")
这行代码大概意思就是告诉链接器,将程序的入口点设置为mainCRTStartup
,/subsystem:"Windows"
部分告诉链接器将程序的子系统设置为Windows,而不是默认的控制台应用程序。这将使得程序在启动时不会显示控制台窗口,而是直接运行。
在使用VS studio进行编译控制台程序的时候,默认的入口点并不是我们的main函数,而是mainCRTStartup
,如下图
==注意:==
这种方法也可以通过配置编译器或修改已生成文件中的PE头内容,达到相同效果。
4.2 FreeConsole
FreeConsole函数是Windows API中的一个函数,用于释放当前进程的控制台窗口。
在Windows系统中,控制台窗口是一种命令行界面,可以用来输入和输出文本。当一个程序被启动时,默认情况下会分配一个控制台窗口给该程序,以便它能够与用户进行交互。
FreeConsole函数可以在运行时释放当前进程的控制台窗口,使其不再与该进程关联。这意味着程序将不再具有标准输入、输出和错误流,也无法通过控制台与用户进行交互。
//缺点会闪一下黑框
FreeConsole();
4.3 ShowWindows
ShowWindow和FreeConsole类似,也是windows的API函数,功能是设置指定窗口的显示状态。
//缺点也会闪一下
//获取窗口句柄
HWND hwndDos = GetForegroundWindows();
//设置窗口显示状态为隐藏
showWindows(hwndDos,SW_HIDE);
原文始发于微信公众号(小惜渗透):【小惜免杀之旅--4】去黑框
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论