- 博客(19)
- 资源 (8)
- 问答 (3)
- 收藏
- 关注
原创 如何让一个程序读取到错误的硬盘序列号
运行完成后可以看到Detours里面的src文件夹下面有detours.h与detours.cpp,在lib.x64文件夹下面有detours.lib,我们后续使用Detours就需要这几个文件。注意,这里使用这几个文件的需要将文件复制到项目下面来,打开你的项目文件,确保下面有这几个文件,因为vs添加文件的话是不会将文件复制过来的(踩坑之一)。否则,则说明这是程序第一次访问这一分区的序列号,那么生成一个随机的值,传递给上层程序,并以原函数返回的序列号为Key,随机生成结果为Value插入到Map中。
2024-08-31 22:33:39 989
原创 Detours遇到TraceAPI示例找不到标识符问题解决方案
实际上在我们的SDK上并非没有这个API,但是Sample中自带的宏定义却遮盖住了它,为此,我们需要进入samples\traceapi\trcapi.cpp,找到“#define _WIN32_WINNT 0x400”一行,将其改为"#define _WIN32_WINNT 0xA00"众所周知,Detours是一个微软研究院的Hook项目,但它的发行版中也没有lib文件,需要我们自行编译。保存,再次调用nmake命令,于是编译顺利完成。
2024-08-15 20:15:11 199
原创 隐私保护无懈可击,一种允许受控联网的新型安全“虚拟气隙系统”思路
但是无论怎样,做好本机基本的恶意软件查杀还是必要的,毕竟我们也无法说准恶意程序会不会修改联网程序的运行文件(在不能接受外界指令的情况下,系统本身就算自带后门也肯定是不可能自动做这种事情的),从而外传数据(但其实只要你有耐心去动态修改沙盒防火墙,这个也基本不成问题)综上,在系统本身不直接连接到互联网的情况下,使用Sandboxie-Plus不但可以做到代理的统一修改,而且可以在窗口、进程、文件等方面对联网与禁止联网进程(包括系统本体)进行隔离,在保证方便的同时,又做到了数据安全保障。禁止访问系统剪贴板。
2024-07-06 14:16:08 273
原创 如何使用身份验证函数实现Windows凭据询问及验证
CredUIPromptForCredentials 函数创建并显示一个可接受用户凭据信息的可配置对话框。CredUIParseUserName 函数从完全限定的用户名中提取域和用户帐户名。思路:先用第一个函数向用户询问,随后用第二个函数验证。
2024-07-06 14:13:28 356
原创 如何让你的窗口置顶成为最靓的仔(Windows10)
大家应该都知道在Windows 8以上引入了一个新的概念叫做窗口段 普通的窗口运行于ZBID_ DESKTOP 级上 ,这导致我们的窗口Z序无法以任何常规方式穿过更高级别的系统窗口,但幸运的是Windows提供了一个辅助应用技术 ,它允许我们通过正常的方式将自己窗口的窗口段提升到最高级别,也就是ZBID_UIACCESS..这篇文章我将向大家介绍如何用合法的方式让自己的程序超级置顶
2023-05-27 09:49:49 797
原创 C++实现系统黑屏
详细的讲述了如何使用C++在win32环境下实现系统层面上的电脑黑屏。电脑黑屏通常有两种定义,一种是指硬件黑屏,包括但不限于硬件故障、断电、显示器被硬件或软件关闭等;另一种是指系统层面上的黑屏,两种黑屏的最大差别就是系统层面上的黑屏会发光,而硬件黑屏则基本上不会。这里讲的是使用C++进行系统层面上的黑屏。为了读者能够不加修改的复现,这里使用的是Win32程序。............
2022-07-17 17:23:57 1647
原创 利用MessageBox的句柄参数实现间接禁用窗口
MessageBox(GetForegroundWindow(),"这个窗口被我禁用了!","禁用标记",MB_OK);这个是用来获得当前活动窗口并以他为父窗口创建一个MessageBox窗口。如果加上while。。。while(1){MessageBox(GetForegroundWindow(),"这个窗口被我禁用了!","禁用标记",MB_OK);}就会在点击确定后再次获取并弹窗。显然,如果用户点击了确定那么就可以自由取消,那么我们稍作修改。while(1){Mess.
2021-12-05 16:24:16 524
原创 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 479 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 1659
原创 C++实现远程线程注入
以下是360百科对远程线程注入的解释:在一个进程中,调用CreateThread或CreateRemoteThreadEx函数,在另一个进程内创建一个线程(因为不在同一个进程中,所以叫做远程线程)。创建的线程一般为Windows API函数LoadLibrary,来加载一个动态链接库(DLL),从而达到在另一个进程中运行自己所希望运行的代码的目的。那么,该怎么去实现呢?首先,我们需要提权。这里我们使用令牌来提权。bool DebugPrivilege() { HANDLE hTok..
2021-12-04 11:17:52 866
原创 编写一个彻底拦截用户操作的程序
首先,我们得要有持久性,自启动是一个不错的选择,这里提供了一个自启动的函数。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 405
原创 通过Windows钩子屏蔽鼠标
windows应用程序是基于消息驱动的。各种应用程序对各种消息作出响应从而实现各种功能。 windows钩子是windows消息处理机制的一个监视点,通过安装钩子可以达到监视指定窗口某种类型的消息的功能。所谓的指定窗口并不局限于当前进程的窗口,也可以是其他进程的窗口。当监视的某一消息到达指定的窗口时,在指定的窗口处理消息之前,钩子函数将截获此消息,钩子函数既可以加工处理该消息,也可以不作任何处理继续传递该消息。使用钩子是实现dll注入的方法之一。其他常用的方法有:注册表注入,远程线程注入。...
2021-11-27 20:05:53 990
原创 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 523
原创 使用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 255
原创 使用C++加载NT驱动
众所周知,驱动运行在ring0层,故此,驱动可以调用更多的API,但是,同时的也无法调用部分应用层API。驱动通常分为两种,一种是不支持即插即用功能的NT型驱动,另一种是支持即插即用的WDM型驱动,其中,WDM通常用于设备,因此需要使用INF文件进行注册。而NT型驱动则通常使用服务创建。人工加载按下Windows键加R,换成运行,在编辑框中输入cmd。点击确定,唤出命令提示符。然后输入一下命令sc create [在这里填充服务名] binpath="[在这里填充文件的完整绝对..
2021-11-27 18:37:28 1552
原创 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 377
原创 仿照MEMZ做一个特效程序
此程序基于MFC,核心代码配有注释// 特效程序1Dlg.cpp : 实现文件//#include "stdafx.h"#include "特效程序1.h"#include "特效程序1Dlg.h"#include "afxdialogex.h"#include <Windows.h>#include<Mmsystem.h>#include <MMSystem.h>#pragma comment (lib,"Winmm")#pragma co
2021-11-27 13:22:19 1316
原创 使火绒窗口无法响应某些用户消息
续接上篇文章,我发现WM_NCDESTROY消息可以使火绒窗口不能响应某些消息。while (1) { HWND hWnd = FindWindow(NULL, L"火绒安全软件"); PostMessage(hWnd, WM_NCDESTROY, NULL, NULL); hWnd = FindWindow(NULL, L"信任区"); PostMessage(hWnd, WM_NCDESTROY, NULL, NULL); hWnd = FindWindow(NULL, L"隔
2021-11-27 13:18:52 324
原创 使用WINDOWS消息使火绒窗口关闭
通过尝试,我对火绒发送了一些消息,发现WM_QUIT和WM_DESTROY消息可以关闭火绒的窗口,那么代码如下void C关闭火绒窗口Dlg::OnBnClickedButton1(){ HWND hWnd=NULL; while (1) { hWnd = ::FindWindow(NULL, "火绒安全软件"); Sleep(100); ::PostMessage(hWnd, WM_QUIT, NULL, NULL); } // TODO: 在此添加控件通知处理程序代码}
2021-11-27 13:13:53 1010
如何解决VS2022下使用RDP Control控件出现ASSERT报错?
2024-08-28
如何利用api hook阻止程序通过DXGI全屏截图
2024-03-05
安装PyInstaller时语法错误
2021-09-12
Android程序如何拥有Desktop属性
2021-07-12
请问如何在MFC中实现使窗口的一部分透明
2021-07-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人