【小惜免杀之旅4】去黑框

admin 2024年1月26日10:06:26评论18 views字数 841阅读2分48秒阅读模式

4. 去黑框

正常我们编译C语言的控制台程序,都会出现命令框,打内网还好,不过当正常钓鱼的时候需要隐藏,否则会引起对方的怀疑。

4.1 设置子系统

#pragma comment(linker,"/subsystem:"Windows" /entry:"mainCRTStartup"")

这行代码大概意思就是告诉链接器,将程序的入口点设置为mainCRTStartup/subsystem:"Windows"部分告诉链接器将程序的子系统设置为Windows,而不是默认的控制台应用程序。这将使得程序在启动时不会显示控制台窗口,而是直接运行。

在使用VS studio进行编译控制台程序的时候,默认的入口点并不是我们的main函数,而是mainCRTStartup,如下图

【小惜免杀之旅4】去黑框
image-20240120214711054

==注意:==

这种方法也可以通过配置编译器或修改已生成文件中的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】去黑框

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月26日10:06:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【小惜免杀之旅4】去黑框https://cn-sec.com/archives/2429983.html

发表评论

匿名网友 填写信息