dword

隐藏托盘图标

允我心安 提交于 2019-12-04 22:40:39
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer NoTrayItemsDisplay (类型:REG_DWORD)      展开所有托盘图 ,0 为默认跟随系统设置(可直接删除),1 为展开所有托盘图标(系统设置失效) NoAutoTrayNotify (类型:REG_DWORD)     启用托盘图标 ,0 为默认启用(可直接删除),1 为禁用所有托盘图标 HideClock (类型:REG_DWORD)     时钟 ,0 为默认显示(可直接删除),1 为隐藏(选项变灰) HideSCAVolume (类型:REG_DWORD)     音量 ,0 为默认显示(可直接删除),1 为隐藏(选项变灰) HideSCANetwork (类型:REG_DWORD)     网络 ,0 为默认显示(可直接删除),1 为隐藏(选项变灰) HideSCAPower (类型:REG_DWORD)     电源 ,0 为默认显示(可直接删除),1 为隐藏(选项变灰) HKEY_CURRENT_USER\Control Panel\Bluetooth Notification Area Icon (类型:REG_DWORD)      蓝牙托盘图标 ,0 为隐藏,1 为默认显示(可直接删除

Windows 获取windows密码

这一生的挚爱 提交于 2019-12-04 14:26:28
#include <iostream> #define Main main #define COLOR_GREEN system("color 2"); #include <vector> #include <list> #include <string> #include <WinSock2.h> #include <WS2tcpip.h> #include <memory> #include <VersionHelpers.h> #include <LM.h> #include <winnetwk.h> #include "BitMap.h" #include <wlanapi.h> #include "ATBAudioEngine/ATBAudioEngine.h" #include "Package.h" #pragma comment(lib,"Ws2_32.lib") #pragma comment(lib,"Mpr.lib") #pragma comment(lib,"netapi32.lib") #pragma comment(lib,"Wlanapi.lib") #include <Windows.h> class disorderly { int m_buf[10] = { 0 }; public: void initBuf() { srand

Windows NtQueryInformationProcess()

跟風遠走 提交于 2019-12-04 14:17:39
{   https://www.orcode.com/article/Processes_20126324.html } { 或代码 文章 编程通用 线程,进程及IPC 与NtQueryInformationProcess获取进程信息 {A} {S0}简介 本文将展示一种方法来读取一个过程的下列项目,主要是使用{A2}进程ID父ID关联掩码退出代码状态命令行过程过程映像文件的路径终端服务会话ID标志,如果目前正在调试过程地址进程环境块(PEB) 这个信息是一个变量声明为一个结构,smPROCESSINFO返回。这种结构是在NtProcessInfo.h定义: typedef struct _smPROCESSINFO { DWORD dwPID; DWORD dwParentPID; DWORD dwSessionID; DWORD dwPEBBaseAddress; DWORD dwAffinityMask; LONG dwBasePriority; LONG dwExitStatus; BYTE cBeingDebugged; TCHAR szImgPath[MAX_UNICODE_PATH]; TCHAR szCmdLine[MAX_UNICODE_PATH]; } smPROCESSINFO; 虽然有Windows API的检索上述值,本文将展示如何获得这些值

逆向-PE头解析

与世无争的帅哥 提交于 2019-12-04 11:35:49
目录 PE头解析 数据结构 IMAGE_DOS_HEADER IMAGE_NT_HEADERS 区块 PE头解析 PE 格式是Windows系统下组织可执行文件的格式。PE文件由文件头和对应的数据组成。目标是在不同的架构下装载器和编程工具不用重写。 PE中一大特点是不连续的位置大部分记录的都是相对地址(RVA),相对的是PE文件中记录的基地址(image base)的偏移量。进程是程序的执行状态的实体,每个进程都有自己独立的内存空间(编址)PE和内核等一起编制,所以image base也不总是确定的。 结构(参考:加密与解密) 数据结构 IMAGE_DOS_HEADER 参考:参考: http://www.openrce.org/reference_library/files/reference/PE%20Format.pdf IMAGE_DOS_HEADER STRUCT { +0h WORD e_magic //Magic DOS signature MZ(4Dh 5Ah) DOS可执行文件标记 +2h WORD e_cblp //Bytes on last page of file +4h WORD e_cp //Pages in file +6h WORD e_crlc //Relocations +8h WORD e_cparhdr //Size of header in

Windows用户模式调试内部组件

ε祈祈猫儿з 提交于 2019-12-04 09:44:58
简介 允许用户模式调试工作的内部机制很少得到充分的解释。更糟糕的是,这些机制在Windows XP中已经发生了根本性的变化,当许多支持被重新编写时,还通过将ntdll中的大多数例程作为本地API的一部分,使更多的子系统变得可移植。希望读者对C和通用NT内核体系结构和语义有一些基本的了解。此外,这并不是介绍什么是调试或如何编写调试器。它可以作为经验丰富的调试器编写人员或好奇的安全专家的参考。 Win32 Debugging NT的Win32子系统从第一个版本开始就允许对进程进行调试,随后的版本添加了更多与符号和其他PE信息相关的特性和调试帮助库。但是,对于外部API用户来说,除了在Windows XP中添加的停止调试进程而不杀死进程的功能之外,其他的变化相对较少。NT的这个版本还包含了对底层实现的几次彻底检查,我们将对此进行详细讨论。但是,这些更改的一个重要副作用是不再使用LPC(和csrss.exe),这允许调试这个二进制文件(以前,调试这个二进制文件是不可能的,因为它负责处理内核到用户的通知)。 处理调试进程的基本win32api很简单:DebugActiveProcess,to attach,WaitForDebugEvent,等待调试事件的出现,以便调试可以处理它们,ContinueDebugEvent,恢复线程执行。WindowsXP的发布增加了三个更有用的API

从TEB到PEB再到SEH(二)

会有一股神秘感。 提交于 2019-12-04 08:45:13
什么是SEH? SEH( Structured Exception Handling , 结构化异常处理 ) 结构化异常处理(SEH)是Windows操作系统提供的强大异常处理功能。而Visual C++中的__try{}/__finally{}和__try{}/__except{}结构本质上是对Windows提供的SEH的封装 我们知道SEH是基于线程的异常处理,我们利用 __try{}/__except{}来模拟一下SEH的异常处理: 在这里可以看到我们把EAX的值置为空指针,然后向空指针里写入值,引发 STATUS_ACCESS_VIOLATION(内存访问异常) ,然后在异常处理里面把 EAX的值设置为 变量dwTest的地址,然后返回 EXCEPTION_CONTINUE_EXECUTION 表示异常被处理,从异常处继续执行,这里是MSDN 对于异常处理( Exception Handling )返回值的定义: 1 2 3 #define EXCEPTION_EXECUTE_HANDLER 1 //表示异常被处理,从下一条指令开始执行 #define EXCEPTION_CONTINUE_SEARCH 0 //表示异常未被处理,交由下一个SEH #define EXCEPTION_CONTINUE_EXECUTION -1 //表示异常被处理,从异常处开始执行

VirtualAlloc加载shellcode免杀一点记录

若如初见. 提交于 2019-12-04 07:47:58
一个很好的学习网站 推荐一下: https://docs.microsoft.com/zh-cn/windows/win32/api/ 0x01 VirtualAlloc VirtualAlloc: 在虚拟地址空间中预定一块内存区域; VirtualAlloc是Windows提供的API,通常用来分配大块的内存。 PVOID VirtualAlloc(PVOID pvAddress, SIZE_T dwSize, DWORD fdwAllocationType, DWORD fdwProtect) VirtualAlloc (PVOID 开始地址,SIZE_T 大小,DWORD 类型,DWORD 保护属性) VirtualQuery SIZE_T WINAPI VirtualQuery( _In_opt_ LPCVOID lpAddress, _Out_ PMEMORY_BASIC_INFORMATION lpBuffer, _In_ SIZE_T dwLength ); MEMORY_BASIC_INFORMATION结构 包含有关进程的虚拟地址空间中的页面范围的信息。该 VirtualQuery来和 VirtualQueryEx函数使用这种结构。 句法 typedef struct _MEMORY_BASIC_INFORMATION { PVOID BaseAddress;

不用VS调试.Net

柔情痞子 提交于 2019-12-04 06:29:57
将来,任何开发人员都将需要调试应用程序,并且将无法访问Visual Studio,在某些情况下甚至无法访问源代码。 例如,在生产web或应用服务器上调试问题时,我真的不想安装Visual Studio并跨所有源代码进行复制;这是不实际的,有时甚至是不允许的。 正是在这种时候,我们需要另一个工具,一个调试windows应用程序的工具,而微软正好提供了一系列这样的调试器,非常适合这种情况。 在本文中,我将解释哪些调试器可用,以及在Visual Studio不实用或不可用的情况下,如何使用它们来简化调试.NET应用程序的过程。 在本文中,我将解释哪些调试器可用,以及如何调试一个简单的、相当常见的示例。 我希望这将展示如何以简单直接的方式调试代码。 何必费心 总的来说,如果您在开发人员机器上工作并且能够重现报告的问题,那么在Visual Studio中进行调试是最容易的。但是,正如我在介绍中所暗示的,有很多原因使您不能总是使用Visual Studio,以及您应该学习和理解替代方案: Visual Studio崩溃-虽然不是常见事件,但每个开发人员都知道VS有时会崩溃,而且通常是在您最需要它的时候。WinDBG/cdb偶尔会崩溃,但很少,如果有问题的话,下载一个旧的或更新的版本应该很简单 速度—如果您很匆忙,只想快速看到一些东西,那么启动cdb只需启动Visual

注册表学习和常用注册表修改

╄→гoц情女王★ 提交于 2019-12-04 04:55:12
存储数据结构 树型结构,分支结点和叶子节点均可存储数据 每个节点存储的数据为 键->List<值(名称-类型-数据)>; 名称大小写不敏感 数据类型 REG_BINARY 二进制类型,以十六制显示 DWORD/QWORD 数值类型DWORD 为 32 位,QWORD 为 64 位 REG_SZ 字符串类型 ,最大长度不能超过 255 个字符 REG_EXPAND_SZ 扩展字符串类型 ,可解释 %变量% REG_MULTI_SZ 注册表存储的是 Hive 文件,存储路径为 \Windows\System32\config 五大根键 HKEY_USERS Default 子键内容和 HKEY_CURRENT_USER 一致,其它不用管 HKEY_CURRENT_USER 保存了当前登录用户数据,个性化配置,键的内容随登录用户不同而不同 ControlPanel 控制面板设置,桌面背景,容器外观等 Software 当前环境中安装的软件设置,windows 本身内置功能 HKEY_LOCAL_MACHINE 保存的系统信息,包括硬件配置,外围设备,网络设置,所安装的软件 HARDWARE 计算机硬件相关的各项信息,驱动程序的设置 SAM SECURITY 用户组,用户,系统安全设置,权限分配 SOFTWARE 已安装的软件信息,与 HKEY_CURRENT_USER/Software

32位 64位 获得进程peb的方法

守給你的承諾、 提交于 2019-12-04 04:52:22
PEB.H #pragma once #include <Windows.h> #include <Strsafe.h> #include <wchar.h> #include <vector> #define NT_SUCCESS(x) ((x) >= 0) #define ProcessBasicInformation 0 typedef NTSTATUS(WINAPI *pfnNtWow64QueryInformationProcess64) (HANDLE ProcessHandle, UINT32 ProcessInformationClass, PVOID ProcessInformation, UINT32 ProcessInformationLength, UINT32* ReturnLength); typedef NTSTATUS(WINAPI *pfnNtWow64ReadVirtualMemory64) (HANDLE ProcessHandle, PVOID64 BaseAddress, PVOID BufferData, UINT64 BufferLength, PUINT64 ReturnLength); typedef NTSTATUS(WINAPI *pfnNtQueryInformationProcess) (HANDLE