使用 mfoc+pn532 破解门禁卡、校园卡等

大四上学期的时候因为毕业设计接触到了 IC 卡破解,当时是花了一个星期的时间破解了学校了水卡、洗衣卡等,毕业后没有再玩过了。

前几天搬家没有门禁卡,每次都是在楼下苦等没有办法。不得已之下又又拿出工具试了试,才发现一年没用,差不多又忘完了。于是记录下流程,以备后用!

一、准备

  1. 了解 IC 卡的工作原理,目前仅支持 M1 卡破解,一般学校一卡通和水卡都是这种类型,可以尝试破解。地铁和公交卡一半则是 CPU 卡,无法破解。
  2. 一个读卡模块,PN532 模块+uart 转接头+卡片。
  3. 如果你是为了复制卡片,待复制的卡片最好为全扇区可擦除重写。

阅读更多

socket 多路 IO 复用之 select 模型

select 模型是 socket 中的一种多路 IO 复用模型之一,通过轮询的方式来完成多路访问控制。

一个很简单的例子来描述 select 模型:

幼儿园老师要照顾所有的小朋友,每天他都会轮流去问小朋友:「小朋友小朋友,你饿了吗?」

如果小朋友饿了,那么老师就给这个小朋友喂饭,否则就开始询问下一个朋友,一直循环下去直到放学。

同时,如果班级里有其他的同学来了,也把他加到询问队列。如果有哪个同学生病了,则把它踢出询问队列。

select 模型的原理就是这样,把所有连接的客户端 socket 加入到一个集合中去,然后一直不断轮询,判断哪一个 socket 有数据到达,就读取数据。否则继续轮询下一个数据。

linux 系统在编译的时候就固定了 select 模型文件描述符集合的大小为 1024 个,这个大小无法更改,因此,select 模型只适用于并发量小于 1024 个的服务连接。

阅读更多

TCP 协议中的三次握手和四次挥手

一、三次握手

TCP 协议的三次握手和四次挥手分别表示了 TCP 连接的建立和释放过程,在整个 TCP 协议是一个很重要的内容,同时也是面试时的常见考点。

趁着找工作的劲,使用 socket+tcpdump 分析了一下工作流程,socket 客户端代可以在 socket 介绍及函数原语找到。服务端的代码可以在 socket 的 select 模型找到。

socket 中各函数对应的 TCP 状态演示图:

阅读更多

tcpdump 的基本用法

参考:[linux 速成案例](/linux/linux-maintenance/quick-guide-of-tcpdump-html.html)

一、基本用法

最简单的用法就是直接输入 tcpdump,监控所有的数据包:

阅读更多

C++中的多态:virtual 关键字

面向对象的三大基本特征:封装、继承和多态。类对象通过 public/private/protected 关键字实现对象的封装,封装后通过继承实现多样性,而这个多样性又需要通过多态来完成。

假设要实现一个攻击的功能,不同的角色战斗力的都不同,在以往的 c 中,要完成这个功能需要对每个不同的角色都添加一个攻击函数:

而在有多多态后,所有的函数都可以合并为一个:

阅读更多

C++类对象的声明方式和注意事项

定义以下类:

阅读更多

面试题:C++中 malloc/free/new/delete/new[]/delete[] 的差别

一、几者的区别 malloc/free 是 c 语言中分配内存空间的函数,malloc 创建空间,free 释放空间。 new/delete 是 c++中分配内存的操作符,new 创建空间,delete 删除空间。 new[]/delete[] 也是 C++中的操作符,用来给数组分配和释放空间。 malloc 只是简单的分 ... 阅读更多

vim 添加 lua 支持

安装 vim8.0 可以先参考页面升级安装 vim8.0 并添加插件支持

一、安装 Lua 和 LuaJIT

LuaJIT 下载页面:luajit.org,Lua 下载页面:lua.org

1.1 安装 lua

阅读更多