C++
爱编程的叶一笑
哔哩哔哩同名up主,目前为初中生,Sandboxie-Plus开源仓库核心贡献者
展开
-
如何让一个程序读取到错误的硬盘序列号
运行完成后可以看到Detours里面的src文件夹下面有detours.h与detours.cpp,在lib.x64文件夹下面有detours.lib,我们后续使用Detours就需要这几个文件。注意,这里使用这几个文件的需要将文件复制到项目下面来,打开你的项目文件,确保下面有这几个文件,因为vs添加文件的话是不会将文件复制过来的(踩坑之一)。否则,则说明这是程序第一次访问这一分区的序列号,那么生成一个随机的值,传递给上层程序,并以原函数返回的序列号为Key,随机生成结果为Value插入到Map中。原创 2024-08-31 22:33:39 · 968 阅读 · 0 评论 -
如何使用身份验证函数实现Windows凭据询问及验证
CredUIPromptForCredentials 函数创建并显示一个可接受用户凭据信息的可配置对话框。CredUIParseUserName 函数从完全限定的用户名中提取域和用户帐户名。思路:先用第一个函数向用户询问,随后用第二个函数验证。原创 2024-07-06 14:13:28 · 338 阅读 · 0 评论 -
如何让你的窗口置顶成为最靓的仔(Windows10)
大家应该都知道在Windows 8以上引入了一个新的概念叫做窗口段 普通的窗口运行于ZBID_ DESKTOP 级上 ,这导致我们的窗口Z序无法以任何常规方式穿过更高级别的系统窗口,但幸运的是Windows提供了一个辅助应用技术 ,它允许我们通过正常的方式将自己窗口的窗口段提升到最高级别,也就是ZBID_UIACCESS..这篇文章我将向大家介绍如何用合法的方式让自己的程序超级置顶原创 2023-05-27 09:49:49 · 737 阅读 · 0 评论 -
C++实现系统黑屏
详细的讲述了如何使用C++在win32环境下实现系统层面上的电脑黑屏。电脑黑屏通常有两种定义,一种是指硬件黑屏,包括但不限于硬件故障、断电、显示器被硬件或软件关闭等;另一种是指系统层面上的黑屏,两种黑屏的最大差别就是系统层面上的黑屏会发光,而硬件黑屏则基本上不会。这里讲的是使用C++进行系统层面上的黑屏。为了读者能够不加修改的复现,这里使用的是Win32程序。............原创 2022-07-17 17:23:57 · 1580 阅读 · 0 评论 -
利用MessageBox的句柄参数实现间接禁用窗口
MessageBox(GetForegroundWindow(),"这个窗口被我禁用了!","禁用标记",MB_OK);这个是用来获得当前活动窗口并以他为父窗口创建一个MessageBox窗口。如果加上while。。。while(1){MessageBox(GetForegroundWindow(),"这个窗口被我禁用了!","禁用标记",MB_OK);}就会在点击确定后再次获取并弹窗。显然,如果用户点击了确定那么就可以自由取消,那么我们稍作修改。while(1){Mess.原创 2021-12-05 16:24:16 · 510 阅读 · 0 评论 -
C++隐藏开始菜单
HWND hWnd = ::FindWindow(NULL, L"开始"); HWND hWnd1 = ::FindWindow(NULL, L"「开始」菜单"); ::ShowWindow(hWnd, SW_HIDE); ::ShowWindow(hWnd1, SW_HIDE);通过spy++已确定开始菜单的标题名如上。原创 2021-12-04 12:12:23 · 463 阅读 · 1 评论 -
C++修改其他窗口样式(通用型)
首先,这里是头文件(不确定要不要全部)#include<Windows.h>//#include <Windows.h>#include <shellapi.h>#include <iostream>#include<string>#include<istream>#include <conio.h>#include <shlobj.h>#include <dwmapi.h>#原创 2021-12-04 11:22:50 · 1636 阅读 · 0 评论 -
C++实现远程线程注入
以下是360百科对远程线程注入的解释:在一个进程中,调用CreateThread或CreateRemoteThreadEx函数,在另一个进程内创建一个线程(因为不在同一个进程中,所以叫做远程线程)。创建的线程一般为Windows API函数LoadLibrary,来加载一个动态链接库(DLL),从而达到在另一个进程中运行自己所希望运行的代码的目的。那么,该怎么去实现呢?首先,我们需要提权。这里我们使用令牌来提权。bool DebugPrivilege() { HANDLE hTok..原创 2021-12-04 11:17:52 · 849 阅读 · 0 评论 -
编写一个彻底拦截用户操作的程序
首先,我们得要有持久性,自启动是一个不错的选择,这里提供了一个自启动的函数。void autostart(){ HKEY hKey; string strRegPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; //1、找到系统的启动项 if (RegOpenKeyExA(HKEY_CURRENT_USER, strRegPath.c_str(), 0, KEY_ALL_ACCESS, &hKey) == ER原创 2021-11-27 20:27:04 · 390 阅读 · 0 评论 -
通过Windows钩子屏蔽鼠标
windows应用程序是基于消息驱动的。各种应用程序对各种消息作出响应从而实现各种功能。 windows钩子是windows消息处理机制的一个监视点,通过安装钩子可以达到监视指定窗口某种类型的消息的功能。所谓的指定窗口并不局限于当前进程的窗口,也可以是其他进程的窗口。当监视的某一消息到达指定的窗口时,在指定的窗口处理消息之前,钩子函数将截获此消息,钩子函数既可以加工处理该消息,也可以不作任何处理继续传递该消息。使用钩子是实现dll注入的方法之一。其他常用的方法有:注册表注入,远程线程注入。...原创 2021-11-27 20:05:53 · 970 阅读 · 0 评论 -
C++4行代码实现自启动
直接上代码HKEY hKey = NULL;RegCreateKey(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\windows\\CurrentVersion\\Run", &hKey);RegSetValueEx(hKey, "jshjjannddjwsjruskjews1242456323", 0, REG_SZ, (const unsigned char*)FilePath, strlen(FilePath) + sizeof(char));原创 2021-11-27 19:00:25 · 512 阅读 · 0 评论 -
使用ATL加C++实现简单截图
头文件:#include <Windows.h>#include <atlimage.h>#include <string>首先得隐藏控制台,不然就截图到了HWND console = GetConsoleWindow();ShowWindow(console, SW_HIDE);获得全屏DCHDC hdc;HWND hDesktopWnd = ::GetDesktopWindow();hdc = ::GetDC(hDesktopWnd原创 2021-11-27 18:50:26 · 240 阅读 · 0 评论 -
使用C++加载NT驱动
众所周知,驱动运行在ring0层,故此,驱动可以调用更多的API,但是,同时的也无法调用部分应用层API。驱动通常分为两种,一种是不支持即插即用功能的NT型驱动,另一种是支持即插即用的WDM型驱动,其中,WDM通常用于设备,因此需要使用INF文件进行注册。而NT型驱动则通常使用服务创建。人工加载按下Windows键加R,换成运行,在编辑框中输入cmd。点击确定,唤出命令提示符。然后输入一下命令sc create [在这里填充服务名] binpath="[在这里填充文件的完整绝对..原创 2021-11-27 18:37:28 · 1520 阅读 · 0 评论 -
C++实现下载者
废话不多少,直接上代码。#include <urlmon.h>#include<windows.h>#pragma comment (lib,"urlmon")int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine,原创 2021-11-27 13:29:54 · 360 阅读 · 0 评论