其它
文章平均质量分 82
未分类
狂奔的乌龟
1、博客介绍:专注分享ARM Trustzone/TEE/Linux/嵌入式等领域知识,大部分是个人学习笔记,关注我,一起学习!希望在这里能和大家一起进步,星光不负赶路人,加油!
2、个人介绍:ARM/TEE/Linux等领域忠实爱好者,个人长期专注于硬件安全、系统安全、嵌入式领域安全开发工作。
3、个人语录:积累是一个漫长的过程,未来很长,一起努力,只要路是对的,就不怕路远。
4、招聘广告:目前在国内大厂上班,长期招聘高级别&有经验的硬件安全、系统安全、嵌入式底层软件架构师&SE&MDE,寻求志同道合有志之士,有意向可私信我。
展开
-
一步一步理解CPU芯片漏洞:Meltdown与Spectre
一个具有用户级权限的攻击者在第三条指令中试图访问内核地址,处理器会对其作安全检查,检查该进程是否有权限访问该地址,于是这条指令会触发异常,该指令及之后的指令对寄存器的修改都会被丢弃,处理器重新回到能正常执行的指令中。在支持乱序执行的CPU中,后面的指令可能在前面指令执行结束前就开始执行了。此后,攻击者就可以通过缓存侧信道攻击,不断遍历加载rbx[al*4096],由于该数据此时已经在缓存中,攻击者总会遍历出一个加载时间远小于其它的数据,推测哪个内存页被访问过了,从而推断出被访问的内核内存数据。转载 2022-12-18 22:12:28 · 2193 阅读 · 0 评论 -
【长期有效】感谢关注。
打造面向智能汽车、AI计算、移动终端的硬件可信底座,构建系统级安全解决方案。原创 2022-12-08 23:24:10 · 468 阅读 · 4 评论 -
如何提升代码规范性——嵌入式C编程规范。
分享一篇C语言编程规范,欢迎大家来讨论。编写代码时最重要的一条规则是:检查周围的代码并尝试模仿它。作为维护人员,如果收到的补丁明显与周围代码的编码风格不同,这是令人沮丧的。这是不尊重人的,就像某人穿着泥泞的鞋子走进一间一尘不染的房子。因此,无论本文推荐的是什么,如果已经编写了代码并且您正在对其进行修补,请保持其当前的样式一致,即使它不是您最喜欢的样式。这里列出了最明显和最重要的一般规则。在你继续阅读其他章节之前,请仔细检查它们。...原创 2022-06-08 22:21:22 · 728 阅读 · 1 评论 -
如何提升代码的安全性 —— 代码防御性编程的十条技巧
顾名思义,防御性编程是一种细致、谨慎的编程方法。为了开发可靠的软件,我们要设计系统中的每个组件,以使其尽可能的”保护”自己。我们通过明确地在代码中对设想进行检查,这是一种努力,防止我们的代码以将会展现错误行为的方式被调用。防御性编程使我们可以尽早的发现较小的问题,而不是等到它们发展成大的灾难的时候才发现。其开发软件的过程是:下面总结了一些防御性编程的反对和支持者的意见:采用良好的编码风格,来防范大多数编码错误。如:const关键字:关键字const可以给读你代码的人传达非常有用的信息。例如,在函数的形参转载 2022-06-08 21:48:01 · 2537 阅读 · 0 评论 -
如何提升代码的安全性 —— 代码混淆
目录一、背景1.1 Android应用安全存在多重隐患二、代码混淆2.1 代码混淆的原理2.2 代码混淆的方法2.3 常见的代码混淆方式三、 C/C++ 代码混淆3.1 Obfuscator-LLVM实现C/C++混淆3.1.1 常见的混淆方法3.1.2其他常见的C/C++混淆手段:四、代码混淆可能带来的问题一、背景1.1 Android应用安全存在多重隐患代码可逆向:客户端App的逻辑能够被轻易获取和逆向,得到代码和程序中的敏感数据;功能泄漏:客户端App中高权限行为和功能被其他未授权的应原创 2022-05-25 21:34:44 · 1878 阅读 · 2 评论 -
Linux 笔试面试常见题目(整理)
16. 内核分为 进程管理系统 、 内存管理系统 、 I/O管理系统 和文件管理系统 等四个子系统。17. 内核配置是系统管理员在改变系统配置 硬件 时要进行的重要操作。18. 在安装Linux系统中,使用netconfig程序对网络进行配置,该安装程序会一步步提示用户输入主机名、域名、域名服务器、IP地址、 网关地址 和 子网掩码 等必要信息。19. 唯一标识每一个用户的是用户 ID 和用户名。20 . R原创 2015-06-17 19:46:19 · 25212 阅读 · 0 评论 -
给大家推荐一个查变量名的网站 - mark
程序员最头疼的事情除了头发以外就是给变量或函数命名,一开始学编程语言的时候还可以 abc、a1、x2 等方式命名,等到工作过程中开始真正的项目开发时,如果还是这样随意的命名,即使同事可以忍受你的 abc,隔几个月自己再重新看代码说不定都想锤自己一顿。这个时候,英语好的同学可以挤尽脑子想一些与中文意思差不多的单词,英语捉急的便只能求助有道翻译。但这两种方法最后的效果都让人很不满意。有没有第三方工具可以帮助大家轻轻松松的给变量或函数命名呢?变量命名网站 CodelfCodelf 是通过搜索在线开源平台Git转载 2022-04-01 23:04:32 · 3860 阅读 · 1 评论 -
芯片的数字指纹PUF技术介绍。
文章目录那什么是PUF?它与TrustZone技术的区别PUF特性PUF结构PUF的优势SRAM PUF介绍SRAM PUFSRAM PUF Key存储Enrollment——QTP(One Time Process)Key重构——每次上电都需要重新执行这个过程SRAM PUF 产品形态SRAM PUF生命使用周期SRAM PUF应用生成应用Key流Wrap Operation基于SRAM PUF防克隆的应用方案安全固件的导入安全固件的导入使用过程安全固件升级固件防克隆原理PUF应用于AIoT - 人工智能原创 2022-01-09 21:47:11 · 5213 阅读 · 0 评论 -
Open Data Plane (ODP) 源码下载(git 服务器搭建)
1、引言GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。2、安装假设你已经有sudo权限的用户账原创 2015-09-03 16:40:51 · 1585 阅读 · 0 评论 -
CPLD个人学习笔记
cpld定义CPLD是在PLD器件基础上发展起来的数字逻辑器件,PLD是指Programmable logic device,即可编程逻辑器件,CPLD是complex programmable logic device,即复杂可编程逻辑器件。用户可以把编译好的CPLD程序通过专用的CPLD程序烧写器烧写到CPLD芯片中,从而实现程序设计的数字逻辑功能。所以CPLD可以通过编写特定逻辑的硬件程序,代替分立的数字逻辑芯片实现各种数字逻辑的功能。CPLD即复杂可编程逻辑器件,是从PAL和GAL器件发展出来的原创 2021-12-29 21:56:02 · 13310 阅读 · 0 评论 -
2013 Office Word 编辑常用功能
1、Word 空格显示成点将word中所有空格显示成点,方便编辑 2、插入参考文献 一般参考文献在文中都要标注成带方括号的形式,例如“[1]”。这里交给大家一个方法一键搞定。 点击开始→替换,在查找内容处填写^e,替换处填写[^&]即可。 替换后如下图所示。3、页眉设置要求:页眉标注从论文主体部分(绪论、正文、结论)开始。页眉分奇、偶页标注,其中偶数页的页眉为 华南理工大学博士/硕士原创 2016-03-29 10:50:15 · 4866 阅读 · 0 评论 -
PXE 服务器工作原理
1、工作原理启动预启动执行环境 (PXE) 启动后,PXE ROM 请求 IP 地址从动态主机配置协议 (DHCP) 服务器,使用普通的 DHCP 发现过程。 作为初始 DHCP 发现请求的一部分,客户端计算机将自身标识为启用 PXE 的指示 PXE 客户端需要提供服务的服务器。 客户端从 DHCP 服务器获得有效的 IP 地址之后,客户端将尝试查找并与下载网络启动程序 (NBP) 的 PXE 服务原创 2015-07-14 21:01:42 · 7148 阅读 · 1 评论 -
代码从记事本拷贝到 source insight 工程出现中文乱码解决办法
1、代码从记事本拷贝到source insight 工程,此时出现乱码,解决办法,将输入法切换到中午输入法即可。2、source insight 阅读VC++源码,注释为乱码解决方案1、options->preferences->Syntax Formatting->Styles; 2、在Style Name 选择 Comment,再对其Font Name 选择Pick,然后再选择“新宋体”。3、原创 2015-08-08 18:37:25 · 3671 阅读 · 0 评论 -
Source Insight 阅读Matlab程序
step 1: add "matlab" language:(1) options -> Preferences -> language ->Add : enter "matlab"(2) select "matlab" in the "Language" tab -> Import : import file "matlab.clf"(3) "matlab" -> Keywords -> Import: import file "keywords.txt" (4) click "OK"原创 2015-04-22 10:40:02 · 4668 阅读 · 2 评论 -
模型融合
我对此的理解还比较浅显,最早知道这个东西还是今年看到了一个PPT,主要理解就是单个模型的结果不够理想,如果想得到更好的结果,需要把很多单个模型的结果融合在一起。 那么究竟是怎么个“融合”呢? 这个问题之前一直没搞明白,最近在用随机森林方面的方法来处理数据,顿悟出,模型融合可以想像成“再次的机器学习过程”。已知模型A、模型B、模型C,测试数据输出的结果分别为a,b和c,用训练数据通过模转载 2015-03-25 08:49:03 · 4636 阅读 · 1 评论 -
主页老是被篡改解决办法
点击“开始”→”运行”,输入”gpedit.msc”,进入系统的组策略,选择“用户配置→Windows设置”→“Internet Explorer维护”里面的”URL→双击右侧窗口中的”重要URL”→选择”自定义主页URL”,在”主页URL”输入预设的网页地址,设置完成后退出即可。 主页设置好以后,如果不希望他人对自己设置的IE主页随意更改,可以禁用更改主页的设置。 开始-运行-输入“gpedit原创 2015-09-25 16:44:51 · 3104 阅读 · 0 评论 -
Source Insight has not been installed completely 解决简易办法
问题如上图描述所示,这个问题耽误了我很多时间,卸载了重新安装,安装了又卸载,在网上找个几个安装软件,都报相同的错误,问题依旧。问题造成原因:应该是第一次软件没有安装成功,造成以后安装都失败(本质原因,我也不清楚) 解决办法: 网上有人说需要用管理员权限执行,这个办法我试过了,不行。下载一个CCleaner 类似清理系统注册表的软件,先把软件先卸载一下,然后清理注册表,再重新安装一遍,这个问题解决原创 2015-09-28 20:59:09 · 6346 阅读 · 0 评论 -
TCP 传输层面试中常问的问题汇总(你所不知道的传输层)
TCP 传输层面试中常问的问题汇总1. 在开始传输前,需要进行三次握手建立链接2. 可靠性:在传输过程中,通信双方的协议模块继续进行通信3. 通信结束后,通信双方都会使用改进的三次握手来关闭链接如同我们自定义的应用层协议一样:协议只是给出了一组规范,规定我们应该怎么样(按什么规则)保存数据。在计算机间传输的永远都是二进制字节码(对于传输层,可以理解为传输的始终是下层的IP数据包),是计算机中的程序通过对这些字节码进行逻辑分析、判断,来控制程序完成差错控制等功能。至于解析这些字节码的程序,则可转载 2015-09-16 15:59:46 · 3709 阅读 · 0 评论 -
双系统(ubuntu、windows), 删除 ubuntu 分区,进不去 windows 解决办法
最近人品有点差,接二连三从笔记本屏幕、开发板、再到台式机硬件坏了,再到自己安装不小心,安装失败了ubuntu(没有选择分区,让系统自己选择)。然后自己直接把ubuntu分区删掉了,这下问题就来了,不能进入windows7。总结一句话,就是最近自己状态太差,老是处于游离状态,做事不够细心。希望明天开始,做事一步一个脚印,攒人品。1、问题描述: 我的电脑是Win7和Ubuntu双系统,因为Ubuntu出了问题无法解决,所以最后决定重装Ubuntu,因此我回到Win7系统下,将Ubuntu的分区全部删掉,结原创 2015-06-02 20:34:39 · 6695 阅读 · 0 评论