MFC中对话框启动时隐藏自身
前言在我们日常编程中,会遇见需要开启软件时不显示界面的情况,而MFC的对话框在OnInitDialog函数中使用,this->ShowWindow(SW_HIDE);函数是不起作用的。设置Dialog的属性可见为False也是无效的,所以这里详细说明以下,MFC中如何解决启动时完美隐藏窗口。
解决问题介绍:这里的问题主要为MFC中Dialog窗口的属性可见在模态对话框中是无效的,所以我们需要将对话框改为非模态,并设置可见属性为False就可以完美的解决我们的问题了。下面为具体操作。
1、在MFC程序的BOOL CDemoApp::InitInstance()函数将模态对话框改为非模态对话框。下列为示例代码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970BOOL CDemoApp::InitInstance(){ // 如果一个运行在 Windows X ...
MFC托盘图标
托盘简介所谓的“托盘”,在Windows系统界面中,指的就是下面任务条右侧的程序小图标位置。在程序最小化时又不希望占据任务栏的话,就可以把程序放到托盘区。
相关函数介绍:向任务栏的状态区域发送消息。微软官方文档:https://docs.microsoft.com/zh-cn/windows/win32/api/shellapi/nf-shellapi-shell_notifyicona
1234BOOL Shell_NotifyIconA( [in] DWORD dwMessage, [in] PNOTIFYICONDATAA lpData);
参数dwMessage:一个值,指定此函数要执行的操作,它可以具有以下值之一。lpData:指向NOTIFYICONDATA结构的指针。结构的内容取决于dwMessage的值。它可以定义要添加到通知区域的图标,使该图标显示通知,或标识要修改或删除的图标。
NOTIFYICONDATA简介介绍:包含系统在通知区域中显示通知所需的信息。微软官方文档:https://docs.microsoft.com/en-us/wi ...
MFC右键弹出菜单
添加一个菜单资源,这里我们的菜单ID改为MN_LST,一定要有子菜单哦~
新建一个派生类,继承CListBox类,将我们需要弹出菜单的listbox类型改为我们新建的派生类。这里我们取名为CMyListBox
对我们新建的派生类增加WM_RBUTTONUP消息
接下来进行代码编写,如下代码
123456789101112131415161718192021222324252627void CMyListBox::OnRButtonUp(UINT nFlags, CPoint point) { // 获取listbox总数,如果鼠标右键的地方有项目存在则获得该项目的下标 int nIdx = -1; int nCount = GetCount(); for (int i = 0; i < nCount; i++) { CRect rc; GetItemRect(i, &rc); if (rc.PtInRect(point)) { nIdx = i; break; ...
新版JsonCpp中关闭中文处理方法
前言JsonCpp遇见中文的时候会将中文转义为\uXXXX类型,那么本文给出解决方法。
JsonCpp的处理方法通过阅读代码,得知中文处理位于文件json_writer.cpp中valueToQuotedStringN函数。函数为如下代码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576static String valueToQuotedStringN(const char* value, size_t length, bool emitUTF8 = false) { if (value == nullptr) return ""; if (!doesAnyCharRequireEscaping(value, length)) retur ...
SendMessage中WM_KEYDOWN和WM_KEYUP的LPARAM参数详解
LPARAM参数结构体下述结构体为我根据微软官方文档进行编写的结构体使用的时候只需要对其填写数值即可。
123456789101112union KEYBOARD_LPARAM { DWORD m_dwParam; struct { DWORD m_dwClickCount : 16; // 按下次数 DWORD m_dwScanCode : 8; // 扫描码 DWORD m_dwExtraInfo : 1; // 扩展键 DWORD m_dwReserved : 4; // 未使用 DWORD m_dwContextCode : 1; // 指定上下文代码。对于WM_KEYDOWN和WM_KEYUP消息,该值始终为0 DWORD m_dwLastKeyStatus : 1; // 指定之前的键状态。对于WM_KEYDOWN消息,如果在消息发送之前,键被按下,则该值是1,否则该值是0。对于WM_KEYUP消息,该值始终为 1 。 DWORD m_dwTra ...
CobaltStrike样本分析
CobaltStrike样本分析样本基础信息样本名称:s_*.sample.exe样本类型:CobaltStrike样本大小:.* MB样本哈希: 0BB**_4B405BA10D***FD13编写语言:delphi
分析过程样本通过sub_50369C函数在内存中解压出一个PE结构该段PE结构主要负责在样本自身中进一步解压执行CobaltStrike Shellcode。在NVISO Labs中的一篇文章标注出了CobaltStrike样本的特征。并且从该样本中也可以找出相同的特征位置,从此可以确定该样本为CobaltStrike样本。PE解压出的Shellcode主要负责动态获取函数地址和下载远程服务器中的恶意文件。从下图中函数为样本解压完CobaltStrike Shellcode后通过线程方式执行CobaltStrike Shellcode。载入通讯动态链接库与CS服务器建立连接下载文件ms.mp3文件地址:http://.*.169[.]34/files/ms.mp3请求头:
1234Host: pr_\*_\*sco.com C ...
dllmain中的注意事项
文档dllmain微软文档:https://docs.microsoft.com/en-us/windows/win32/dlls/dllmain
问题在微软文档中我们看到一段话,如下图所示:
这段文字的意思主要为,请不要在dllmain中调用会调用LoadLibrary的函数,如果你调用的函数会调用LoadLibrary函数的话,会导致线程死锁。
解决办法那么我们如何解决呢,比方说我们劫持了一个dll。需要做一些初始化操作我们应该怎么办。这时候我们就需要启动一个线程,在这个线程去调用我们的初始化函数,而不再dllmain中做任何初始化操作。
PC端外区Steam添加游戏教程
视频教程
前言
以下操作均为在网页浏览器中进行,非Steam客户端如果你懂开发者工具是什么可以跳过前言,直接看第一步。Steam一定要是外区的!!!添加不能直接入库的游戏!!!!!Steam一定要是外区的!!!添加不能直接入库的游戏!!!!!Steam一定要是外区的!!!添加不能直接入库的游戏!!!!!Steam一定要是外区的!!!添加不能直接入库的游戏!!!!!
下载Google Chrome浏览器如下载地址:https://www.google.cn/chrome/
如何查看自己的Steam所属地区1、登录网页版Steam,链接地址:https://store.steampowered.com/login。输入您的账号密码点击登录
2、进入账户明细,如下图所示
3、进入后,下图所示位置即为你的Steam所属地区
开发者工具如何打开2、 进入谷歌浏览器,在需要打开开发者工具的页面中点击右上角下图所示位置
3、点击弹出菜单的更多工具
4、点击开发者工具,即可打开开发者工具。也可以使用快捷键F12打开开发者工具
第一步:获取游戏subid打开网址:https: ...
微信数据库句柄劫持与sqlite3_exec非法调用
微信数据库句柄劫持与sqlite3_exec非法调用
版本号:3.4.5
前言由于最近编写微信机器人,需要用到读取群员列表功能,所以将目标锁向了微信数据库。
技术分析通过网络资料,我们可以清晰的查询到微信使用的是sqlite3数据库,只不过对其进行了加密处理。微信官方也是为了方式用户信息被窃取,所以对数据库密钥出现的地方做了保护,貌似使用了vm虚拟化代码。由于技术不到家所以决定用另类办法。这里笔者决定劫持微信的数据库句柄,非法调用微信的数据库执行函数。
准备步骤1、下载sqlite3源码,下载方式:使用vcpkg进行下载安装。使用指令vcpkg install sqlite3:x86-windows-static
2、从网上CV一个示例代码,让我们先熟悉这个库的二进制代码,寻找函数特征
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 ...
Autoit样本常见操作
AutoIt在线文档
https://www.autoitx.com/Doc/
注册表行为
设置开机自启12RegWrite ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","Shell","REG_SZ","Explorer.exe " & $name & $exe)RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run","Yahoo Messengger","REG_SZ",@SystemDir & "\" & $name & $exe)
禁用“设置”菜单中的“文件夹选项”1RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Win ...