windows10 九月累积更新 KB5005565 导致共享打印机无法连接,错误代码0x0000011b的解决方案 共享打印机连接失败,提示错误代码0x0000011b 此故障可能是由于windows10 九月累积更新 KB5005565 导致的,但是并不需要卸载更新 打印服务器上代开注册表 [HKEY_LOCAL_MACHINE\System
目录 0.任务门描述符 1.任务门执行流程 2.任务门权限检查 3.任务门示例 <1>.任务门 <2>.任务门详细版本 <3>.任务门进R1 <4>.任务门进R1详细版本 0.任务门描述符 高4字节 15-12(BIT) P == 1(有效段描述符) DPL == 11/00(段描述符权限 0/3 Windows未使用1 2环) S == 0(系统
PE结构 一览图 PE磁盘文件与内存镜像结构图 DOS/NT头结构 DOS头结构 PE文件中的DOS部分由MZ格式的文件头和可执行代码部分组成,可执行代码被称为DOS块(DOS stub),MZ格式的文件头由IMAGE_DOS_HEADER结构定义,在C语言头文件winnt.h中有对这个DOS结构详细定义,如下所示 typedef
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图。由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信
网络游戏逆向分析-7-人物背包遍历 前面我们找到了使用人物背包的函数调用,但是并不完美,因为我们需要处理一些参数,比如说用背包第二个物品,就需要push 1像数组一样从0 1 2 4 5 6这样来数,这对于程序员来说没问题,但是对于使用者肯定是不好的,所以我们需要得到背包的内容,来遍历背包,再
获取 LoadLibrary 与 GetProcAddress 地址 直接给出代码: # include<Windows.h> # include<stdio.h> /*获取kernel32.dll的基地址因为vc程序main函数之前会有初始化,所以不能通过堆栈栈顶值获取kernel32.dll中的地址因此通过 PEB 结构获取Kernel32.dll基址代码来自看雪论坛*/
参考视频:https://www.bilibili.com/video/BV1944y1y74f 先丢分析: 再丢代码: int full_jalapeno(){ // 辣椒清场 /* 火爆辣椒的id是0x14 樱桃炸弹的id是0x02 找对象基地址 1E0A6A30 =[edi(00AA9E08)+00000768] =[[6A9EC0]+00000768] =[[popcapgame1.exe+2A9EC0]+0
虚表指针 群里有人问。就写了 从最简单的类开始, 后面有单继承和多继承虚表指针的不同 代码在32环境下: 先写结论: 虚表指针在构造函数与析构中赋值(下面反汇编证明), 赋值: *this = 虚表指针(即首个成员) 虚表指针指向的是一个数组,存放虚函数,虚
示例代码下载地址:https://pan.baidu.com/s/1cb1qg9YVgzwQ2X9umSU7qw 密码:pnmq Debugme3.cpp #include <Windows.h> #include <stdio.h> #include <tchar.h> #define ModuleName "ntdll.dll" #define ProcName "ZwUnmapViewOfSection" VOID
#include <stdio.h> #include <windows.h> //读缓冲区 HANDLE m_hReadPipeHandle = NULL; //写缓冲区 HANDLE m_hWritePipeHandle = NULL; HANDLE m_hReadPipeShell = NULL; HANDLE m_hWritePipeShell = NULL; DWORD WINAPI ReadPipeThread(LPVOID lparam) { unsi
typedef struct _IMAGE_DOS_HEADER { WORD e_magic; // 5A4D WORD e_cblp; // 0090 WORD e_cp; // 0003 WORD e_crlc; // 0000 WORD e_cparhdr;
32位静态链接ELF,checksec只开了NX 不过事实上这个程序自己实现了一个类似ASLR的东西,并且在程序运行流程中会运行不止一次 这会导致程序的基址和栈基址一直在变 程序没有main函数,流程在start函数里 start函数如下(已经经过重命名) void __cdecl start(int a1) { int v1; // [esp-1
循环语句逆向分析 从反汇编的角度简单分析while,do-while和for循环语句 while CPP代码: #include "stdafx.h" void Fun() { int s = 0, i = 1; while (i <= 10) { s += i++; } } int main(int argc, char* argv[]) { Fun(); return 0; } 反汇编: Fun: 00401020 push
IF多分支逆向分析 案例 CPP代码 #include "stdafx.h" int cnt; void Function(int x, int y) { if (x == 1) { cnt = 1; } else if (y == 1) { cnt = 1; } else { cnt = 0; } } int main(int argc, char* argv[]) { Function(2,3); return 0; } 反汇编代码 00401068
Windows 编程(多进程) 进程组成: 操作系统用来管理进行的内核对象 内核对象也是系统用来存放关于进程的统计信息的地方.内核对象是 操作系统内部分配的一个内存块,该内存块是一种数据结构,其成员负责维护 该对象的各种信息. 地址空间 它包含所有可执行模块或 DLL 模块的代码和数据.
目录实验:题目1:利用IDA Pro分析dll的入口点并显示地址空格切换文本视图:带地址显示图形界面题目2:IDA Pro导入表窗口题目3:交叉应用,看多少处函数调用了题目4:利用ctrl+g跳转地址题目5:局部变量分析题目6:函数参数分析题目7:Strings字符串窗口题目8:代码分析题目9:进阶分析总结: 这节课主要通
1.查壳 2.find OEP 3.dump 4.fix die查壳: x32dbg调试脱壳,找OEP: 入口点: mov eax,idaprohelper.44B51C push eax push dword ptr fs:[0] mov dword ptr fs:[0],esp xor eax,eax mov dword ptr ds:[eax],ecx seh异常处理函数 设置忽略异常 异常处
经典的快速平方根倒数算法就在其中 此算法首先接收一个32位带符浮点数,然后将之作为一个32位整数看待,将其右移一次(取半),并用十六进制“魔术数字”0x5f3759df减之,如此即可得对输入的浮点数的平方根倒数的首次近似值;而后重新将其作为原来的浮点数,以牛顿迭代法反复迭代,以求出更精确的近
4 个解决办法,我用的第四个方法就解决了, 注册表手动添加的 重启后不管用,第四个方法 直接用程序改一下方便 首先得保证服务器是否支持 tls1.2 去注册表里查或者百度怎么查,基本大多数都用的是1.2 1. 代码前加这个 ServicePointManager.Expect100Continu
使用双拼方案也有四年了,最开始用的是自然码方案,期间在win10和安卓上可以正常使用,后来换到了苹果生态,自然码方案无了,只能下载第三方输入法来使用。 前几天突然想到,小鹤双拼不是改良版的自然码吗,那使用起来问题应该不大,所以就切换到了小鹤双拼。 可是win11没有自带的小鹤双拼方案,无
typedef struct _IMAGE_TLS_DIRECTORY32 { DWORD StartAddressOfRawData; DWORD EndAddressOfRawData; DWORD AddressOfIndex; // PDWORD DWORD AddressOfCallBacks; // PIMAGE_TLS_CALLBACK * DWORD SizeOfZeroFill;
0x01IMAGE_RESOURCE_DIRECTORY 资源表分布图 查看一个exe 资源表 4000位置 资源目录头的结构体 typedef struct _IMAGE_RESOURCE_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVe
//@[comment("MVI_tracked")] typedef struct _IMAGE_BASE_RELOCATION { DWORD VirtualAddress; DWORD SizeOfBlock; // WORD TypeOffset[1]; } IMAGE_BASE_RELOCATION; typedef IMAGE_BASE_RELOCATION UNALIGNED * PIMAGE_BASE_RELOCATION;
_IMAGE_EXPORT_DIRECTORY 这个结构体 typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD Name; DWORD Base; DWORD NumberOfFunctions; DWO
导入表在就是在.rdate 节表当然不绝对 导入表在 数据目录 第2个 导入函数在第13个 可以看到rdata 表 起始2000位置 导入表在2538 iat 在2000 这里的rva 地址都要转换为foa 地址 就是 当前rva-初始rva+foa偏移 就是文件物理偏移位置 通过数据找到导入表位