远程注入dll,应该注入成功了,不过dll没反应,不执行弹出框

l6022258 2013-03-07 02:45:35
这代码是网上找的,自己弄回来整了整,悲剧了。。。
小弟我搞不明白了,望高手来帮帮忙。
注入代码:
#include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <windows.h>
#include <atlbase.h>
#include <conio.h>
#include <stdlib.h>

HANDLE h_token;
HANDLE h_remote_process;
TCHAR msg[MAX_PATH];
BOOL inject_dll( LPCTSTR dll_path, const DWORD remote_pro_id )
{

if ( OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &h_token ) )
{
TOKEN_PRIVILEGES tkp;
//修改进程权限
LookupPrivilegeValue( NULL,SE_DEBUG_NAME, &tkp.Privileges[0].Luid );
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
//通知系统修改进程权限
AdjustTokenPrivileges( h_token, FALSE, &tkp, sizeof( tkp ), NULL, NULL );
}

//打开远程线程
if( ( h_remote_process = OpenProcess( PROCESS_CREATE_THREAD | //允许远程创建线程
PROCESS_VM_OPERATION | //允许远程VM操作
PROCESS_VM_WRITE, //考试#大提示允许远程VM写
FALSE, remote_pro_id ) )== NULL )
{
USES_CONVERSION;
_tcscpy(msg, A2T("OpenProcess Error!"));
MessageBox(NULL,msg,msg,MB_OK);
return FALSE;
}
char *lib_func_buf;
//在远程进程的内存地址空间分配DLL文件名缓冲区
lib_func_buf = (char *) VirtualAllocEx( h_remote_process, NULL, lstrlen(dll_path) + 1,
MEM_COMMIT, PAGE_READWRITE);
if( lib_func_buf == NULL )
{
USES_CONVERSION;
_tcscpy(msg, A2T("VirtualAllocEx Error!"));
MessageBox(NULL,msg,msg,MB_OK);
return FALSE;
}
//将DLL的路径名复制到远程进程的内存空间
if( WriteProcessMemory( h_remote_process,
lib_func_buf, ( void * )dll_path, lstrlen( dll_path ) + 1, NULL ) == 0 )
{
USES_CONVERSION;
_tcscpy(msg, A2T("WriteProcessMemory Error!"));
MessageBox(NULL,msg,msg,MB_OK);
return FALSE;
}
//计算LoadLibraryA的入口地址
PTHREAD_START_ROUTINE load_start_addr = ( PTHREAD_START_ROUTINE )
GetProcAddress( GetModuleHandle( TEXT("Kernel32") ), "LoadLibraryA");
if( load_start_addr == NULL )
{
USES_CONVERSION;
_tcscpy(msg, A2T("GetProcAddress Error!"));
MessageBox(NULL,msg,msg,MB_OK);
return FALSE;
}
HANDLE h_remote_thread;
if( (h_remote_thread = CreateRemoteThread( h_remote_process, NULL, 0,
load_start_addr, lib_func_buf, 0, NULL ) ) == NULL)
{
USES_CONVERSION;
_tcscpy(msg, A2T("CreateRemoteThread Error!"));
MessageBox(NULL,msg,msg,MB_OK);
return FALSE;
}
return TRUE;
}

int main(int argc, char **argv)
{

TCHAR dll[MAX_PATH];
int id = 5296;
USES_CONVERSION;
_tcscpy(dll, A2T("D:\\2010projects\\MyFirstC++\\MyFirstC++\\Debug\\my_library.dll"));
if(inject_dll(dll,id)){
USES_CONVERSION;
_tcscpy(msg, A2T("SecussFull!"));
MessageBox(NULL,msg,msg,MB_OK);
}else{
USES_CONVERSION;
_tcscpy(msg, A2T("Error!"));
MessageBox(NULL,msg,msg,MB_OK);
}
getch();
return 0;
}
dll中主要代码:
mylibrary.def://模块定义文件
LIBRARY

dllmain.cpp://这文件系统自动生成的,我用vs2010添加个模块定义文件就自动生成了。
// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "stdafx.h"

BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
TCHAR msg[MAX_PATH];
USES_CONVERSION;
_tcscpy(msg, A2T("aaaaa"));
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
MessageBox(NULL,msg,msg,MB_OK);
case DLL_THREAD_ATTACH:
MessageBox(NULL,msg,msg,MB_OK);
case DLL_THREAD_DETACH:
MessageBox(NULL,msg,msg,MB_OK);
case DLL_PROCESS_DETACH:
MessageBox(NULL,msg,msg,MB_OK);
break;
}
return TRUE;
}

...全文
1592 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hkfxp 2014-03-26
  • 打赏
  • 举报
回复
引用 16 楼 zhao4zhong1 的回复:
F10不行,下次来到此处时F11

终于解决了此问题,来恢复下,此类编译没有错误,可是不出想要的结果,问题多是参数类型出错。如下所示
赵4老师 2014-03-25
  • 打赏
  • 举报
回复
F10不行,下次来到此处时F11
hkfxp 2014-03-25
  • 打赏
  • 举报
回复
引用 7 楼 zhao4zhong1 的回复:
[quote=引用 3 楼 l6022258 的回复:]
引用 2 楼 zhao4zhong1 的回复:对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!
你敢给我来点实际的不?

类似你的这种问题,在大多数情况下不单步调试对应汇编指令是永远也无法得到答案的。[/quote]
感觉你说的有道理,请教按f10 step over时候,为何到如图所示的地方,再也无法往下进行了,我的跟楼主一样的程序,一样的问题。
l6022258 2013-03-07
  • 打赏
  • 举报
回复
我大致搞明白了,原因是数据类型的转换,我用A2T把TCHAR转换了后写入LPCTSTR指针中,然后再把LPCTSTR转换成无类型指针PVOID,在WriteProcessMemory就挂了,具体怎么挂的我也不知道,无报错而且WriteProcessMemory还成功了,但是模块未加载上。 下面是我修改后的代码: int main(int argc, char **argv) { TCHAR program_file[MAX_PATH]; USES_CONVERSION; _tcscpy(program_file, A2T("notepad.exe")); DWORD processid=SelectProcess(program_file); PVOID dllname = "d:\\a.dll"; if(processid) { //insertdll(processid,dllname,13); inject_dll(dllname,processid,9); } } BOOL inject_dll( PVOID dll_path, const DWORD remote_pro_id ,const int path_len) { if ( OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &h_token ) ) { TOKEN_PRIVILEGES tkp; //修改进程权限 LookupPrivilegeValue( NULL,SE_DEBUG_NAME, &tkp.Privileges[0].Luid ); tkp.PrivilegeCount = 1; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; //通知系统修改进程权限 AdjustTokenPrivileges( h_token, FALSE, &tkp, sizeof( tkp ), NULL, NULL ); } //打开远程线程 if( ( h_remote_process = OpenProcess( PROCESS_CREATE_THREAD | //允许远程创建线程 PROCESS_VM_OPERATION | //允许远程VM操作 PROCESS_VM_WRITE, //考试#大提示允许远程VM写 FALSE, remote_pro_id ) )== NULL ) { return FALSE; } char *lib_func_buf; //在远程进程的内存地址空间分配DLL文件名缓冲区 lib_func_buf = (char *) VirtualAllocEx( h_remote_process, NULL, path_len + 1, MEM_COMMIT, PAGE_READWRITE); if( lib_func_buf == NULL ) { return FALSE; } //将DLL的路径名复制到远程进程的内存空间 if( WriteProcessMemory( h_remote_process, lib_func_buf, ( void * )dll_path, path_len + 1, NULL ) == 0 ) { return FALSE; } //计算LoadLibraryA的入口地址 PTHREAD_START_ROUTINE load_start_addr = ( PTHREAD_START_ROUTINE ) GetProcAddress( GetModuleHandle( TEXT("Kernel32") ), "LoadLibraryA"); if( load_start_addr == NULL ) { return FALSE; } HANDLE h_remote_thread; if( (h_remote_thread = CreateRemoteThread( h_remote_process, NULL, 0, load_start_addr, lib_func_buf, 0, NULL ) ) == NULL) { return FALSE; } return TRUE; }
l6022258 2013-03-07
  • 打赏
  • 举报
回复
谢谢几位,我先试试。
赵4老师 2013-03-07
  • 打赏
  • 举报
回复
还有一种可能是你注入的进程属性不是“可交互的”,比如某个后台服务。
赵4老师 2013-03-07
  • 打赏
  • 举报
回复
也可以试试用w32dsm,调试,附加活动进程,或WinDbg类似功能调试,但两者都要调试汇编指令。
swlilike 2013-03-07
  • 打赏
  • 举报
回复
既然你都被360警报了,那肯定引发了注入,看你DLL的代码也肯定能弹出来。 如果没弹出来查两方面 1,是不是真的注入了,(用进程模块查看工具查看) 2,注入的DLL 是不是你指定的DLL,是不是选择错DLL了 我就犯过这毛病
l6022258 2013-03-07
  • 打赏
  • 举报
回复
引用 8 楼 zhao4zhong1 的回复:
在百度或谷歌搜“dll注入” 或 在http://www.codeproject.com搜“inject dll”
额 汇编这东西我看不懂啊,不过我运行的时候360有拦截警报,这表示我应该成功了。 不过为啥我dll注入之后里面写的messagebox没弹出来我就不懂了。
赵4老师 2013-03-07
  • 打赏
  • 举报
回复
在百度或谷歌搜“dll注入” 或 在http://www.codeproject.com搜“inject dll”
赵4老师 2013-03-07
  • 打赏
  • 举报
回复
引用 3 楼 l6022258 的回复:
引用 2 楼 zhao4zhong1 的回复:对学习编程者的忠告: 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步对应汇编一行! 你敢给我来点实际的不?
类似你的这种问题,在大多数情况下不单步调试对应汇编指令是永远也无法得到答案的。
l6022258 2013-03-07
  • 打赏
  • 举报
回复
引用 5 楼 swlilike 的回复:
我以前的代码 贴上来 C/C++ code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071#include "stdafx.h"#include <tc……
哥哥你这有可以运行的源码吗?简单的能看出来效果的那种,最好dll里面就弹出一对话框的,发一个给我行吗? 邮箱:313762313@qq.com
swlilike 2013-03-07
  • 打赏
  • 举报
回复
我以前的代码 贴上来


#include "stdafx.h"
#include <tchar.h>
#include <malloc.h>
#include <TlHelp32.h>

//注意:  dll路径一定要以绝对路径,否则会注入失败

BOOL WINAPI insertdll(DWORD dwprocessid,PCSTR filepath)
{
	BOOL fok=FALSE;
	HANDLE hprocess=NULL;
	HANDLE hthread=NULL;
	PCSTR re_filepath=NULL;
	hprocess=::OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,FALSE,dwprocessid);
	if(hprocess==NULL)
	{
		return fok;
	}
    int count=1+(::lstrlen(filepath));
	re_filepath=(PCSTR)::VirtualAllocEx(hprocess,NULL,count,MEM_COMMIT,PAGE_READWRITE);
	if(re_filepath==NULL)
		return fok;
	if(!::WriteProcessMemory(hprocess,(PVOID)re_filepath,(PVOID)filepath,count,NULL))
		return fok;
	PTHREAD_START_ROUTINE fun_address=(PTHREAD_START_ROUTINE)::GetProcAddress(::GetModuleHandle("kernel32.dll"),"LoadLibraryA");
	if(fun_address==NULL)
	{
		return fok;
	}
	hthread=::CreateRemoteThread (hprocess,NULL,0,fun_address,(PVOID)re_filepath,0,NULL);
	if(hthread==NULL)
		return fok;
	::WaitForSingleObject(hthread,INFINITE);
	fok=TRUE;
	return fok;
}
DWORD SelectProcess(PCSTR ProcessName)
{
	DWORD ProcessId=0;
	HANDLE process=NULL;
	process=CreateToolhelp32Snapshot(TH32CS_SNAPALL,::GetCurrentProcessId());
	PROCESSENTRY32 pe={sizeof(pe)};
		while(::Process32Next(process,&pe))
		{
			if(::lstrcmpi(pe.szExeFile,ProcessName)==0)
			{
                 ProcessId=pe.th32ProcessID;
				 //MessageBox(NULL,pe.szExeFile,"hello",MB_OK);
				 break;
			}
			//MessageBox(NULL,pe.szExeFile,"hello",MB_OK);
		}

	return ProcessId;
}
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 	// TODO: Place code here.
	PCSTR processname="text1.exe";
	DWORD processid=SelectProcess(processname);
	PCSTR dllname="e:\\rc41.dll";
    if(processid)
	{
        insertdll(processid,dllname);
	}

	return 0;
}
l6022258 2013-03-07
  • 打赏
  • 举报
回复
引用 1 楼 fishion 的回复:
这进程ID是固定的么。网上完整的例子很多,随便找的改下dll路径都行了。 还有提醒一下,你这代码里没有必要用到 USES_CONVERSION
进程id我就随便从任务管理器里找了个txt的进程。 USES_CONVERSION 也就是转换字符串的时候用的,主要就是输出个提示框。 关键是我这代码运行正常,但是我dll入口点函数里的对话框就是弹不出来。。。 我不知道是dll写的有问题,还是我根本没注入进去。
l6022258 2013-03-07
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
对学习编程者的忠告: 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步对应汇编一行!
你敢给我来点实际的不?
赵4老师 2013-03-07
  • 打赏
  • 举报
回复
对学习编程者的忠告: 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步对应汇编一行!
fishion 2013-03-07
  • 打赏
  • 举报
回复
这进程ID是固定的么。网上完整的例子很多,随便找的改下dll路径都行了。 还有提醒一下,你这代码里没有必要用到 USES_CONVERSION
A ACCSEE记录显示到超级列表模块 ACSII加解密模块2.0 ADO方式填充树型 安全关机 B Base64编解码 Bios信息 BMP滤镜模块 BoyChong-神2多方式取IP模块 BoyChong专用常用模块2.0 保存图片1.0 本土化易模块 保证显示 比较大小 编辑标准格式公文2.0 编辑辅助功能 编码转换大全 变速模块 冰川多媒体播放模块 1.0 部品管理模块   C Cool皮肤模块 CPU占用率检测模块 菜单加图片模块 1.0 查找窗口或进程并关闭 常用API 常用功能 超级表达式计算 超级打印预览0716 超级列表背景 超级列表补助 超级列表操作类 超级列表存为网页 超级列表导出EXECL 超级列表到文件 超级列表功能扩展2.2 超级列表扩展模块1.0 超级列表排序 超级列表数据库排序 超级列表选择状态被改变 超级列表选中项存为Excel文件 超级信息 程序是否运行 传世注册 窗口动画效果模块 V1.0 窗口句柄&进程名互取 窗口-控件锚点 窗口热键 窗口贴边隐藏模块 窗口外形任我设 窗口整容师1.0 窗口整容师1.1 创建多级目录 创建多级目录-西风 创建快捷方式1.0-西风 创建快捷方式模块2.2 创建任意目录 1.0.0.2 创建数据库模块 1.0 磁盘格式化模块 1.0 磁盘相关 磁性窗口2.0 D DES加密模块 1.0 DLL注入模块 DOS命令模块 打开多文件对话 打开外部关联文件及调用系统关于窗口模块 1.0 打印模块 打印数据1.20-绿营 打印预览1.1 打印预览1.3 打印预览1.33 打印预览2.41(注册表配置) 打印预览2.42(外部文件配置) 打印预览2.44(注册表配置) 打印预览2.45(注册表配置) 打印预览模块 1.0 大强工作室关于窗口 导出数据1.1 导出数据1.21 到文本 登录确认模块 1.0 低级功能模块 迪克—透明窗体 电子琴模块 调用外部命令 调整窗口大小 定时提醒1.1 动画窗体1.3 动态调用DLL函数 动态调整分辩率 动态加载菜单模块1.0版 动态显示窗口 读取DBF数据 读取超级列表模块 1.0 读取超级列表模块_多条件版 读文本 读易库到超级列表1.0 度量转换 对话代码自动生成器 对内存进行读写操作1.0 多彩渐变换肤模块 多方式取IP模块 多功能模块(1) 多功能模块(2) 多媒体 多线程支持模块 多种对话模块 1.0 堕之星辰1.2 E 24位转单色位图模块 EDB、高级表格、XLS互换 edb到html-1.0 EDB数据库客户端模块 1.0 edb数据库转Excel模块 1.3 ETimeFly API模块 Excel功能模块   F 发送消息_全选插入 防破解 仿XP窗口2.0 仿XP界面3.0特别版模块 3.0 分辨率 分割无逢文本模块 复制目录模块   G 改变系统菜单1.0改进版 改变系统菜单1.0简单版 改变显示器状态 高级表格到excel 高级液晶数字1.1 高级易模块集 高精度运算模块2.1版 个性信息1.1 个性信息1.5 个性信息1.21 更改光标 更换桌面 工具提示 公历转农历模块 1.0 功能集一模块 供应商管理模块 关闭窗口或进程 关机管理 关联程序 关联文件 关于菜单的一些修改操作 关于窗口 管理员登录验证模块(未加密)1.0 光驱控制模块 H HTTP访问模块1.0 HTTP访问模块1.1 汉语朗读模块 1.0 汉字处理 汉字助记码 汉字转拼音 好色按钮1.0 好色按钮2.0 好用的东西 和是几与谁最大 黑客入侵模块 V1.00 互联网扩展模块1.1 花样进度条1.0 滑块条扩容模块 混合运算 获取本机互联网IP地址 获取字符串尺寸 行数 I IC卡读写模块 1.0 IP地址编辑2.0 J 记录集读写操作 加解密文本1.1 加密 加密解密文本1.0 加密配置文件操作模块 加强执行1.0 加载进度条 加载进度条v2.0 结束进程模块 进程模块 进程相关模块-1 进程相关模块-2 进程相关模块-3 进程信息 进度条高级设置 进度下载模块 V1.0 1.0 进制转换-wuflea 进制转换-西风 禁止程序多次运行 禁止二次运行 禁止重复运行   K kernel模块 客户管理模块 控件+窗口模块 控件大小调整模块 控件自动缩放 控制程序运行天数1.0 控制面板 控制系统音量 酷按钮2.2模块 扩展按钮控件 L LED液晶控件模块(红色增强版) 拦截外部程序消息 立体空间矩型模块 连接编译器 列表打印预览1.0 列表增强操作模块 浏览文件夹 六十四卦相 M MD5取数据摘要 MDB到超级列表 mp3信息模块 枚举系统字体1.0 秘密潜入OICQ1.0 模块_bmp转换为jpg 模块_WinXP窗口v4.0版 模块_保存扩展界面设置 模块_菜单项加图片 模块_超级列表补丁1.0 模块_超级列表快速排序2.0 模块_磁盘操作 模块_动态修改图片组v1.0 模块_动态修改图片组v1.1 模块_动态修改图片组网-际飞狐修改版 模块_仿WinXP窗口v1.0 模块_仿WinXP窗口v1.1 模块_仿WinXP窗口v2.0特别版 模块_仿WinXP窗口v3.0纪念版 模块_仿WinXP窗口v3.1版 模块_汉字查询 模块_回调函数 模块_软件注册1.0 模块_软件注册2.0 模块_树型 模块_数制转换 模块_图片按钮v2.0 模块_文本折行 模块_无边窗口设置 模块_系统功能 模块_修改菜单 模块_与黄金加密建立关联 模块_与狡兔三窟建立关联 模块_与应用程序建立关联 模块_在线更新 模块集 模拟XP 模拟按键 目录模块   N 内存读写模块1.0 内存读写模块2.0 内存专用模块 凝逸网页取文1.0 O OCX控件高级注册 ODBC方式填充树型 P PGBEAPICopy powerdll 判断ASCII编码 判断XP外观支持文件是否存在 判断数据库 判断字符模块 配置文件操作模块 屏幕保护支持库1.1 屏幕保护支持模块 屏幕分辩率更改1.0 扑克牌模块1.0 扑克图像模块1.1 Q qp编解码 清除数组重复成员 求真进度下载模块 求真文件对话模块 取CPU特征字 取DOS执行结果 取IE地址栏 取IP地址 取操作系统类别 取窗口内所有控件标题 取纯数字时间文本模块 取非系统进程全路径文件名 取功能键状态 取汉字笔画 取汉字笔画模块-寒风 取汉字代码 取控件或窗口的标题 取拼音带声调1.2 取拼音首个字母 取声调拼音模块1.0 取十进制 取图片尺寸 取文件版本信息 取系统目录 取系统启动时间 取系统信息 取系统字体列表1.2 取用户机器码模块 取注册表键句柄 全面操作SQL Server 2000 R RAR压缩模块 1.0 RC4 加密算法 1.0 RC4-林子深 RUN加减模块1.0 日期格式规范 日期设置模块 日期时间增强 软件注册模块 软件注册算号器模块   S Sqlite表管理 SQL基本语句 SQL数据库操作模块 SQL数据库最新操作模块 色彩转换_模块 杀进程模块 删除文件模块 设置IE代理服务器1.0 设置表格模块 设置控件锚点 设置鼠标活动范围 生成Sqlite表结构 十进制转化为十六进制5 十六进制转十进制模块 时间格式化-自由扩展型 世恒通用安装系统文件压缩模块 是否为汉字 输入法操作模块 输入法上屏 鼠标控制 树型操作类 树型增强 数据库查找 数据库到超级列表 数据库批量替换 数据库增强 数据源按钮 数据摘要模块(MD5算法实现) 飞扬工作室 数值与十六进制文本的相互转换 数制转换(修该) 双功能自动编号模块 缩放多文档支持库 所有模块 锁键盘数标 T TCP服务器 TWnet.CN 弹出网页广告 弹出下载窗口 特效窗口模块 提升权限 提示模块2.6 提示模块2.7 提示模块2.61 提示模块2.72Alpha版 提示模块3.0版[易语言3.0以上版本] 提示模块3.1版[易语言3.0以上版本] 添加(删除)子项目 填充树型 通用界面扩展 通用模块 同步目录 同步缩放窗口1.0 同步缩放控件1.0 统计表模块 统计重复次数 透明窗口组件 图片演示-西风 图形窗口模块 U user32模块 user模块 USUAL   W windowsXP界面模拟模块1.0 windowsXP界面模拟模块1.01 windowsXP界面模拟模块1.02 windowsXP界面模拟模块1.03 windowsXP界面模拟模块3.0 windowsXP界面模拟模块4.0版 winsys 外部控件操作类 外部数据库 外挂作坊1.4 外挂作坊1.5版 外挂作坊1.40909 外挂作坊模块破解版 万能注册验证模块 网络服务器模块 网络控件模块 1.0 网络文件模块2.0 网络性能优化模块 威灵 威灵-简装版 伟业超级列表列宽尺寸自动调整 伟业高级表格列宽尺寸自动调整 文本操作1.0 文本处理扩展模块 文本分行1.0 文本分行2.0 文本计算 文本统计模块 1.0 文本语音朗读 文本语音转换模块 文件关联 文件时间操作模块1.0 文件图标 文件拖放_叶如兆 文件拖放-银戒指 文件压缩解压 文件压缩模块 文件压缩专家 五笔编码查询模块   X XP模块 XP按钮1.1 XP单选1.1 XP界面模拟模块3.1版 XP皮肤1.6 XP完美模拟专家 XP选择1.1 吸附模块 溪流关于窗口1.0 系统登录模块 系统服务管理模块 系统管家-关机管理 系统后台服务 系统设置易模块 1.0 系统资源检测模块 显示设置 详细的公农历转换1.0 详细的公农历转换1.2 逍遥带符号液晶 新编码转换大全 新注册系统热键1.0 信息提示控件(Tip) 星光灭绝1.0 形象大使1.0 修改菜单1.0版 寻找磁盘文件 寻找注册表 循环冗余校验 Y 压缩加密文件夹 压缩文件夹 液晶控件模块 液晶模块 易2.55版数据库记录编辑器模块 易3.5版数据库记录编辑器模块 易DLL支持 易容大师 易语言EDB数据库客户端 易语言OGRE类库1.1 易之插件模块 音量控制 隐藏进程模块(1) 隐藏进程模块(2) 隐藏显示任务栏 用户管理模块 1.3 用户配置模块1.0 优化内存模块 邮件快手1.0 语音报时模块1.0 语音报时模块1.2 语音朗读易模块 1.0 远程控制杂项模块   Z zip压缩 杂类功能模块一(音量邮件驱动器压缩) 在线更新 直接邮件发送模块 属性夹 注册表操作增强模块1.0 注册表操作增强模块1.2 注册表操作增强模块1.32 注册表简化模块 注册模块 注册热键(支持多热键) 注册热键-FlyFox 注册系统热键1.0-西风 注册系统热键-钟华 注册验证模块 转生模块 转为汉语拼音模块 1.0 状态栏控件2.0 字段不重复 字节集 自定义鼠标 自动更新模块 1.3 自解压制作

65,199

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧