关于 GPIO 开发的介绍我们使用 sysfs 接口来操作 GPIO,这是 Linux 系统提供的一种用户空间访问和控制 GPIO 的方法。
GPIO 的基本操作流程
GPIO 的导出与取消导出
通过 /sys/class/gpio 目录进行操作
使用 export 文件导出 GPIO
使用 unexport 文件取消导出
示例:导出 GPIO 19
1echo 19 > /sys/class/gpio/export
导出后会在 /sys/class/gpio 下创建 gpio19 目录
GPIO 的配置与控制
direction 文件:设置 GPIO 方向
value 文件:控制 GPIO 电平状态
实际操作示例
123# 设置 GPIO 19 为输出并置高电平echo out > /sys/class/gpio/gpio19/directionecho 1 > /sys/class/gpio/gpio19/value
GPIO 属性文件说明
direction 文件可选值
in: 输入模式
out: 输出模式(默认低电平)
low: 输出模式(默 ...
今年暑假决定研究一下虚幻引擎(哪个小朋友没有一个做游戏的梦呢),结果遇到了很多问题。所以试着记录下来。
Unreal Engine 不仅仅是一款游戏引擎, 也是一款用于设计等领域的工具。(虚幻引擎是这样的。我们做游戏的只需要做好游戏逻辑,设计好数据,用好资产就可以了,而引擎要搭载的功能就很多了)。这意味着对于想要学做游戏的小可爱们来说,各式各样的功能可能显得非常眼花缭乱——为了避免在各式各样的按钮里面迷路,我建议先翻几个教程看看。(不要试图去翻官方的文档!对于我目前的水平来说,那些东西就是——如说)。此外,看教程的时候请特别注意,区分用虚幻引擎做视觉设计和做游戏的。
我决定先打开那个赛车游戏的Demo。
创建项目时明明勾选了示例项目和Starter Content,还是和空白项目是一样的我感觉这是一个Bug,你看,在新建项目的时候,避免项目的名称和目录中出现中文(空格是被允许出现的),那么这个项目就可以正常的加载示例内容,而不是空白。
移动画面滚轮:前进/后退鼠标右键按住并晃动: 环顾四周鼠标左键按住并晃动: 左右转头和前进后退按住鼠标右键并WASD:玩游戏一样移动按住鼠标 ...
信息安全
未读大一刚开学学C语言就了解到gets和scanf函数不安全。到底哪里不安全呢?老师也没有讲明白,说是有缓冲区溢出漏洞。
缓冲区溢出是指当程序试图向缓冲区写入超出其容量的数据时发生的一种常见软件漏洞。缓冲区是内存中用于临时存储数据的一段连续空间,每个缓冲区都有固定的大小。如果写入的数据量超过了缓冲区所能容纳的数据量,多余的数据就会溢出到邻近的内存区域,这可能导致 安全漏洞,如果溢出的数据被精心设计,它可能包含可以执行的代码(称为shellcode),这样攻击者就可以利用这个漏洞来执行任意代码,控制受影响的系统。
问题:什么是“精心设计”?又是如何被“精心设计”出来的呢?请往下看:
栈是什么栈是一种数据结构,就像链表,图,树什么的一样用。老实说我也不清楚。但是我觉得可以凭我的理解来做题。想象一根长长的管子和很多(圆形的羽毛)球,大概像这样:
管子被每8字节分成一段,其中可以塞入很多(羽毛)球。然而,由于管子的结构,你只能从管子的顶部塞入球,要拿出球时,也只能把管子倒过来,把球依次地拿出来。而球被拿出的顺序,是最后放入的球最先被取出来,因为最后放入的球一定在管子中球堆的最上面。现在,把这 ...
Frida和安卓逆向的第一次实践
[!NOTE]
本文在创作时使用了生成式人工智能进行辅助
需要的工具:
具有ROOT权限的Android环境(我使用了Windows Subsystem For Android的面具版)
Frida
Jadx-GUI
安卓调试桥(ADB)
(可选)Material Files(质感文件,可以方便地移动文件和设置权限)
(可选)APK安装程序 (方便地通过双击apk文件直接安装到WSA上)
现在默认你安装和配置好了上面的所有工具,接下来我们开始吧!
开始我们以Frida-Labs的0x6和0x9为例来试用Frida。
0x6安装Frida 0x6,启动后如图:
什么都没有欸!那只能反编译了,嘿嘿。
将Frida 0x6的安装包拽进Jadx,获得以下页面:
空的欸!代码都不显示,气死了!进不去,怎么想都进不去嘛!
这个时候,我们观察左栏,发现了“源代码”和“资源文件”。我们知道:
源代码就是各种各样执行功能的代码啦!二进制选手最喜欢的东西!
APK signature是apk的签名,和软件打开长什么样没有什么关系,不管
资源文件,什么图片啦,布局啦 ...
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
说明:全文由GPT4-Turbo生成。
Z3求解器使用教程最近在折腾逆向工程时,遇到了一些棘手的问题,需要用到Z3求解器来破解一些复杂的算法。Z3,这个名字听起来像是某种神秘的武器,其实它是一个强大的定理证明器和数学问题求解器,对于我们这些喜欢瞎折腾的人来说,简直是神器。
1. Z3是什么?Z3是由微软研究院开发的一个高性能的定理证明器,它可以解决逻辑、数学等领域的问题。简单来说,你只需要告诉它一些前提条件和你想要证明的命题,Z3就能告诉你这个命题是真是假,甚至还能给出满足条件的具体解。
2. 下载和安装首先,我们需要从GitHub上下载Z3。打开你的浏览器,搜索“Z3 GitHub”,找到微软研究院的官方仓库,里面有详细的安装说明和使用教程。下载对应的版本,Windows、Linux和macOS都有支持。
安装很简单,Windows上一般是.exe安装包,双击跑一遍基本上就好了。Linux和macOS可能需要编译安装,但别担心,GitHub上有非常详细的步骤,跟着做就是了。
3. 第一次使用安装完成后,我们来试试看Z3能做什么。打开命令行或终端,输入z3 -h,如果看到一堆参数说明 ...
1.下载安装包 首先,请转至下面页面,这可以保证您从官方渠道下载
下载 Android Studio 和应用工具 - Android 开发者 | Android Developers (google.cn)
随后,点击下载按钮后同意协议,下载应该自动开始。如果下载很慢,您可以考虑使用代理工具。
2.安装Android Studio 似乎很废话。不过还是得写。双击你得到的具有这个图标的可执行文件,并稍作等待,将会出现这个窗口。您需要点击“Next”来继续。
接下来你需要选择是否安装安卓虚拟机。你可以选择安装这个3.6GB大的Pixel 3虚拟机,用于各种各样的测试。当然了,你也可以选择不安装,这仍然可以方便地使用你自己的物理安卓设备或者是连接到WSA安卓子系统。当然了,都取决于你。
接下来就是一路Next加OK,注意中途需要同意两个协议。接下来就会进入下个页面,我建议你先找点别的事情做比较好。
3.汉化(可选) 可以通过界面左下角的齿轮->About查看版本
图示版本为231.9392.1.2311.11330709。在Versions: Chinese ...
话说,这个站点从哪里来?说来话长……
最开始是2023年的3月份,当初注册了个ChatGPT但是苦于得不断地用魔法工具访问(况且免费魔法工具时不时抽风,然后就Access Denied了)
于是呢,看到GitHub上面有一个“ChatGPTNextWeb的项目”,用API+代理的方式方便地访问ChatGPT(以及提前体验Customized instruction以及乱改参数来绕过限制)。当时便将目光投向了Vercel。部署完了又发现Vercel的域名被墙了(不是,有没有搞错),又斥巨资买了个域名。很好,我的第一个网站就这么诞生了。
随后嫌弃阿里云的DNS不太好使,就转给了CloudFlare。这时才发现CloudFlare不仅可以托管静态站点,还可以免费配自定义的不会被墙的域名(拍大腿),而且还提供免费的AI服务,包括Llama和Whisper什么的……然后就拿ChatGPT写了一堆HTML文件,甚至内嵌CSS(最最开始是拿GitHub Pages自动把Markdown渲染成HTML,但是太丑了遂放弃),搞了一堆JavaScript。好嘛,要高考了,该折腾的还是折腾的一样欢。
然后呢 ...
单片机第一次点灯各种可能遇到的问题前两天兴致勃勃买了块STM32,开始给单片机写程序。虽说大一开学就学了C语言,但还是踩了不少坑。
在这里写写可能出现的问题。
1.看错调试器了嗯,大概是看视频教程的时候,发现视频教程的调试器和自己的除了颜色其他的都一样,于是毫不犹豫地为调试器一栏选上了ST-Link。多次尝试发现电脑就是打不上ST-Link的驱动,遂质问店家,答曰:
1亲亲,咱们家的是DAP调试器,不需要驱动更方便哦!
另:某人的嘲讽
好嘛,下次注意。
2.没有正确的连接系统板和下载器简单来说,下载器上面的接口排列顺序和系统板上面的是不一样的。也就是说,你不可能在没有分开四条杜邦线的前提下把正确的接线。此外。如果你真的接错了,那么症状是:单片机闪灯,下载器能够被识别到,但识别不到单片机。
3.没有把所有的定义全部放在函数开头这是ChatGPT们经常犯的错误。请看下面代码:
123456int main(void)//注意,main函数最好是void型{ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); G ...






















