随笔分类 - 学问
学习中遇到的问题
摘要:前言 造成面试糟糕的主因是我自身知识水平有限,面试官都很好,所以没有什么好说的,撸起袖子继续干就完了 问题 远程线程注入 远程线程注入不只是写了一两遍的玩意,没想到被问到流程的时候还是惨不忍睹,下面就重新记录一遍吧(这次一定要记住,加油),流程如下: 打开目标进程,获取目标进程句柄 在目标进程中申请
阅读全文
摘要:class TableDlg : public CDialogEx { DECLARE_DYNAMIC(TableDlg) public: TableDlg(CWnd* pParent = nullptr); // 标准构造函数 virtual ~TableDlg(); // 对话框数据 #ifde
阅读全文
摘要:TCHAR path[255]; //获取当前用户的桌面路径 SHGetSpecialFolderPath(0, path, CSIDL_DESKTOPDIRECTORY, 0);
阅读全文
摘要:CString::GetLength获取的是字符数,不是字节数
阅读全文
摘要:前言: 此文是记录我遇到的问题及解决办法 环境相关: 使用的直接读写方式,这种方式会创建一个MDL,将用户空间的地址重新映射到了内核空间,这样不会发生拷贝也不会造成地址访问错误。MDL被I/O管理器创建好之后,放置在下面这个字段中 irp->MdlAddress//获取缓冲区地址需要使用MDL操作函
阅读全文
摘要:/*! * 函 数 名: AddTabWnd * 日 期: 2020/05/21 * 返回类型: void * 参 数: const CString & title 要添加的选项名 * 参 数: CDialogEx * pSubWnd 要添加的选项对应的对话框类 * 参 数: UINT uId 要添
阅读全文
摘要:实现原理: 实现文件监控操作的核心函数是ReadDirecotryChangesW。这个API函数可以设置监控目录、过滤条件,从而获取监控数据。在调用API函数ReadDirecotryChangesW设置监控过滤条件之前,需要先通过CreateFile函数打开监控目录,获取监控目录的句柄。之后才能
阅读全文
摘要:实现原理: 功能主要是对设备的插入和拔出进行监控,所以只需要对WM_DEVICECHANGE消息回调函数的wParam参数进行判断即可。主要判断操作是否为设备已插入操作DBT_DEVICEARRIVAL或设备已移除操作DBT_DEVICEREMOVECOMPLETE。然后再重点分析相应操作对应的lP
阅读全文
摘要:实现原理: 管道是一种在进程间共享数据的机制,其实质是一段共享内存。Windows系统为这段共享的内存设计使用数据流I/O的方式来访问。一个进程读,另一个进程写,这类似于一个管道的两端,因此这种进程间的通信方式称为“管道”。管道分为匿名管道和命名管道。匿名管道只能在父子进程间进行通信,不能在网络间通
阅读全文
摘要:前言: 在用户层上,实现按键记录的方法也很多,常见的有3种方式,具体如下: 利用全局键盘钩子。程序设置全局键盘钩子,从而捕获按键消息,进行记录 利用GetAsyncKeyState函数。该函数可以判断按键状态,根据是否为按下状态来判断用户是否进行了按键操作,从而记录 利用原始输入模型,直接从输入设备
阅读全文
摘要://捕获桌面屏幕 BOOL CFunction::ScreenCapture() { // 获取桌面窗口句柄 HWND hDesktopWnd = ::GetDesktopWindow(); if (hDesktopWnd == NULL) { return FALSE; } // 获取桌面窗口DC
阅读全文
摘要:实现原理: WIN32 API函数CreateToolhelp32Snapshot不仅可以获取系统中所有进程的快照,还能获取系统中所有线程快照、指定进程加载模块快照、指定进程的堆快照等。所谓的快照是指,当第一次调用某个函数枚举进程的时候,它便得到了当前系统的进程信息,而第二次试图得到这个信息的时候,
阅读全文
摘要:前言: 为了实现windows上的数据压缩和解压缩,最方便的方法就是直接调用WIN32 API函数,windows系统的ntdll.dll专门提供了RtlCompressBuffer函数和RtlDecompressBuffer函数来负责数据压缩和解压缩操作,这两个函数并未公开,需要通过ntdll.d
阅读全文
摘要:前言: DLL劫持指的是,病毒通过一些手段来劫持或者替换正常的DLL,欺骗正常程序加载预先准备好的恶意DLL。如下图,LPK.dll是应用程序运行所需加载的DLL,该系统文件默认在C:\Windows\system32路径下,但由于windows优先搜索当前路径,所以当我们把恶意LPK.dll放在应
阅读全文
摘要:实现原理: 以挂起的方式打开目标进程,将ShellCode代码写入目标进程,并修改目标进程的执行流程,使其转而执行ShellCode代码,这样,进程还是目标原本进程,但执行的操作却替换成我们的ShellCode了。 实现过程: (1).调用CreateProcess以挂起的方式(CREATE_SUS
阅读全文
摘要:实现原理: 修改进程环境块中的进程路径以及命令行信息,从而达到进程伪装的效果。所以,实现的关键在于进程环境块的获取。可以通过ntdll.dll中的导出函数NtQueryInformationProcess来获取指定进程的PEB地址。因为该程序进程可能与目标进程并不在同一个进程内。由于进程空间独立性的
阅读全文
摘要:前言: 将DLL文件作为资源插入到自己程序中的方法,前面已经说过了。附上链接:MFC —— 资源文件释放(为了程序更简洁) 程序需要动态调用DLL文件,内存加载运行技术可以把这些DLL作为资源插入到自己的程序中。此时直接在内存中加载运行即可,不需要再将DLL释放到本地。 实现原理: 将资源加载到内存
阅读全文
摘要:前言: 在一个进程中创建并启动一个新进程,无论是对于病毒木马程序还是普通的应用程序而言。这都是一个常见的技术,最简单的方法无非是直接通过调用WIN32 API函数创建新进程。用户层上,微软提供了WinExec、ShellExecute和CreateProcess等函数来实现进程创建 实现代码: //
阅读全文
摘要:如图代码块,查了后找到解决办法。 首先F12, 找到选择元素的 选择空白代码块 直接右键delete element
阅读全文
摘要://根据进程名获取PID DWORD CBiaoBai1Dlg::GetProcessIdByProcessName(char* pszProcessName) { //1.创建进程快照 HANDLE hSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROC
阅读全文