09 2021 档案

摘要:1.获取本程序所在目录地址的函数: GetCurrentDirectoryA() char Add[MAX_PATH]; GetCurrentDirectoryA(MAX_PATH, Add); 如果想要得到路径中文件的绝对地址,可以用strcat拼接 //比如要获得main.dll的地址 char 阅读全文
posted @ 2021-09-29 00:59 ring5 阅读(45) 评论(0) 推荐(0)
摘要:第一种方式(查找程序名) HANDLE m_hMutex = CreateMutex(NULL,TRUE, "程序名"); if(GetLastError()==ERROR_ALREADY_EXISTS) { AfxMessageBox("此程序已经运行"); return FALSE; } 第二种 阅读全文
posted @ 2021-09-25 02:11 ring5 阅读(194) 评论(0) 推荐(0)
摘要://.h文件 void toTray();//最小化到托盘 void DeleteTray();//删除托盘图标 afx_msg LRESULT OnShowTask(WPARAM wParam,LPARAM lParam) ;//图标恢复 //.cpp文件 #define WM_SHOWTASK 阅读全文
posted @ 2021-09-25 00:32 ring5 阅读(207) 评论(0) 推荐(0)
摘要:C++核心编程 本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。 1 内存分区模型 C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放, 存放函数的参数值, 阅读全文
posted @ 2021-09-23 18:56 ring5 阅读(282) 评论(0) 推荐(0)
摘要:C++提高编程 本阶段主要针对C++泛型编程和STL技术做详细讲解,探讨C++更深层的使用 1 模板 1.1 模板的概念 模板就是建立通用的模具,大大提高复用性 模板的特点: 模板不可以直接使用,它只是一个框架 模板的通用并不是万能的 1.2 函数模板 C++另一种编程思想称为 泛型编程 ,主要利用 阅读全文
posted @ 2021-09-23 18:56 ring5 阅读(182) 评论(0) 推荐(0)
摘要:C++基础入门 1 C++初识 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1.1.1 创建项目 ​ Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开 1.1.2 创建文件 右键源文件,选择添加->新建项 给C++ 阅读全文
posted @ 2021-09-23 18:52 ring5 阅读(125) 评论(0) 推荐(0)
摘要:用记事本打开.rc格式文件 找到主对话框的相关信息,例如下面 IDD_TEST_DIALOG DIALOGEX 0, 0, 320, 200 STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CA 阅读全文
posted @ 2021-09-23 01:01 ring5 阅读(117) 评论(0) 推荐(0)
摘要:在C++类中,静态成员变量,类内声明,类外初始化; 静态成员函数只能访问静态成员变量,静态成员函数不能访问非静态成员变量 上例子 点击查看代码 class Animal { public: static string animal_A; //静态成员变量声明 }; string Animal::an 阅读全文
posted @ 2021-09-17 22:12 ring5 阅读(44) 评论(0) 推荐(0)
摘要:前言 越来越多的木马使用DLL劫持功能进行加载,大家也经常做补丁使用DLL劫持功能 进行破解,有没有想过如何进行防护了?本文介绍通过修改文件manifest属性进行定向位置加载和动态加载签名校验来解决劫持问题,给开发者提供一些防护思路,加强软件保护,防止被劫持利用。 介绍 木马如早期的犇牛木马,使用 阅读全文
posted @ 2021-09-11 23:12 ring5 阅读(549) 评论(0) 推荐(0)
摘要:某些时候我们需要读写别的进程的内存,某些时候别的进程已经对自己的内存读写做了保护,这里说四个思路(两个R3的,两个R0的)。 方案1(R3):直接修改别人内存 最基本的也最简单的就是直接通过WriteProcessMemory 和 ReadProcessMemory对没有进行保护的程序的内存进行修改 阅读全文
posted @ 2021-09-09 23:30 ring5 阅读(2038) 评论(0) 推荐(1)
摘要:网上的方法不对或者是讲的不全面,今天碰到了这个问题,最后解决了,记录一下方法。 首先看图 #include “afxdialogex.h” 需要插入在自定义类名(CMydialog.h)之前。 不过,此处改完还会报错,接着看图。 在CMyDialog.app头文件中(也就是自己创建的类源文件,此文件 阅读全文
posted @ 2021-09-08 23:19 ring5 阅读(1445) 评论(0) 推荐(1)
摘要:Visual Studio 2019 许可证过期,登录微软账户也不行,一直提示点击更新许可证,”无法下载许可证,请检查你的网络连接或代理设置“ 解决方案:找到VS2019安装目录,找到Common7/IDE/DDConfigCA.exe 再右键单击“以管理员身份运行”运行即可 之后重新进IDE,点开 阅读全文
posted @ 2021-09-08 23:16 ring5 阅读(1056) 评论(0) 推荐(1)
摘要:#include <windows.h> #include <tlhelp32.h> #include <stdio.h> #include <atlstr.h> // Forward declarations: BOOL ListProcessModules(DWORD dwPID); void 阅读全文
posted @ 2021-09-08 23:11 ring5 阅读(433) 评论(0) 推荐(0)
摘要:void EnableDebugPriv() { HANDLE hToken; LUID sedebugnameValue; TOKEN_PRIVILEGES tkp; OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | T 阅读全文
posted @ 2021-09-08 23:08 ring5 阅读(891) 评论(0) 推荐(0)
摘要:语句 char * str = "walker"; 对于这个声明方式,会造成的误解是:声明了一个字符指针(它会指向一个位置),将“字符串”赋值给 指针表达式"*str"所指向的地址。 但正解是:声明了一个字符指针后,并用字符串常量的第一个字符的地址赋值给指针变量a。 即正确顺序是: 1.分配内存给字 阅读全文
posted @ 2021-09-08 23:06 ring5 阅读(1529) 评论(0) 推荐(0)
摘要:ZwQueryVirtualMemory算是枚举进程方法中的黑科技吧,主要是该方法可以检测出隐藏的模块(类似IceSword)。 1常见的枚举进程模块的方法有 CreateToolhelp32Snaphot,Module32First,Module32Next.这几种 也是最通用的方法 但ntdll 阅读全文
posted @ 2021-09-08 22:56 ring5 阅读(909) 评论(0) 推荐(0)