使用网络抓包工具(Wireshark/Fiddler/Charles等),对电脑或手机设备进行流量监听
前言:网络课需要完成一个抓包的实验,了解到Fiddler可以抓取HTTP和HTTPS协议(或者Charles),Wireshark可以抓取TCP/DNS等协议,除此之外还用到了Kali进行ARP欺骗,对电脑端、iOS端(利用rvictl工具)或安卓端(利用tcpdump工具)进行抓包。下面是遇到的问题和一些总结。
抓包前,需要先了解下OSI与TCP/IP模型。
1. 工具介绍
1.1 Fiddler
该软件可以实现对PC端或手机端中HTTP/HTTPS的流量抓取,需要进行一定配置
Fiddler配置参考:
https://blog.csdn.net/weixin_40608713/article/details/114873070
然后在iPhone上访问网页,Fiddler软件就可以抓取到HTTP/HTTPS流量了。
如果获取到的Web视图有乱码,需要win+r,输入regedit进入注册表,然后访问:HKEY_CURRENT_USER\Software\Microsoft\Fiddler2,在这里添加字符串值,键名为HeaderEncoding 键值为GBK。
最后,配置规则 ...
Xcode中对C++/Swift代码进行格式化
一. 前言
使用Xcode IDE进行C++/swift相关代码的编写,系统默认的 ctri + i 快捷键格式化代码功能有限,只能处理缩进,无法处理语句中的空格等。对于C++,建议安装clang-format插件。对于Swift,建议安装XCFormat实现代码的美化功能。
二. 安装
clang-format 安装过程
12345678# 安装 clang-formatbrew install clang-format# 查看安装的版本clang-format --version# 查看安装位置(重要)whereis clang-format # 我的输出:clang-format: /opt/homebrew/bin/clang-format
XCFormat 安装过程
打开Xcode,在菜单中进入Xcode Extensions,找到XCFormat进行安装。
XCFormat安装完成后,直接看本文第四部分即可。
三. clang-format配置
cmd+空格键,搜索Automator.app,进入自动操作应用:
脚本内容如下:
12export PATH=/opt ...
MacBook M1 Pro 使用经验
前言
纠结了很久新出的MacBook Air M2,但是将配置拉到16+512后价格太贵,感觉没有Pro划算,于是在第三方购入MacBook Pro 14寸(2021)笔记本(M1 Pro芯片)。
终端相关
使用代理
1export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
使用文本编辑器打开
12# -a后的参数指定应用open -a TextEdit /Users/xxx/.jupyter/jupyter_notebook_config.py
查看能耗
1sudo powermetrics
应用程序已损坏
1sudo xattr -r -d com.apple.quarantine 路径
查看睡眠情况
123pmset -gpmset -g assertionspmset -g log | grep DarkWake
查看硬盘写入情况
12brew search smartmontoolssmartctl -a disk0 ...
Java常用设计模式总结
前言:设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。由四人帮(GOF:Gang of Four)创建。
一. 设计模式简介
设计模式基本要素
模式名称、问题、解决方案、效果
创建型模式
单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式
结构型模式
适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式
行为型模式
模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式
二. OOP七大原则
开闭原则
对扩展开放,对修改关闭。目的:降低维护带来的新风险。
里氏替换原则
子类可以扩展父类的方法,但不可以重写父类的方法。目的:防止继承泛滥。
依赖倒置原则
面向接口编程,不要面向实现编程。目的:有利于代码结构的升级扩展。
单一职责原则
一个类只干一件事。目的:便于理解。
...
基于多阶段推荐算法与自然语言处理的智慧校园跳蚤市场研究
前言:我在之前担任过校级大学生创业创新项目的负责人,下面是项目的一些情况,给想做大创的计算机专业同学们一点参考。
一. 项目申报(2020.6)
随着互联网的发展,人们的购物方式发生的很大的转变,线上购物成为了常见的交易模式。在大学校园中,临近毕业的跳蚤市场人山人海,络绎不绝,说明校园内二手交易具有广大的市场。而线上的二手购物平台,能够为买家更迅速的找到自己所需的商品,为卖家提供更精准的售卖服务平台。由于本系统主要为在校同学准备,可线下交易,解决了“闲鱼”等平台距离远、销售周期长、安全性低等难以解决的痛点。本系统以多阶段推荐算法作为核心,使用户能够更便捷的查找所需商品,同时加入了自然语言处理技术,提升用户搜索体验。本项目基于微信小程序+后台管理系统的形式实现。
项目组共7人(6名学生+1名导师),我负责部分文档撰写,前后端开发。
编写了项目申请书后,就可以提交并评级了,最后此项目评的是校级(时间太赶,可能申请书没写好)。
二. 中期答辩(2020.11)
需要编写中期检查报告,下面展示下当时的进度。
项目进展:总体按计划进行,已完成系统需求分析和UI设计、云服务器搭建与数据库设计、基 ...
22考研经验贴(11408/314分),一志愿华工调剂汕大上岸
前言:网上流传着许多考研成功上岸的经验贴,也恭喜成功上岸的同学们,本文章将要分享的是本人2022考研经验贴,也许对将要准备2023考研的你有一定帮助。如果你也想分享你的经验,可以把文章链接或内容回复到本文下方评论区。
一. 基本情况
考研数据:2022年全国硕士研究生报名人数457万,比2021年增长80万,增幅为21%。
大学学习情况:2018年进入天津理工大学物联网工程专业学习,大二转入计算机科学与技术专业,大三下成绩总排名专业前10(第8还是第9,Top5%),没拿到保研资格(本专业4个保研名额,一级150多人)。
2022考研报考的是:华南理工大学-软件学院-电子信息-专业硕士,考试科目为 政治、数学一、英语一、408。
总体时间准备是2021年3月份开始,到2021年12月底考试(并不是全部时间,受限于本科学校课程)。
关于为什么选择目标比较高的学校,一是因为高风险带来的是高回报,二是这个科目组合较好调剂(虽然调剂结果会不理想,后面会提到),三是比较自信 。
二. 各科目准备情况与原因分析
2.1 政治(76分)
我在9月1号之前是完全没动政治的,大家不要被一些公众号带偏, ...
基于HTML进行串口通信测试
前言:在老家比较空闲,我叔让我帮他写个串口测试工具用来测试展台摄像头的功能。旧的测试工具是C++的MFC写的,奈何我不太熟,于是网上找了个支持HTML收发请求的工具,重写了测试页面。
一. 准备
页面要基于一位大佬写的 MyJsCommonTool 开源工具。
地址:https://gitee.com/bonn/myjscommtool (由于Gitee仓库管控,已失效,可自行到GitHub上查找)
有了这个工具,我们只需要编写HTML页面即可进行串口通信,十分方便。
测试需求也很简单,就是点击一个按钮发送相应的指令,或者输入特定的指令进行发送。
二. 编写页面
代码参考:https://github.com/cszmzh/JsCommTool
将test.html放入MyJsCommTool文件夹下的myHtml目录,打开工具,在右侧打开页面即可。
type为每个模块的名字
childButton对应每个模块下的按钮
buttonName为按钮名字
desc为备注
orderIndex为首次执行的命令序号
order为命令集,可以实现点击按钮循环执行命令集
style为按钮的CSS样 ...
软件著作权申请经验贴
前言:由于大四有一门实习课程,校内实习需要一份软件著作权作为成果,本文记录了申请软著的大概流程。
一. 材料准备
① 需要编写软件设计说明书一份,最好有目录,一定要加页眉、页码,页眉填写系统名称(要和登记的名称一致)。正文字体使用宋体小四。
可以从以下几个方面来写说明书:系统概述(功能介绍、原型设计),核心功能展示(图片配合说明,可以多贴一点图),系统难点及特色分析,系统总结等。
② 需要代码60页,最好不要有空格,可以用软著代码整理工具,方便很多。中文使用宋体小五,英文字母使用 Times New Roman 小五,页眉填写系统名称。
二. 登记
前往 https://register.ccopyright.com.cn/login.html 登录账号(没有账号需要注册),若要以学校名义申请需要选择机构,然后登录老师提供的员工账号。
选择 版权登记 -> 软件登记,然后选择R11(计算机软件著作权登记申请)。
填写软件相关信息,上传第一部分的两个文档,然后会得到一张登记申请表。
三. 邮寄材料
① 设计说明书
② 代码60页
③ 著作权人 - 社会信用代码证书复印件(机构申请) ...
OSI与TCP/IP模型
说明:首先,我们都知道OSI(七层)和TCP/IP模型。而TCP/IP模型又有四层和五层的分法,学校的网络课程中TCP/IP一般指的是五层结构,如下图所示。
一. OSI参考模型
最大贡献(三个概念):服务、协议、接口
1)物理层
处理信号通过介质的传输。
以比特流形式发送。
服务访问点:网卡接口
2)数据链路层
在不可靠的物理介质上提供可靠传输,包括物理寻址、成帧、流量控制、差错校验、数据重发(不包括拥塞控制)。
数据封装成数据帧。
服务访问点:MAC(网卡)地址
3)网络层
控制报文通过网络的路由选择。
数据封装成分组。
服务访问点:IP地址
4)传输层
提供应用进程间的逻辑通信(通过端口号),即端到端的通信。
将数据分割为报文。
服务访问点:端口号
5)会话层
两个主要服务:会话管理和同步,使用校验点可使通信会话失效时从校验点继续恢复通信,实现数据同步。
6)表示层
数据的格式转换及压缩等。
7)应用层
提供各种应用协议,为用户和网络间提供接口。
服务访问点:用户界面
总结:
包含流量控制的层:2、3、4
二. OSI与TCP/IP异同
相同点:
1)都使用分层的网络体系结构。 ...
MongoDB入门
前言:空余时间研究下MongoDB,它作为典型的NoSQL数据库,存储JSON格式的数据十分方便,本文将会记录安装和使用的部分方法。
一. 安装与配置
方法一:MongoDB Cloud
推荐使用MongoDB Cloud服务(支持创建免费云数据库),详见:https://cloud.mongodb.com/
方法二:利用Docker安装
需要下载镜像,推荐选择4.4版本,目前最新版为5.0,5.0后会对saslContinue参数严格校验,配置略微麻烦一点。
123456789101112docker pull mongo:4.4docker run -itd --name mongo -p 27017:27017 mongo:4.4 --auth# 通过容器名称进入容器内部,并以admin账号登陆mongodocker exec -it mongo mongo admin# 容器内部执行指令db.createUser({ user:'root',pwd:'123456',roles:[ { role:'r ...