Ding-BLE

Ding蓝牙动态模拟(使用ESP32核心开发板实现模拟蓝牙,请勿用于Ding打卡等非法用途!)

前言

Ding考勤机蓝牙实现方案是通过TOTP算法计算一次性密码并通过蓝牙广播,该密码大约30s刷新一次,较近范围内(无遮挡10米内)的手机设备通过搜索蓝牙广播获取其广播的Manufacturer Data数据,从里面解析出一次性密码并上传服务器进行对比,对比通过即认为手机在考勤机附近。

本文的实现方法为:使用ESP32(1)放置在考勤机附近,持续搜索考勤机发送的广播,当检测到Manufacturer Data数据变化时,则将数据发送到服务器;需要远程模拟时,使用ESP32(2)从服务器获取Manufacturer Data数据并模拟,手机接收其发送的Manufacturer Data数据。

环境准备

硬件环境

  • 服务器环境:能够外网访问的php网站部署环境,负责Manufacturer Data数据的存储和转发
  • ESP32核心开发板*2:作者使用ESP32-S3-N16R8进行测试,选择的开发板ROM建议选择4MB及以上
  • WiFi环境:打卡机附近有稳定且可连接的WiFi

软件环境

  • Arduino IDE:安装有esp32开发环境(建议使用2.0.17和2.0.6版本)

部署方案

  1. send.php文件部署在服务器上,使用https://example.com/send.php?password=xxx&data=xxxx 即可上传Manufacturer Data数据数据,使用https://example.com/send.php?password=xxx 即可获取Manufacturer Data数据
  2. Arduino IDE安装ESP32 2.0.17环境,若使用ESP32-S3-N16R8核心开发板,请选择ESP32S3 Dev Module,修改为个人信息,编译SendClient.ino 文件并烧录,记为模块1
  3. Arduino IDE安装ESP32 2.0.6环境,若使用ESP32-S3-N16R8核心开发板,请选择ESP32S3 Dev Module,修改为个人信息,编译ReadClient.ino 文件并烧录,记为模块2
  4. 模块1放置在打卡机附近(无遮挡10米内)
  5. 模块2随身携带,需要使用时供电供网,即可模拟成功

局限性

  • 考勤机蓝牙打卡设置页面有“位置异常检测”功能开关,若管理员开启后,会采集本机位置与设定考勤机位置进行对比,出现较大偏差会判断为异常。 解决方案为结合LSP框架和位置模拟组件共同使用,有兴趣的可以参考:Xposed-Modules-Repo/com.fuck.android.rimet: 锤锤 (github.com)

已知问题

  • 蓝牙模拟代码仅在2.0.6库测试通过,不适用于较新库版本
  • 蓝牙采集代码存在约40%概率获取不到Manufacturer Data数据

鸣谢&参考

蓝牙模拟实现参考:zanjie1999/dingBle: esp32修改蓝牙mac地址 模拟蓝牙打卡机 (github.com)

蓝牙采集实现参考:蓝牙打卡破解 - 丁少华 - 博客园 (cnblogs.com)

https://github.com/yeqiu233/Ding-BLE/tree/main

先说结论,试试这个伪静态!

if (-f $request_filename/index.php){
    rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
    rewrite (.*) /index.php;
}

测试环境:Windows Server 2012 R2 宝塔7.5.0 Nginx1.21.1 PHP7.3/7.4

按Windows键,输入cmd,选择管理员身份运行命令提示符,粘贴以下内容按回车也可以实现免登录 REG ADD

"HKEY_CURRENT_USER\Software\kingsoft\Office\6.0\plugins\officespace\flogin" /v "enableForceLoginForFirstInstallDevice" /t REG_SZ /d "false" /f 

如果需要恢复登录可以把上面命令中后面的false改为true

1、软件升级前需要具备 内存卡+读卡器+电脑 ,并通过读卡器内存卡与电脑连接;

2、我们图中是以32g的内存卡为例,请选择正规渠道购买的品牌内存卡,将内存卡格式化一下FAT32格式,选择开始按钮 按照系统提示将内存卡格式好。

3、查询设备底部核实产品的具体名称及型号,对应在固件下载栏找到对应的固件点击下载,解压对应的固件包,这里以小方1s为例:

4、将卡刷的文件(以小方1s的卡刷包为例),放进格式化的内存卡里备用。将固件文件重命名为demo.bin

5、将内存卡从电脑里取出,插入断电的小方1s的卡槽内。

6、先按住SETUP键,再通电等待黄灯变为蓝黄灯一起亮后方可松开SETUP键(提示:小方设备除外,小方是看到指示黄灯亮起15秒后,放开setup键)如图片所示

7、等待大概30s之后升级成功后,会出现黄灯闪烁或者黄蓝灯交换闪烁稍后可以重新按SETUP键重启设备,伴有黄色的闪烁,会听到“等待连接”的声音,至此软件的升级就完成了,可以在米家app 根据提供重新连接设备。

软件下载 请您首先确认,在设备底部或者背面产品标签上的 产品名称 并找到相应的升级的软件再进行下载。

wechatDataBackup

PC微信聊天记录数据导出工具【项目地址】

  • 基于wails开发 + React前端,实现PC端微信聊天记录一键导出功能。
  • 导出后数据可以做永久化保存,即使微信停止支持,聊天记录也可以随时查看。
  • 前端界面尽量与微信界面保持一致,减少使用成本。
  • 理论上支持所有Windows 32/64位微信版本。

效果图如下:

演示视频

演示视频

使用方法

  1. 下载release可执行文件直接打开
  2. 下载源码自行编译可执行文件 安装wails环境

    git clone https://github.com/git-jiadong/wechatDataBackup.git
    cd wechatDataBackup
    wails build

    编译成功后在可执行二进制文件路径build\bin\wechatDataBackup.exe

  3. 导出聊天记录
    电脑登陆微信,然后打开wechatDataBackup.exe后按照如图提示导出

功能

本项目目前的规划与实现进度:

  • [x] 支持图片消息
  • [x] 支持视频消息
  • [x] 支持链接消息
  • [x] 支持语音消息
  • [x] 支持文件消息
  • [x] 支持原始表情显示
  • [x] 支持按类型检索
  • [x] 支持日期检索
  • [x] 支持按群成员检索
  • [x] 支持增量式导出
  • [ ] 支持更多消息类型显示
  • [ ] 图片查看器重绘
  • [ ] 实现头像或表情预先下载(实现完全离线查看)
  • [ ] 聊天报告
  • [ ] AI本地模型应用
  • [ ] 导出数据本地加密
  • ...
    如果遇到什么问题,或者有更好的建议与优化点欢迎给作者提 ISSUE

常见问题

Q: 支持手机端的聊天记录备份吗?

A: 手机端可以使用聊天数据迁移功能,将手机的数据迁移到电脑后再将数据导出。 微信迁移聊天记录功能

Q: 导出后界面是空白的、导出的数据比PC微信里面看到的少,数据不完整

A: 这是由于可能数据存在于内存中还没有回写到磁盘导致的,退出微信时会将内存的数据全部回写到磁盘,导出数据时最好退出重新登陆一次微信,保证数据都在磁盘中再导出即可。

Q: 有些图片、视频打不开

A: 这是电脑端微信没有点开过这个消息,默认只加载了预览图而已,如果手机有打开过可以把手机的记录迁移到电脑,迁移后重新退出登陆一次微信导出即可。

免责声明

⚠️ 本项目仅供学习、研究使用,严禁商业使用<br/>
⚠️ 用于网络安全用途的,请确保在国家法律法规下使用<br/>
⚠️ 本项目完全免费,问你要钱的都是骗子<br/>
⚠️ 使用本项目初衷是作者研究微信数据库的运行使用,您使用本软件导致的后果,包含但不限于数据损坏,记录丢失等问题,作者不承担相关责任。<br/>
⚠️ 因软件特殊性质,请在使用时获得微信账号所有人授权,你当确保不侵犯他人个人隐私权,后果自行承担<br/>

前端代码

由于前端代码不成熟,前端界面代码暂时不公开。

参考/引用