01|修改Win用户名
打开运行,输入cmd,回车;
输入`control userpasswords2`,回车;
点击属性,修改用户名,点击确定;
打开运行,输入regedit,回车;
定位到 `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList`;
选中下面名字最长的项,双击右侧的ProfileImagePath,修改 C:\Users\ 后的用户名,点击确定;
注销并重新登录;
打开用户目录,将新的用户名文件夹删除,再将原来的的用户名文件夹重命名为新的用户名;
再次注销并重新登录。
02|WSA on Win10
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
开源安装
03|Docker Commands on Win
www.docker.com
learn.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig
learn.microsoft.com/zh-cn/windows/wsl/wsl-config#configuration-setting-for-wslconfig
mklink /j "C:\Program Files\Docker" "K:\Vmachine\Docker"
wsl --export dis_name dest
wsl --unregister dis_name
wsl --import dis_dest dis_export --version 2
04|pnpm的存储配置
nodejs的包管理器很多,自带的npm(自带的corepakc是“包管理器的管理器”),中国特供镜像支持的cnpm、企业推荐的yarn、性能推荐的pnpm等等,总结这些包管理器特点,我更推荐pnpm。
- npm:官方+自带,但使用不方便,界面和报错不友好。
- cnpm:一行命令能解决非要再下载个程序?
- yarn:听说企业级用的多,小巧稳定。但上述三个都会摊平导致幽灵引用,个人项目不常见。
- pnpm:使用软硬链接,不摊平就解决幽灵引用,IO性能也上去了,同时全局存储没有多余的磁盘占用。
在用户根目录创建.npmrc文件,写入下列配置内容,注意更换,Linux通用。
registry=http://registry.npmmirror.com/ #阿里npm镜像的新Url
prefix=npm包通过npm i -g安装时候脚本存放位置,因此需要加入环境变量path
cache=npm包本体的存放位置
pnpm-prefix=pnpm的主目录,下述目录都应是这个目录的子目录
global-dir=全局安装时包的存储位置
global-bin-dir=全局安装时脚本的存放位置
cache-dir=缓存位置,存放一些镜像的元信息,类似apt使用apt update时更新的东西
state-dir=pnpm本体的更新状态
store-dir=非全局包的存储位置,其它地方安装时npm包的链接目标
如何清理:可以直接删除,pnpm8自带了 pnpm store prune
命令,是用来清除非全局包即store-dir的。
05|上帝模式
创建文件夹,重命名为 {ED7BA470-8E54-465E-825C-99712043E01C}
,保存即可打开上帝模式的控制面板。
06|压缩WSL磁盘
diskpart
select vdisk file="D:\WSL\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit
07|注册表小技巧
自启动项
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
卸载残留
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
加快宽带接入速度
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows
下增加一个 Psched
项,增加一个 NonBestEffortLimit
值,Dword,内容为0
加快宽带网速
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ parameters
下增 DefaultTTL
一个Dword值,修改为8016或者12010;将 GlobalMaxTcpWindowSize
,7FFF
加速网上邻居
HKEY_LOCAL_MACHINE/sofeware/Microsoft/Windows/CurrentVersion/Explore/RemoteComputer/NameSpace
删除其下 {2227A280-3AEA-1069-A2DE08002B30309D}
和 {D6277990-4C6A-11CF8D87- 00AA0060F5BF}
自动关闭停止响应程序
HKEY_CURRENT_USER\ControlPanel\Desktop\AutoEndTasks
数值修改为1,重启
关机时自动关闭停止响应程序
HKEY_USERS\.DEFAULT\ControlPanel\Desktop\AutoEndTasks
,修改数值为1
加快预读能力改善开机速度
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\PrefetchParameters\EnablePrefetcher
,数值更改为3+
利用L2 Cache加快整体效能
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\SecondLevelDataCache
,数值更改为L2相同的十进制数
启动计算机同时运行defrag程序
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction\Enable
清除内存不被使用的dll文件
HKKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AlwaysUnloadDLL
数值改为0
加快菜单显示速度
HKEY_CURRENT_USER\ControlPanel\Desktop\MenuShowDelay
单位是毫秒
08|Visual Studio问题
全部删除
找到 C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\layout\installCleanup.exe
管理员运行后重启
修改安装位置
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup
删除相应注册表
多余的python环境
删除 HKEY_LOCAL_MACHINE\SOFTWARE\Python
和 HKEY_CURRENT_USER\SOFTWARE\Python
下相应注册表
python命令行无反应
应用商店安装的路径%AppData%\Local\Microsoft\WindowsApps下有残留,删除或者调前加载即可,或需卸载时修复
注释快捷键
注释:Ctrl+K Ctrl+C,取消注释:Ctrl+K Ctrl+U
补全提示的字体:环境-字体与颜色-语句结束
Tab转Space:工具-选项-文本编辑器-所有语言-制表符-选项卡-插入空格
09|刷新win10图标缓存
删除 ~\AppData\Local\iconCache.db
文件,重启计算机
10|使用pandoc
通用转换命令
pandoc input_file -o output_file
CSS样式应用在HTML
pandoc demo.md -c demo.css -o demo.html
pandoc demo.md --self-contained -c demo.css -o demo.html
转换为docx文档时,部分格式不和要求需要重调
转换为PDF时,不支持中文,需要latex辅助
常用参数
# 生成独立文件
-s/--standalone file_name
# 输入文件格式
-f/-r input_format
# 输出文件格式
-t/-w output_format
# 生成内嵌文件
--self-contained
# 读取资源目录
--data-dir=path
# epub资源设置
--epub-coverimage=IMG
--epub-metadata=FILE
--epub-embed-font=FONT
# 设置metadata
--metadata-file=FILE(YAML)/--metadata=KEY[:VAL]/-M KEY[=VAL]
11|Visual Studio Code问题
解决C++环境
lldb
需要python3.10添加到PATH,python310.dll缺失,无法启动lldb。
Running lldb.exe does nothing · Issue #61878 · llvm/llvm-project
微软的C++插件需要lldb-mi.exe,但据GitHub Issue从clang10开始官方已经取消该支持,需要使用codelldb插件启用clang调试。
github.com
codelldb需要从GitHub Release下载,并配置好launch.json和tasks.json,先编译再调试,参照默认生成的内容进行自定义。
gdb
自定义默认的launch.json即可,根据gcc的发行不同可能有gdb.exe和gdb32.exe可选。注意默认生成时选择Launch选项。
cl.exe
需要从visual studio development的命令行环境启动vscode才能检测到cl.exe位置。Ctrl+Shift+B编译时选择cl即可,F5调试选择Windows,自动生成配置文件,无需指定位置。
小熊猫
小熊猫C++调试的方式也是使用gdb的mi协议,故无法支持高版本的clang
12|PowerShell编程
powershell的字符串地址中如果有空格等,用-LiteralPath
12|C与C++编程
*:造指针时间接取址、用指针时解引用、操作指针时按类型移动,&:直接取址返回,cpp做绑定是起别名
C11和C++一般在C/C++17实现较完善,应当多用,必要时可以使用C99;C99增加复数,C11增加多线程泛型等,用到什么再说,可用的大型库有boost和qt
- base64:6位bit一分,四字符一节
- ROT13:凯撒13,但自反
段错误
- free()函数使用不当容易吐核(段错误),产生原因主要有:
解引用空指针
访问不可访问的内存空间(如内核空间)
访问不存在的内存地址
试图写一个只读内存空间(如代码段)
栈溢出(函数递归调用)
使用未初始化的指针(定义时没有初始化或者已经回收) - C语言异常退出代码:
3221225477 (0xC0000005): 访问越界,一般是读或写了野指针指向的内存
3221225725 (0xC00000FD): 堆栈溢出,一般是无穷递归造成的
3221225620 (0xC0000094): 除0错误,一般发生在整型数据除了0的时候 - 关于指针:加减操作针对相对应长度(下一个),必须赋值变量才能取地址
- 按值传递地址,彻底改变;复制传递,临时改变
- 什么是段错误(吐核):
系统发送SIGSEGV信号(异常),系统默认处理是终止并转储内存回硬盘,保护数据,原因是访问到了不能访问的内存,用户态没有权限
常见场景:输入缺少取地址运算符、访问不存在的内存地址、堆栈溢出、指针问题(使用未初始化的指针,解引用空指针)
随意吐核(coredump)会过于占用存储
13|逆向书单
编程语言:《visual c++ 2013 入门经典》、《汇编语言基于X86》
操作系统:《精通Windows API》、《Windows 核心编程》、《Windows NT 本机api》
驱动开发:《Windows内核编程》、《Windows内核情景分析》、《Windows内核原理与实现》、《Windows内核安全编程 从入门到实践》
逆向分析:《IDA Pro权威指南》、《C++反汇编与逆向分析技术揭秘》《调试软件/软件调试》
数据结构与算法:《数据结构与算法分析 C语言描述》、《算法:C语言实现》、《Windows PE权威指南》
《TCP/IP网络编程》、《Windows网络编程》
本文暂时没有评论,来添加一个吧(●'◡'●)