作者: 马文杰

Magic

69 篇文章

win10专业版/企业版-密钥和激活脚本
方法1 Win10正式专业版密钥(32位和64位均可正常使用): W269N-WFGWX-YVC9B-4J6C9-T83GX Win10正式企业版密钥(32位和64位均可正常使用): NPPR9-FWDCX-D2C8J-H872K-2YT43 方法2 win10专业版激活脚本 @echo off echo The system is being activated...... slmgr.vbs /upk slmgr /ipk NPPR9-FWDCX-D2C8J-H872K-2YT43 slmgr /skms zh.us.to slmgr /ato echo System is activated. echo. & pause 方法3 2024/07/31 更新 又找到一个方法,亲测有用,非常优雅使用win10 windows10专业版激活的教程如下: 1.使用Windows PowerShell(管理员的权限运行) 依次输入: slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX slmgr /skms kms.03k.org slmgr /ato 也可以写成一个脚本跑一跑
PE格式分析_6(IMAGE_SECTION_HEADER)
节表( IMAGE_SECTION_HEADER ) 作用:描述PE文件与内存之间的映射关系,说明PE文件的指定内容拷贝至内存的哪个位置、拷贝大小及内存属性的设置。 一个结构体总大小: 0x 28 (40) 字节 节表位置: 置于选项头之后,位置 = 选项头( IMAGE_OPTIONAL_HEADER) 的地址 + 选项头( IMAGE_OPTIONAL_HEADER)的大小。 // IMAGE_SECTION_HEADER 节表结构体,大小40B typedef struct _IMAGE_SECTION_HEADER { BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; // 节表名称:描述性字段 2个字节, 这个段写了区段名字(.text .rdata ....),但是系统不承认这个名字,名字随便改 // 重要的是内存属性 不是名字, 调试器查看内存有区段显示,是从这里获取的 // 下方4个字段:从文件S1处开始,拷贝S2大小的数据,到内存S3处,有效数据占用内存S4大小 union { DWORD PhysicalAddress; DWORD VirtualSize; // S4:在内存中的大小 } Misc; DWORD VirtualAddress; // S3:内存地址:基于模块基址,与SectionAlignment对齐(0x1000) DWORD SizeOfRawData; // S2:文件大小(从文件中取SizeOfRawData字节到VirtualAddress地址),与FileAlignment对齐(0x200) DWORD PointerToRawData; // S1:文件偏移,与FileAlignment对齐(0x200) //跟调试相关 …
PE格式分析_5(IMAGE_OPTIONAL_HEADER)
IMAGE_OPTIONAL_HEADER typedef struct _IMAGE_OPTIONAL_HEADER { WORD Magic; // 判断32位0x10b,64位0x20b BYTE MajorLinkerVersion; // 主链接器版本号,仅供参考 BYTE MinorLinkerVersion; // 副链接器版本号,仅供参考 //系统分配内存不看着3个值,对于调试器有影响 DWORD SizeOfCode; // 代码所占空间大小,仅供参考,OD反汇编代码,通过这个字段获得内存 // SizeOfCode可以尝试出极限值,让OD调试可以使用,但是会卡很久 // OS是从节表里算的代码段的大小 DWORD SizeOfInitializedData; // 已初始化数据所占空间大小,仅供参考,微软没使用 DWORD SizeOfUninitializedData;// 未初始化数据所占空间大小,仅供参考,微软没使用 DWORD AddressOfEntryPoint; // ***** oep:原本的程序入口 //这个值可以修改,但是修改过后必须跳转到在该偏移处跳转到真正入口 DWORD BaseOfCode; // 代码基址 (无用) DWORD BaseOfData; // 数据基址 (无用) DWORD ImageBase; // ****** 建议模块地址:exe映射加载到内存中的首地址 = PE 0处,即实例句柄hInstance // 一般而言,exe文件可遵从装载地址建议,但dll文件无法满足 (开了随机基址可能也不是这个值,是通过重定位表得到) //这个值最好不要改,改的话要改动大量地方,因为函数和全局变量的地址也需要跟着改变 DWORD Sectio…
win7/win8/win9/win11 配置双机调试环境
win7、win8、win9、win11 配置双机调试环境 1、管理员运行cmd 2、拷贝一份 再修改 3、bcdedit命令 查看就多了一个开机启动项 4、给创建的启动项配置打开debug模式 5、 bcdedit 命令查看,debug打开了 6、配置波特率和串口 敲命令行 bcdedit /dbgsettings /? 在提示信息里直接拷贝 7、配置串口 同时删除打印机(这个会影响调试) windbg也要配置相同的串口和波特率 8、重启虚拟机,选择第二个 debug 9、连接成功 参考: [1]. 科锐逆向机构 [2]. win7双机调试环境搭建
blog-排查图片不清晰的问题
使用了两个插件 Image Quality 【无效】 自定义WordPress的图片压缩 (插件:Image Quality) Image Quality 是一个支持可以在网站后台的 设置 > 媒体(Settings > Media)页面,就能自定义设置图片压缩质量的效率插件。 安装此插件后,会在后台的设置 > 媒体(Settings > Media)页面,新增一个新的 Image Quality 设置项,我们只需要根据自己的图片质量压缩需求,自定义压缩比例即可( 1 ~ 100 的数值) Image Quality 插件下载地址:https://wordpress.org/plugins/image-quality/ 类似插件还有:Imsanity。 Regenerate Thumbnails 【无效】 https://wordpress.org/plugins/regenerate-thumbnails/ 重新生成缩略图: 自定义修改设置好图片压缩比例后,这个新的压缩比例只对新上传的图片文件有效,对应您之前已经上传的图片是不会起作用的,因为之前图片的压缩比例缩略图已经生成在媒体库里了。这时,我们就需要用到另外的 重新生成缩略图 插件。 Regenerate Thumbnails – 一键重新生成全站缩略图插件,帮助我们重新生成缩略图,并且,支持重新生成已上传到媒体库的图像的所有缩略图大小。 对于以下情况都很有用: 添加了新的缩略图大小,并且您希望已上传图片能生成新的大小的缩略图; 在后台的设置 > 媒体(Settings > Media)更改了现有缩略图的大小尺寸,需要重新生成新的缩略图; 更换了使用不同大小的特色图像的WordPress主题。 此外,Re…
PE格式分析_4(PE查看工具(010_Editor))
www.010Editor.com 查看PE的工具 winhex 这个功能很强大,但是查看文件结构不方便,可以写脚本来告诉编辑器如何解析,脚本语言是winhex的特定语言; 010_Editor 功能和winhex同样强大,这个也可以写脚本,脚本语言是C语言,因此这个工具会更加方便; 举例: myPE.BT 直接拖到 010_Editor里来写 步骤: vs中的结构体直接拷贝到脚本里,然后重新定义一下就好了(直接把文件拖进010_Editor来编辑),就会按照结构体来解析; myPE.BT typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header WORD e_magic; // Magic number WORD e_cblp; // Bytes on last page of file WORD e_cp; // Pages in file WORD e_crlc; // Relocations WORD e_cparhdr; // Size of header in paragraphs WORD e_minalloc; // Minimum extra paragraphs needed WORD e_maxalloc; // Maximum extra paragraphs needed WORD e_ss; // Initial (relative) SS value WORD e_sp; // Initial SP value WORD e_csum; // Checksum WORD e_ip; // Initial IP value WORD e_cs; // Initial (relative) CS value WORD e…
PE格式分析_3(IMAGE_FILE_HEADER)
pe格式代码,分析PE header #include <stdio.h> #include <Windows.h> //#include <winnt.h> // 定义了pe结构体的所有成员 int main() { /******************************* Dos header ************************************/ IMAGE_DOS_HEADER Header; // Dos头 /******************************* PE header ************************************/ //IMAGE_FILE_HEADER peHeader; // 新的文件格式从这里开始,并开始区分32和64位程序,但是文件头被NT头包含 IMAGE_NT_HEADERS32 NTHeader; // IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS64 NT头(PE) // NT头包含: { IMAGE_FILE_HEADER FileHeader; // 文件头,保存文件信息 IMAGE_OPTIONAL_HEADER32 OptionalHeader; // 选项头,存放程序信息 // 选项头包含: { IMAGE_DATA_DIRECTORY DataDirectory[1]; // 数据目录,存放各种表,放1个表就增加1项 } } /******************************* Section header ************************************/ IMAGE_SECTIO…
PE格式分析_2
编写最小的PE文件 在Windows上新建一个minPE.asm文件,使用vs的x86 Native Tools Command Prompt for VS 2019来编译 使用编译脚本 build.bat ml /c minPE.asm link /entry:START /subsystem:windows /merge:.rdata=.text /ALIGN:16 minPE.obj 注意: 这个ALIGN:16对齐值给512,就没有版本问题了(在xp上不行) 如果是在xp上运行,对齐值给4就可以,但是需要用VC++6.0编译 minPE.asm .386 .model flat,stdcall option casemap:none includelib user32.lib includelib kernel32.lib extern MessageBoxA:proto : dword, : dword, : dword, : dword extern ExitProcess:proto : dword .const g_szText db "pe for pe teach",0 g_szTitle db "tiptip",0 .code START proc push 0 push offset g_szText push offset g_szTitle push 0 call MessageBoxA push 0 call ExitProcess ret START endp end 分析PE文件内容 如果32的PE文件在16位的Dos运行,会怎么样? 可以运行啊,只运行16位的部分,打印出一提示语,先看下PE头的大小字节; Dos的16位…
PE格式分析_1
PE历史简介: portable excute 可移植的,可执行的文件(exe、dll) Microsoft最开始做的Dos系统,开头是MZ标识,又叫MZ系统(这tm是个人名,碉堡了),是16位操作体统。 Microsoft后开开发了Windows NT系统,最大的特点是桌面,是32位操作系统。 那么文件格式需要重新设计,出现了PE,希望一统江湖,考虑了所有的操作系统厂家,但是Apple和Linux没有使用PE,而是用ELF(unix、Linux)格式。 因此PE的文件格式里面有很多字段是 windows 系统用不到的,有些是给已经被淘汰的dos系统用的,还有一些是给其他系统用的,所以不是每个字段都非常有用,只需要关注在 windows 上用的,即windows会检查的一些字段 畸形PE:做过手脚的PE,用于对抗 msdn: 代码解释结构 #include <stdio.h> #include <Windows.h> //#include <winnt.h> // 定义了pe结构体的所有成员 int main() { /******************************* Dos header ************************************/ IMAGE_DOS_HEADER Header; // Dos头 /******************************* PE header ************************************/ //IMAGE_FILE_HEADER peHeader; // 新的文件格式从这里开始,并开始区分32和64位程序,但是文件头被NT头包含 IMAGE_NT_…