- 博客(323)
- 资源 (15)
- 收藏
- 关注
原创 Rust 实战练习 - 8. 内存,ASM,外挂 【重磅】
目标:- C写一个Demo版本的游戏- 由浅入深,了解外挂原理- Linux/Android下实现内存读取- ptrace实现内存修改(依赖第三方ptrace 提供了一种机制使得父进程可以观察和控制子进程的执行过程,ptrace 还可以检查和修改子进程的可执行文件在内存中的image及子进程所使用的寄存器中的值。在Linux下如何搜索内存找到我们需要的数据,不在这里讨论,我们根据gamebox提供的地址,直接定位。这也就是简单的游戏外挂范围的技术。/c 就可以随机改变其中的等级,金钱,位置信息。
2024-03-25 20:01:17 629
原创 Rust 实战练习 - 7. FFI, 库, ABI, libc
FFI(Foreign Function Interface)是这样一种机制:用一种编程语言写的程序能调用另一种编程语言写的函数(routines)。调用约定,类型表示和名称修饰这三者的统称,即是众所周知的应用二进制接口(ABI)。如果所有的语言在调用时都能认识同样一套 ABI 规范,那么就能完全畅通的调用了。可惜,世界不会像我们人为想象的那样干净。等。。而 Rust 目前支持如下 ABI目前我们 IT 工业的基石,绝大部分是由 C 语言写成。
2024-03-25 19:57:11 901
原创 Rust 实战练习 - 6. 指针指针+各种指针区别
【代码】Rust 实战练习 - 6. 指针指针+各种指针区别。Box,RC,Arc,Cell,RefCell,Cow,String,Vec,RawRec,Unique, Shared
2024-03-25 19:54:00 304
原创 Rust 实战练习 - 5. 多线程,多进程,协程
Rust通过await, async, Future 支持无栈协程。内部生成了一个状态机以保证代码正确的流程。虽然使用起来没有golang的方便,但胜在效率很高。(早期有类似go的绿色线程GreenThread,现在已经抛弃)协程的并发需要依赖第三方库,目前支持1:N, N:M 模型,可以在一个线程池里完成N:M模型的并发。但是,rust没有提供官方的运行时,需要社区驱动。比如futures, tokio, std-.对于golang语言,使用的是有栈协程。使用栈和上下文切换来执行异步代码逻辑的机制。
2024-03-25 19:51:55 351 1
原创 Rust 实战练习 - 4. 网络 TCP/UDP/Channel
多播,也称为“组播”,与单播一样,多播是允许在广域网即Internet上进行传输的,多播的地址是特定的,D类地址用于多播。是“多个生产者,单个消费者”(Multiple Producers, Single Consumer)的缩写,意味着多个线程可以同时向通道发送数据,但只有一个线程可以从通道接收数据。3、管理权限多播地址:在239.0.0.0~239.255.255.255之间,可供组织内部使用,类似于私有IP地址,不能用于Internet,可限制多播范围。函数来创建一个通道。
2024-03-25 19:50:06 472
原创 Rust 实战练习 - 3. 文件系统,权限,读写,路径组合,time
【代码】Rust 实战练习 - 3. 文件系统,权限,读写,路径组合,time。
2024-03-25 19:47:44 234
原创 Rust 实战练习 - 2. OS,IO,Platform(注册表,/etc)
【代码】Rust 实战练习 - 2. OS,IO,Platform(注册表,/etc)
2024-03-25 19:43:55 164
原创 联通宽带+老毛子Padavan固件 开启IP v6
设置一样,路由器也可以正常获取IP v6,只有一个问题,IP v6内网无法在公网访问。然后在路由器里进行设定。(文章中推荐桥接,路由器进行拨号)首先,你要确定当前你所在的地区运营商已经开通了。但是很遗憾,目前仅有手机蜂窝流量全面支持。防火墙,要么用软路由,要么换掉,别无他法。的部分主流中高端型号支持此功能。访问,而许多酒店,咖啡厅的公共。地址后就可以进行下一步操作了。但是请注意,至少在目前来说,访问端和服务端必须同时支持。端的服务器,有很多限制。查看,记住账号和密码)及公司网络,都仅支持。
2023-12-06 13:36:57 2451
原创 QEMU/Renode 开发嵌入式程序
模拟了vexpress-a9这个机器,内存512M,没有图形界面,Linux的kernel是./zImage, 设备树为vexpress-v2p-ca9.dtb文件,还有SD卡为rootfs.ext3文件. 还有一个附加的而启动指令,制定了console输出的端口。对于嵌入式Linux而言,因为大部分是软件内容,一般模拟起来相对比较容易,如果是STM32一类的MCU,如果原生不支持,就一定需要自己定制了。所以,如果真的做产品级别的开发模拟,就需要走第三个路子,自己完成自己的板子的开发。
2023-12-06 10:23:37 472
原创 slint ui学习笔记
slint是一个类似qml的标记语言(xml/css之类方便界面设计的语言),经过编译器slint compile(类似QT的moc/uic/rcc工具)可完整的转换成Cpp或者Rust。其开发方式类似qml+cpp,这得益于slint ui的两位初始创建人来自QT团队。slint 优点。
2023-11-15 16:12:04 868
原创 苏州景点梳理(含交通方式)
苏州中心-东方之门 + 音乐喷泉。苏州中心-东方之门 + 音乐喷泉。湖州-太湖古镇+太湖月亮湾。护城河游船(新市桥码头)三山岛景区(太湖湖心岛)护城河游船(新市桥码头)iD PARK歌林公园。阳澄湖-阳澄环路自驾。苏州太湖国家湿地公园。阳澄湖-阳澄环路自驾。
2023-11-04 15:48:39 151
原创 IOI车机系统刷机和改包笔记2 - 改包脚本
最近对雪佛兰改包需求感兴趣的网友很对,大家都遇上了很多奇怪的问题,这里就我自己使用的环境和脚本进行分享,供大家参考。
2023-10-31 21:23:25 1722 32
原创 Linux_API_系列-整体概览
Linux下API编程不像Windows一样,对每种设备和不同功能都有统一的API,所以有了《Windows核心编程》这种导论一类的大而全的书籍,整本书厚的像一块砖头。Linux下贯彻了一贯的“一切皆文件”的宗旨,所以对于系统编程而言,整体API算是非常少了。网上有很多大佬做过很多分析总结,或者参考《Linux系统高级编程》,很快就能大概得到整体概览。
2023-10-20 15:33:26 236
转载 Win11.Win10老游戏运行补丁(cnc-ddraw),适用广泛,红色警戒(红警)焕发青春
转载自52PJ: https://www.52pojie.cn/thread-1819969-1-1.html。https://github.com/FunkyFr3sh/cnc-ddraw,顺便点个star。蓝奏:https://wwps.lanzouk.com/i6FcD151rxeh,密码:2am5。再也不需要修改:管理员运行,兼容性运行,更改DPI。我最爱的红警2和红色警戒3,可以看我以前的帖子,有你所有需要的。命令与征服:泰伯利亚之日。命令与征服:红色警戒2。命令与征服:红色警戒。
2023-08-15 11:32:27 2767
原创 IOI车机系统刷机和改包笔记
我自己21年买的雪佛兰探界者SUV,没想到到了23年,车机系统上的高德导航还是3.2版本,而官方的已经7.1.中间出去玩,在高速上被车机上的高德坑了好多次,简直无力吐槽。单纯使用手机Carplay虽然也能完成导航任务,但是遇上缴费等情况,极其麻烦,所以汇聚了网友的智慧,我个人制作了一份修改教程。雪佛兰探界者21款车机系统为Android车机修改定制,官方系统最后一个版本为**“2020-2023收音机(IOI)51.20.11(请解压后阅读内含的升级指导书)”**。
2023-07-12 15:12:40 7763 52
原创 Golang IOT中的数据序列化与解析
Golang中对于JSON、XML、HTML、RPC、PB、Thrift等现代化协议都支持的非常好,但是对于IOT领域,用的多的反而是HEX原始数据,如果一个个解析,会是非常麻烦的事情。所以,对于HEX数据是否有方便好用的打包/解包方法?对于gob和msgpack在IOT一般比较困难,适用性差,探索一下binary的方案。
2023-05-18 14:12:45 899
原创 C# Winform 中使用 Webview2
目前的windows/Linux下的UI方案,以Qt为主,Flutter, Electron为辅,其他的各种UI都是不堪大用。除了使用CEF的Qt/C++/C#方案,Qt+WebEngine, 目前在Windows下各家的最终归路都转向Webview2方案,可以极大地减少发布的程序的大小。
2023-05-06 14:21:23 5577 1
原创 BIOS dmi 信息获取
考虑到跨平台的需求,目前通过dmi获取主板BIOS信息最为靠谱,然后可以考虑添加MAC或者硬盘ID。通过跨平台方案直接获取主板bmi信息,得到CPU和主板特征:(MAC和硬盘需要其他方式获取)
2023-05-05 11:40:16 617
原创 Vue3中双向数据绑定与Pinia实践+JS数据引用的循环修改问题
VUE3虽然出了很久了,但是很少深入研究,目前项目上遇到了一些问题,所以做个Note解决一下疑问:1. v-bind/v-model怎么与Pinia进行结合2. Object/Array数据大量处理时,为何有的修改不生效3. 组合API与选项API选择 (TS不考虑)4. This指针问题
2023-05-04 11:46:17 4774
原创 Qt Http JSON Get-Post 代码
【代码】Qt Http JSON Get-Post 代码。纯Qt实现Http Get/Post协议:1. Block模式2. 支持超时取消功能3. 可自定义Header
2023-02-16 14:06:52 255
原创 CMake基础学习使用与Demo-第二篇
有了上一篇,基础的cmake使用配合IDE已经能完成基本的工作了,对于复杂的项目,一般还需要配合编译器做定制。比如使用Boost库,CUDA,使用Qt框架,使用CMake编译嵌入式程序…甚至可以考虑使用ctest指令完成代码的单元测试,或者install指令或者cpack制作安装脚本。还可以通过配置不同编译器,进行跨平台编译。
2023-02-07 16:27:23 450
原创 CMake基础学习使用与Demo-第一篇
CMake即跨平台和跨方案的类似make方案,使用CMakeLists.txt进行编译内容管理。和他对应的是国产的xmake, 更简单易用,但是不够国际化,正式项目以Cmake为主目前,VS,QT, Clion,VSCode等各大IDE都默认支持CMake构建,所以,以后的项目如果可以使用CMake是一个比较好的开放方案。
2023-02-07 13:33:06 751
原创 2023.1.12 一些技术方面的感想
在过去十几年里,互联网市场从无到繁盛,然后盛极而衰,让人不得不哎叹。自己从一开始做OpenCV图像处理,算法,后来慢慢做机器人和类ROS平台,做体感,做物联网,做语音&视频直播,Linux和RTOS嵌入式,各个领域的都有涉猎,一路从VC, Qt, Golang, Rust, Java, android, JavaScript 然后涉猎了Vue/React, Flutter, flash。。。不管怎么玩,很难脱离C/C++主线,自己也喜欢这方面。
2023-01-12 11:23:33 365
原创 SVG基本知识备忘
普通场景是使用SVG作为不失真的静态图像使用,也用来做简单动画。但是考虑到地图类似应用时候,除了canvas之外,svg+动画+交互是一种更好的选择,不过这种方式对技术难度较高,但是交互会比较好。这里就基础内容做一个总结和备忘。
2022-12-22 10:09:06 539
原创 嵌入式UI框架 LVGL 学习笔记 02 页面管理和主题定制
LVGL只适用页面不太多的场合,复杂UI项目尽可能考虑Linux下QT/GTK开发。页面管理,风格美化,字体图片资源,中文输入法等在正式项目中需要慎重设计和考虑。UI初版可借助GUI工具GUI Guider或者LVGL代码缺少很多注释,文档也比较简略,论坛能解决问题有限。建议遇到问题时,多翻翻src文件夹,参看类似UI的实现。有一个比较火的开源项目参考: 开源GPS自行车码表X-TRACKPS: 后续有机会了做一个基于STM32F4的综合Demo。
2022-11-08 16:34:22 4434
原创 嵌入式UI框架 LVGL 学习笔记 01 基础概念
# 基础组件研究Code地址:https://github.com/lvgl 中文参考文档(可能部分内容不匹配,仅参考):http://lvgl.100ask.net/8.2/index.html 官方API参考文档地址:https://docs.lvgl.io/master/intro/index.html **注意:LVGL 7.x版本与8.x版本差别很大,建议使用8.x版本**
2022-11-01 10:44:39 1286
原创 Excel配置TED数据的替代方案
此文章需求来源于工作实际,仅用于讨论学习!# 总章Excel+VBA是目前配置和展示复杂数据的最好方案,但是VBA年久不维护,很多基础语法和支持缺失,已经不适合作为新的项目开发使用。对于目前复杂多样的操作系统需求,这也不是一个好的plan。**核心缺点:**- 需要对Excel COM和相关架构很理解才能改动代码- 兼容性问题,日文问题,VBA问题,经常导致报错- 无法跨操作系统,收费,限定操作系统和版本- 无法使用工具进行Code Review
2022-10-18 15:26:36 317
原创 golang tcp server client异常掉线判断
当TCP Client异常结束时,大部分TCP server都无法正确判断和处理这个问题。常见的解决思路:1. NoDelay: 解决不了,只解决了发送的问题2. KeepAlive:解决不了,虽然这个机制会最终导致socket error然后退出,但是时间太长,没有实际意义3. epoll error: 这个机制不是所有的语言都支持4. Timeout: 这个机制对golang内置,其他语言不一定有原生实现5. 自定义心跳:可以,需要双端支持,不建议
2022-09-21 12:49:28 2146
原创 11. Linux驱动 - Rust编写Linux驱动
Linux 中设备通常被分为三类,每个驱动模块通常实现为这三类中的其中一种:字符设备。通常是指可以当作一个字节流来存取的设备(比如文件)。块设备。通常是可以驻有文件系统的设备(比如磁盘),和字符设备类似,但块设备有一个请求缓冲区,因此它们可以选择响应请求的最佳顺序。网络设备。通常是指能与其他主机交换数据的设备。我们以编写一个简单的字符设备驱动为例,展示如何用 Rust 来编写内核驱动。R4L 开发环境准备为了方便,我们把 Rust for Linux 简称为 R4L。首先,下载 Rust
2022-07-18 08:34:40 2363
原创 2. STM32F4 USB协议研究 - SD卡模拟U盘
SDIO的时钟是有讲究的,默认使用48MHz专用频率,但是,如果不适用DMA方式,MCU是无法跟上读写速度,导致模拟出来的U盘不能格式化。USB设备首先分为Host和Device.DMA版本暂时不考虑,具体细节参考。......
2022-07-16 11:09:05 1702 1
原创 1. STM32F4 USB协议研究 - USB协议
https://blog.csdn.net/laifengyuan1/article/details/1079542221、USB的背景简介2、USB的几种概念3、USB的插入检测标准 USB 共四根线组成 , 除 VCC/GND 外,另外为 D+和 D-,这两根数据线采用的是差分电压的方式进行数据传输的。USB Host判断设备端是何种速度设备的判别方法:鼠标发送给PC的数据每次4个字节BYTE1 BYTE2 BYTE3 BYTE4定义分别是:2、键盘报文键盘发送给PC的数据每次8个字节BYTE
2022-07-12 17:07:27 1790
原创 10. Linux驱动 - Ubuntu驱动签名
在一般得嵌入式Linux中,默认驱动签名是不打开的,所以驱动程序编写完成后,直接 就可以使用了。但是在Ubuntu等成品系统中,因为安全和引导问题,大多是开启的,所以所有的驱动都要经过签名才能使用。内核从3.7后开始支持模块签名,这个功能使能以后,内核只允许安装特定key签名的模块。在安全启动模式下,是不能加载未签名或由未注册的密钥签名的内核模块的。内核在编译的时候,启动相关配置(.config),内核才会启动内核签名功能如何查看驱动是否加入签名查看驱动程序,最后面数据是否是签名Demo假设驱动
2022-07-11 11:04:09 2147 1
原创 9. Linux驱动 - Input输入子系统驱动模型
类似platform的框架,负责实现linux输入设备的一种框架。Linux将其中的固定部分放入内核,自动完成,驱动开发只需要实现易变部分。输入子系统对应的设备文件是固定的名称输入子系统的主设备号固定:13输入子系统设备驱动层实现触发事件事件包含的键值注意:数组操作必须按照位操作,set_bit。然后,底层的硬件检测逻辑还是按照Linux驱动IO的检测逻辑来。在使用必须最后上报SYN事件,否则没有效果。设备文件在用户层打开,read时使用结构体和大小读取,每次根据判断code内容的类型。..
2022-07-07 21:14:11 660
原创 C# .Net Core and Net5 Skills record
用来记录使用C#时,一些在意料外的问题修复办法。如果没有特殊需求,推荐 Net6 + VS2022, 或者 Net Core 3.1+VS2019.Net 最新维护列表: https://dotnet.microsoft.com/zh-cn/download/dotnet因为net core对语言的支持不是很好,默认不引入其他语言的编码,所以使用时,需要手动加载。..................
2022-06-30 10:47:22 176 1
原创 8. Linux驱动 - Platform总线驱动模型
Platform:平台设备总线驱动模型将软件驱动和硬件隔离,减少移植成本。Linux使用 模型。platform在Linux内核中实现了一条虚拟总线,叫做 platform_bus_type:总线上维护两条链表:dev(设备)链表: platform_device,drv(驱动)链表:platform_driver。匹配的动作发生在添加驱动软件或者硬件节点的时候。match函数匹配成功后,调用probe函数,进行驱动。match过程(优先级):编程只负责向内核添加节点就可以了,匹配过程内核已经设计好
2022-06-28 11:04:19 368
Delphi 12 Help帮助文档,提取自RAD Studio 12 Doc目录
2023-11-11
DAHUA_HTTP_API.pdf
2019-05-30
hikvision-onvif2.4.7z
2019-05-30
下载地址转换器_超级版
2011-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人