mfc HackerTools释放资源
作用:
在VC环境中除了我们所常用的Dialog、Menu和Bitmap等标准资源类型之外,它还支持自定义资源类型(Custom Resource),我们自定义的资源类型能做些什么呢?呵呵,用处多多。
1. 默认的皮肤压缩包或语言包。一些支持换肤的软件特别是一些媒体播放器常常有自定义的皮肤文件(你可以尝试将Media Player或千千静听等软件的Skins目录下的文件的扩展名改为.zip,然后使用WinZip打开看一下),但为了防止Skin文件丢失导致软件无 法显示,他们常常会在EXE文件中内置一套Skin作为默认的皮肤文件。同样,一些支持多语言的EXE文件中存在默认语言包也是这个道理(当然也可以使用 "String Table"资源类型);
2. 做为一些病毒/木马程序的寄生方式。如果不小心执行了带有病毒/木马的程序,它们会在你运行时释放出病毒/木马文件。当然许多病毒是将自身写入PE文件头来实现;
3. 合并EXE与它所需要的DLL文件。出于某些原因程序作者有时可能需要将DLL文件嵌入到可执行的EXE文件中,这可以通过使用自定义资源来实现;
4. 其它需要在程序中播放一个AVI动画等等,都可以通过将二进制的数据文件作为自定义资源加入到可执行文件中来实现;
来自:https://www.cnblogs.com/gakusei/articles/1352922.html
//获取指定模块的资源
HRSRC hRsrc1 = FindResource(NULL, MAKEINTRESOURCE(IDR_GUISHOU1), TEXT("GUISHOU"));
HRSRC hRsrc2 = FindResource(NULL, MAKEINTRESOURCE(IDR_GUISHOU2), TEXT("GUISHOU")); if (hRsrc1==NULL|| hRsrc2==NULL)
{
m_Edit += L"查找资源失败\r\n";
}
else
{
m_Edit += L"查找资源成功\r\n";
} //获取资源大小
DWORD dwSize1 = SizeofResource(NULL, hRsrc1);
DWORD dwSize2 = SizeofResource(NULL, hRsrc2);
if (dwSize1&&dwSize2)
{
m_Edit += L"获取资源大小成功\r\n";
}
else
{
m_Edit += L"获取资源大小失败\r\n";
} //将资源加载到内存
HGLOBAL hGlobal1 = LoadResource(NULL, hRsrc1);
HGLOBAL hGlobal2 = LoadResource(NULL, hRsrc2);
if (hGlobal1&&hGlobal1)
{
m_Edit += L"资源加载成功\r\n";
}
else
{
m_Edit += L"资源加载失败\r\n";
} //锁定资源
LPVOID lpVoid1 = LockResource(hGlobal1);
LPVOID lpVoid2 = LockResource(hGlobal2);
if (lpVoid1&&lpVoid2)
{
m_Edit += L"资源锁定成功\r\n";
}
else
{
m_Edit += L"资源锁定失败\r\n";
} //将资源保存为文件
FILE* fp1 = NULL;
FILE* fp2 = NULL;
fopen_s(&fp1, "MyHookDll.dll", "wb+");
fopen_s(&fp2, "TestDll.dll", "wb+");
if (fp1&&fp2)
{
m_Edit += L"资源载入本地成功\r\n";
}
fwrite(lpVoid1,sizeof(char),dwSize1,fp1);
fwrite(lpVoid2,sizeof(char),dwSize2,fp2);
fclose(fp1);
fclose(fp2);
UpdateData(FALSE);
FindResource用来在一个指定的模块中定位所指定的资源:
HRSRC FindResource(
HMODULE hModule, //包含所需资源的模块句柄,如果是程序本身,可以置为NULL
LPCTSTR lpName, //可以是资源名称或资源ID
LPCTSTR lpType //资源类型,在这里也就是我们自己指定的资源类型
);
LoadResource用来将所指定的资源加载到内存当中;
HGLOBAL LoadResource(
HMODULE hModule, //模块句柄,同上
HRSRC hResInfo //需要加载的资源句柄,这里也就是FindResource的返回值
);
LockResource用来锁定内存中的资源数据块,它的返回值也就是我们要使用的直系指向资源数据的内存指针;
LPVOID LockResource(
HGLOBAL hResData //指向内存中要锁定的资源数据块,这里也就是LoadResource的返回值
);
项目来自:https://github.com/TonyChen56/HackerTools
mfc HackerTools释放资源的更多相关文章
- mfc HackerTools防止程序双开
来自:https://github.com/TonyChen56/HackerTools 1 HANDLE hMutex = CreateMutexA(NULL, FALSE, "GuiSh ...
- mfc HackerTools监控键盘按键
string GetKey(int Key) { string KeyString = ""; //判断符号输入 const int KeyPressMask = 0x800000 ...
- mfc HackerTools远程线程注入
在一个进程中,调用CreateThread或CreateRemoteThreadEx函数,在另一个进程内创建一个线程(因为不在同一个进程中,所以叫做远程线程).创建的线程一般为Windows API函 ...
- mfc HackerTools进程令牌设置为debug权限
博客园:https://www.cnblogs.com/ndyxb/p/12734717.html 要对一个任意进程(包括系统安全进程和服务进程)进行指定了写相关的访问权的OpenProcess操作, ...
- mfc HackerTools全局钩子
钩子英文名叫Hook,是一种截获windows系统中某应用程序或者所有进程的消息的一种技术. 如在键盘中按下一键,操作系统将收到键按下消息,把消息放入消息队列,然后消息队列对消息进行派发,发给相应的应 ...
- mfc HackerTools拖动文件
VOID DragAcceptFiles( HWND hWnd, BOOL fAccept); 这个函数的调用,表示你要让某个窗体能够接受文件的拖入.第一个参数指定是哪个窗口, ...
- MFC-01-Chapter01:Hello,MFC---1.3 第一个MFC程序(02)
1.3.1 应用程序对象 MFC应用程序的核心就是基于CWinApp类的应用程序对象,CWinApp提供了消息循环来检索消息并将消息调度给应用程序的窗口.当包含头文件<afxwin.h>, ...
- MFC对话框中显示BMP,JPG图片
//************************************ // 方法说明: 显示JPG和GIF.BMP图片 // 参数说明: CDC * pDC 设 ...
- 孙鑫MFC学习笔记4:MFC画图
1.画线方法 *1.捕获鼠标按下和弹起消息,获取两个点 *2.消息响应,画线 2.在CMainFrame类中的鼠标左键事件得不到响应的原因是CNameView覆盖了CMainFrame 3.注释宏 4 ...
随机推荐
- c语言:解释程序和编译程序
编译程序和解释程序是程序执行的两种不同执行方式. 编译程序:编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序.编译过程划分成词法分析.语法分析.语义分析.中间代码生成.代码优化和目标代 ...
- asp.net web.config数据库连接字符串加密与解密
在WEB网站开发过程中,如果我们将数据库连接字符串封装到.DLL文件中,将会给数据库和程序的迁移带来麻烦,因为万一服务器地址或者数据库发生变更,那么我们就不得不修改源程序并重新将其编译.最好的解决方法 ...
- Java基础00-循环语句7
1. for循环语句 1.1 循环结构 1.2 for循环语句的格式 执行流程图: 1.3 案例 (1)输出数据 (2)求和 (3)求偶数和 (4)水仙花 public static void mai ...
- artTemplate学习
参考:https://www.2cto.com/kf/201711/699818.html 参考:https://blog.csdn.net/ruisenLi/article/details/8841 ...
- odoo12里定时任务
以odoo12为例: 1. 定义定时任务属性 <record id="ir_cron_submit_auto_action" model="ir.cron" ...
- js 数据存入数组
var tag = []; $('.deltag').each(function(){ if($(this).attr("checked")== 'checked'){ tag.p ...
- 🔥 LeetCode 热题 HOT 100(51-60)
142. 环形链表 II 思路:快慢指针,快慢指针相遇后,慢指针回到头,快慢指针步伐一致一起移动,相遇点即为入环点 /** * Definition for singly-linked list. * ...
- BUUCTF-[SUCTF 2019]CheckIn(.user.ini利用+exif_imagetype绕过)
目录 分析 .user.ini使用条件 解题 参考链接 记一道.user.ini利用+exif_imagetype绕过的文件上传的题. 分析 先正经上传一张图片.回显了存储路径,同时发现还包含了一个i ...
- 一份热乎的字节跳动客户端面经,已拿Offer
字节面试过程: 4月4号进行内推,7天的简历评估,11号接到电话面试,尽管猝不及防回答仓促,但好在前期准备充分,通过.14号现场面试,次日收到通知,通过,二面.三面都很顺利.20号进行HR面,26号收 ...
- markdown的摘要测试
123456789 1 123456789 2 123456789 3 123456789 4 123456789 5 123456789 6 粗体 123456 划线 123456 斜体 12345 ...