終止處理程序 (W32 Console)

绕过360实现lsass转储 前言 获取Windows用户的凭证信息是渗透过程中至关重要的一步。 没杀软,只要有权限想怎么读就怎么读。 有杀软,得用一些特别的技巧。 注:本机所有测试均为物理机,且为最新版AV Mimikatz直接读取Lsass进程 权限提升 privilege::debug 抓取密码 sekurlsa::logonpasswords [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BSPqd5Xv-1650257094211)(image-20220411145456534.png 阅读详情
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <winbase.h>
#include <tlhelp32.h>
#include <PSAPI.h>

#pragma comment(lib, "kernel32.lib")
#pragma comment(lib, "advapi32.lib")
#pragma comment(lib, "PSAPI.lib")

// 終止處理程序
BOOL KillProcess (int);
// 取得偵錯權限
BOOL GetDebugPrivilege (void);
// 列舉所有程序
void ErumProcesses (void);

int main(void) {
        ErumProcesses();
        if(!GetDebugPrivilege()) {
                printf("/n無法取得偵錯權限 (%d)/n", GetLastError());
                return EXIT_SUCCESS;
        }
        int pid = 0;
        while(true) {
                printf("/n若要停止程序, 請輸入一個程序識別碼 (0離開, 1重新整理): ");
                        scanf("%d", &pid);
                switch(pid){
                        case 0:
                                return EXIT_SUCCESS;
                                break;
                        case 1:
                                system("CLS");
                                ErumProcesses();
                                break;
                        default:
                        if(KillProcess(pid)) {
                                printf("/n已結束該處理程序./n");
                                system("PAUSE");
                                system("CLS");
                                ErumProcesses();
                        }else {
                                LPTSTR lpMsg;
                                FormatMessage(
                                        FORMAT_MESSAGE_ALLOCATE_BUFFER |
                                        FORMAT_MESSAGE_FROM_SYSTEM,
                                        NULL, GetLastError(),
                                        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                                        (LPTSTR)&lpMsg, 0, NULL
                                );
                                printf("/n%s", lpMsg);
                        }
                }
        }
}

BOOL KillProcess(int pid) {
        HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, pid);
                if(!hProcess) return FALSE;
        DWORD dwSuccess = TerminateProcess(hProcess, 0);
                if(!dwSuccess) return FALSE;
        return TRUE;
}

BOOL GetDebugPrivilege(void) {
        BOOL bSuccess;
        HANDLE hToken;
        TOKEN_PRIVILEGES tokenPrivileges;

        bSuccess = OpenProcessToken(GetCurrentProcess(),
                TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
                if(!bSuccess) return FALSE;
        bSuccess = LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
                &tokenPrivileges.Privileges[0].Luid);
                if(!bSuccess) return FALSE;
                tokenPrivileges.PrivilegeCount = 1;
                tokenPrivileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
        bSuccess = AdjustTokenPrivileges(hToken, FALSE,
                &tokenPrivileges, 0, NULL, 0);
                if(!bSuccess) return FALSE;

        return CloseHandle(hToken);
}

void ErumProcesses(void) {
        HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
        if(hSnapshot != INVALID_HANDLE_VALUE) {
                HANDLE hProcess;
                TCHAR szPath[260];
                PROCESSENTRY32 procSentry;
                        procSentry.dwSize = sizeof(procSentry);
                BOOL Proc = Process32First(hSnapshot, &procSentry);
                for(; Proc; Proc = Process32Next(hSnapshot, &procSentry)) {
                        hProcess = OpenProcess(
                                PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, NULL,
                                procSentry.th32ProcessID
                        );
                        if(hProcess != INVALID_HANDLE_VALUE) {
                                GetModuleFileNameEx(hProcess, NULL, szPath, sizeof(szPath));
                        }; CloseHandle(hProcess);
                        printf("PID %5d  [%s]/n",
                                procSentry.th32ProcessID, procSentry.szExeFile);
                        if(strlen(szPath) != 2) printf("/"%s/"/n/n", szPath);
                }
        }; CloseHandle(hSnapshot);
} 
pthread4w-delphi编程示例(一) 线程基础: 线程操作包括线程的创建、终止、同步(连接、阻塞)、调度、数据管理和进程交互。 线程不维护已创建线程的列表,也不知道创建它的线程。 一个进程中的所有线程共享相同的地址空间。 同一进程中的线程共享: 进程说明 大多数数据 打开文件(描述符) 信号和信号捕捉程序 当前工作目录 用户和组 ID 每个线程都有一个独特的: 线程 ID 一组寄存器,堆栈指针 局部变量堆栈,返回地址 信号掩码 优先事项 返回值:errno 如果正常,pthrea 阅读详情

相关推荐

操作系统课设之Windows 进程管理

操作系统课程设计 Windows进程管理 C创建进程

RongLin02的博客 1万+

Win32汇编学习(3)之int 21中断

int 21h -- dos功能调用 含有近100个功能,提供了应用程序所需要的大多数服务,包括打开文件、关闭文件、读文件、写文件、读键盘输入、写显示屏、读取或设置系统日期和时间,以及一大堆控制变量。 通过给AH寄存器赋值,然后调用INT 21H指令,计算机就会根据AH寄存器中的值执行相应的操作给AH寄存器赋值效果如下 AH功能调用参数返回参数00程序终止(同INT 20H)CS=程序段前缀

1398

Chrome OS真实体验深度解析:云优先架构的技术边界与工作流适配

Chrome OS并非简化版Linux,而是以浏览器为核心的沙盒化Web运行时操作系统。其底层采用Linux内核+Chromium平台服务+Blink/V8引擎三层架构,通过硬件抽象API(如chrome.usb、chrome.bluetooth)替代传统POSIX接口,带来USB音频延迟飙升、GPU加速失效、外设兼容黑洞等硬性技术约束。这种‘云优先’设计在教育、远程办公等强联网场景中表现流畅,却在离线编辑、多屏创意、本地开发等复合型工作流中暴露三重断层:Profile同步≠数据同步、离线功能依赖预加载、网

aobai7842的博客 519

显示win32控制台

#ifndef DEBUGCONSOLE_H #define DEBUGCONSOLE_H #include #include #include #include #include #include extern void showWin32Console(); void showWin32Console() { static const

zhangyan_HSW的博客 483

ANSYS 2024R2安装全指南:环境预检、ALI许可配置与多模块部署

ANSYS是一款面向工程仿真的高集成度CAE软件平台,其运行依赖严格的系统环境、服务架构与许可证管理体系。2024R2版本全面升级至Ansys Licensing Interconnect(ALI)统一许可架构,并强化了对.NET 6.0、VC++ 2022及Windows 10 21H2+的硬性要求。该版本不再支持传统License Manager,所有模块必须通过ALI服务按序注册与激活,涉及服务配置、端口放行、驱动兼容、路径规范等关键工程实践环节。典型应用场景包括高校CAE实验室本地部署、车企结构-流

weixin_34162228的博客 636

命令行方式实现第一个CUDA程序的运行(Win7环境)

     看CUDA 方面的资料也有些时日了,关于CUDA的环境配置网上也有很多比如:Visual Studio 2008 + Visual Assist X的CUDA2.3编译环境设置 开勇哥的CUDA VS2005 Wizard 等等,主要是针对VS集成开发环境的配置,而关于命令行方式的很少。我想也有很多人跟我一样也尝试过,但在其间遇到了很大的困难,不得不终止。    

G_Spider的专栏 8035

Win10_X64远线程注入dll(非CreateRemoteThread)

谈到远线程注入,首先肯定会想到使用CreateRemoteThread,但这个API无法对系统进程进行注入,而且根据我个人的验证发现这个函数在win10下也无法正常将dll注入进记事本进程(淦!)。好在在我的不懈努力的百度、google下发现了另一种思路,那就是使用ZwCreateThread这个内核API,CreateRemoteThread在底层也调用了这个API,CreateRemoteThread底层会调用内核函数ZwCreateThreadEx,而系统调用此函数时,如果发现是系统进程,会把函数的第

Anansi的博客 3599

IFIX数据库Datebase当前值问号

IFIX数据库Datebase当前值问号,已解决,亲测有效 在OPC PowerTool有数据的情况下,IFIX数据库Datebase当前值显示???? 问题分析及解决方法 我的IFIX5.8版本,其它版本可参考 打开IFIX工作台:应用程序–任务控制–I/O驱动–OPC Client;查看OPC驱动是否被禁用,点击启动,变成激活状态即可;若点击启动无法激活OPC驱动,需要重新安装OPC驱动,方法如下: 下载I/O Driver文件 下载链接:https://download.youkuaiyun.com/down

Ron_Tso的博客 2760

别再傻傻分不清了!一文搞懂Linux里的Shell、Terminal、Console和CLI(附常用命令速查)

本文详细解析了Linux中的Shell、Terminal、Console和CLI等核心概念,帮助用户清晰区分这些术语。通过生活化比喻和实用命令速查表,读者可以快速掌握Linux命令行操作技巧,提升工作效率。文章还涵盖了文件操作、系统监控、进程管理等实用内容,适合Linux初学者和进阶用户。

weixin_28725949的博客 139

从零到一:Abaqus与Matlab联合仿真的自动化流程构建指南

本文详细介绍了如何构建Abaqus与Matlab联合仿真的自动化流程,涵盖基础架构设计、关键接口技术实现、结果提取与处理技术以及高级参数化优化流程。通过Python脚本作为桥梁,实现数据传递和任务控制,帮助工程师提升仿真效率。特别强调了版本兼容性、异常处理和性能监控等实用技巧。

weixin_29090089的博客 612

SAP COPA实战:手把手教你用CMOD增强搞定自定义特性派生(以客户字段为例)

本文详细介绍了在SAP COPA模块中通过CMOD增强实现自定义特性派生的全流程,以客户字段为例,展示了从特性设计、SPRO配置到特性派生逻辑实现的完整步骤。重点讲解了如何利用CMOD增强技术解决业务需求,提升获利能力段分析的灵活性和准确性。

weixin_30275415的博客 429

windows系统调用 进程终止

1 #include "windows.h" 2 #include "iostream" 3 #include "stdio.h" 4 using namespace std; 5 6 static LPCTSTR q_szMutexName="w2kdg.ProcTerm.mutex.Suicide"; 7 8 HANDLE StartClone(){ ...

weixin_34357436的博客 243

基于ADRC算法的多旋翼飞行器抗扰动控制实践

本文详细介绍了基于ADRC算法的多旋翼飞行器抗扰动控制实践,通过线性扩张状态观测器(LESO)实时估算风力等扰动,实现提前补偿,显著提升飞行稳定性。文章结合具体案例和工程实现技巧,展示了ADRC在突风条件下的优异表现,为无人机控制提供了高效解决方案。

weixin_29284885的博客 193

I2C,UART,SPI 的基础理论知识以及在MCU中的应用

详细讲解I2C、UART、SPI原理以及在单片机中的具体应用。

m0_74676415的博客 4198

Unity URP风格化水面Shader全流程实现与性能优化指南

在游戏开发中,Shader是实现特定视觉风格的核心技术,它通过编写在GPU上运行的程序,控制模型每个像素的最终颜色与光照表现。其原理在于对顶点位置、纹理坐标、光照信息及深度等数据进行一系列数学运算与插值。这项技术的价值在于能够以极高的自由度创造从写实到卡通的各种渲染效果,同时通过算法优化实现对硬件资源的精准控制。在移动游戏、独立游戏等对性能与风格化有强烈需求的场景中,自定义Shader尤为重要。本文聚焦于使用Unity URP渲染管线,从零构建一个高效的风格化水面Shader,详细拆解了深度色、波浪动画、边

weixin_34320724的博客 372

国科大学习资料--计算机网络--历年考题1

国科大学习资料–计算机网络–历年考题1 1、假定有一个通信协议,每个分组都引入100字节的开销用于头和成帧,现在使用这个协议发送1M字节的数据(为方便计算,1M=10^6),然而在传递的过程中有一个字节被破坏了,因而包含该字节的那个分组被丢弃并重传。(1)当数据的分组大小为1000、5000、20000和40000字节时,计算相应(包括开销)的传递字节总数目。(2)计算分组大小的最优值是多少,即分组的大小为何值时总的传输字节数最少。(提示:最优值不是1000、5000、20000和40000字节中的一个)

无名何许人的博客 1182

STM32H7A3xG Bank 2 mismatch报错:从地址映射到烧录排障全流程

在嵌入式开发中,STM32系列芯片的Flash存储结构设计直接影响到固件烧录与启动流程。当使用STM32CubeProgrammer进行程序下载时,遇到“Bank 2 address mismatch”错误,往往是因为芯片Flash的Bank地址映射与固件的内存布局不一致。这一现象在STM32H7系列中尤为常见,其双Bank架构和选项字节配置差异,导致许多开发者误将2MB型号的地址映射套用到1MB器件上。理解Flash Bank划分、DBANK选项字节以及链接脚本地址设置,是排查该问题的核心。对于需要OTA

weixin_29191761的博客 339

VSCode 中搭建 Python 开发环境

**验证安装**:打开终端(CMD/PowerShell/终端),输入 `python --version`(Windows)或 `python3 --version`(macOS/Linux),显示版本号即成功。- **下载地址**:[Python 官网](https://www.python.org/downloads/)(选择对应系统的最新稳定版,推荐 3.8+)- **调试**:通过 `launch.json` 配置,设置断点后按 `F5` 启动,使用 `F10/F11` 控制流程。

寒寒豆豆软件公司的博客 2540

IronRuby练手系列之一:写个进程管理器

用IronRuby+SharpDevelop 来开发GUI程序是十分便利的。《IronRuby练手系列》计划是用Ruby来写一系列的小工具,目的是来进一步熟悉IronRuby. 本文章是写一个进程管理器,需要的主要知识点是:Ruby语言,WinForm,Win32 API等。本文的重点如题,是以Ruby为主,而不是以"列举进程"为主。

skandhas的专栏 773

UniRx之基本语法格式

想要更好的去学习UniRx,我们最好是先理解UniRx 的语法格式。就像我们去学习英语或者汉语一样,理解了基本的语法规则后,再学其他的就信手拈来了。

TxNet 925

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

2021-06-21 操作系统课程设计实验(一)

2021-06-21 操作系统课程设计实验(一) 前言 本次实验所用设备为微软surface pro4,操作系统为windows10。 注意事项 (1)本次实验参照课程设计指导书完成 。 实验题目 1、登入网址https://pan.baidu.com/s/1xpbbKNRg4sK_-R80RA0O2w下载VC++ 6.0安装包。 2、点击安装包,选好安装路径,其余直接默认即可。 3、点击启动程序。 (注:正常界面如下) (可能出现问题:程序无法正常使用) (问题原因:程序当前版本的兼容性.

APPDREAMER的博客 1527

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

隐藏CMD

隐藏CMD。

做一个快乐学习者 1149

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

juniper的一些基本命令

1 Transit 过境 juniper设备第一次进入console口必须配置密码 2 help reference 命令显示相关配置选项的完整列表以及特定于命令语句的其他几个详细信息 3 ctrl+b 将光标向左移动一个字符 4 ctrl+a 将光标移动到命令行的开头 5 ctrl+f 将光标向右移动一个字符 6 ctrl+e 将光标移动到命令行的末尾 7 delete/backspa...

夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远. 4296

Facebook Messenger Bot Python生产部署全指南

Webhook是构建消息机器人的核心通信机制,其本质是服务端接收外部平台HTTP回调的标准化接口。实现稳定Webhook需同时满足协议规范(HTTPS/签名验证)、运行时保障(进程管理/超时控制)与基础设施适配(反向代理/证书自动化)。Python生态虽提供Flask等轻量框架,但默认缺乏生产级WSGI支持、TLS终止和健康检查能力,导致本地调试通过后在Facebook平台频繁出现400签名错误、502网关超时或Webhook退订。本文聚焦Messenger Bot部署中必须攻克的7个关键环节:从Let’s

459

网络编程

基于TCP的socket编程: 基于UDP的socket编程:  1.基于TCP连接的服务器客户端程序 新建一个win32 console application ,工程名为TCPSrv,再添加一个源程序,取名也为TCPSrv. 服务端程序: 因为要用到win32 套接字的函数,所以要在头文件中包含Winsock2.h这个头文件,并在project -> Setting -> Link -> Object/library modules中添加ws2_32.

维唯为为_优快云博客 917
上一篇: 如何进行https中间人攻击
下一篇: 在VC中WININET如何使用HTTP的POST方法
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值