#include <iostream> using namespace std; // 函数模版 template <typename T> void Swap(T& a, T& b) { T t = a; a = b; b = t; } // 类模版 template <typename T> class Op { public: T process(T v) { return v * v; } }; int main() { int a = 2; int b = 1; Swap(a, b); cout << "a = " << a << " " << "b = " << b << endl; double c = 0.01; double d = 0.02; Swap<double>(d, c); cout << "c = " << c << " " << "d = " << d << endl; Op<int> opInt; // 需要指明类型 Op<double> opDouble; cout << "5 * 5 = " << opInt.process(5) << endl; cout << "0.3 * 0.3 = " << opDoubl…
文章还是比较清楚的,mark一下 知乎:网络地址转换协议NAT功能详解及NAT基础知识介绍
segFault
生活的模样
如果不打工你最想做什么?
win10专业版/企业版-密钥和激活脚本

'Enter' 快乐没了
你的生活是什么样子?你期待什么样的生活?
如果不打工你最想做什么? 注:文章最下方可评论
方法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)
PE格式分析_5(IMAGE_OPTIONAL_HEADER)
win7/win8/win9/win11 配置双机调试环境
blog-排查图片不清晰的问题
语雀崩了,一天了,数据都放到一起是不明智的选择...
节表( 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) //跟调试相关 …
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 配置双机调试环境 1、管理员运行cmd 2、拷贝一份 再修改 3、bcdedit命令 查看就多了一个开机启动项 4、给创建的启动项配置打开debug模式 5、 bcdedit 命令查看,debug打开了 6、配置波特率和串口 敲命令行 bcdedit /dbgsettings /? 在提示信息里直接拷贝 7、配置串口 同时删除打印机(这个会影响调试) windbg也要配置相同的串口和波特率 8、重启虚拟机,选择第二个 debug 9、连接成功 参考: [1]. 科锐逆向机构 [2]. win7双机调试环境搭建
使用了两个插件 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…