自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (2)
  • 收藏
  • 关注

转载 思想 统一

设计易于移植的平台,应遵循层次化、模块化和对象化的设计方法。 层次化设计对于操作系统而言,体现在操作系统的纵向结构上。为了适应多种硬件平台,将操作系统划分出来一个可以直接和硬件通讯的层次,然后为其上层提供抽象支持,下层通过API的形式向上层提供服务。这样上层在进行硬件操作时,不需要了解设备的具体细节,从而大大减少系统理解和开发的复杂度。所以,层次化的方法主要有以下优点:节省成本、易于理解、易于扩展、易于排错。 模块化最大特点就是将接口和实现分离开来,将具体的功能块隐藏在抽象的接口

2022-06-21 10:32:30 168

转载 防呆设计于软硬件

 防呆即减少对人的注意力、能力和经验的依赖,通过设计提炼为模式或方法避免犯错或最大限度地降低犯错概率的发生。生活和工作中随处可见防呆设计的例子:1、 衣服衣领处的标签可以轻易识别前后和正反,避免穿错的情况发生,即使是没有灯光的情况下;2、 TypeC接口正反都能插,避免USB式的尴尬;3、 在电子设备中删除文件时的确认提示,降低文件被误删的概率;4、 插座插口的安全设计,从根本上解决家长对小孩玩耍时触电的担忧;5、 IDE中代码语法错误提示、编译时的错误提示、运行时的异常提示,尽量提前暴露问题减少

2022-01-24 10:29:54 752

转载 CPU中断的工作原理

前言  中断的概念属于硬件层。虽然在进行软件编程时不会直接使用中断,但理解它对我们来说依然重要。  在使用线程切换及状态管理、异常处理、硬件与处理器的交互、I/O操作等指令时,中断都在默默的服务。  处理器基于硬件封装对外的指令集,底层语言封装指令集提供更加简单的抽象,高级语言基于底层语言赋予程序更明确的语义。可以看到在这条关系链条中,下层的变动会牵一发而动全身影响上层。而上层想要提高效率,改变机制也必须得到下层的支持。  像 I/O 处理的不断演进,从占用CPU等待到通过中...

2021-07-28 15:19:50 3355

转载 手把手教你栈溢出从入门到放弃(上)

0x00写在最前面开场白:快报快报!今天是2017 Pwn2Own黑客大赛的第一天,长亭安全研究实验室在比赛中攻破Linux操作系统和Safari浏览器(突破沙箱且拿到系统最高权限),积分14分,在11支队伍中暂居 Master of Pwn 第一名。作为热爱技术乐于分享的技术团队,我们开办了这个专栏,传播普及计算机安全的“黑魔法”,也会不时披露长亭安全实验室的最新研究成果。安全领域博大精深,很多童鞋都感兴趣却苦于难以入门,不要紧,我们会从最基础的内容开始,循序渐进地讲给大家。技术长路漫漫,我们携.

2021-07-27 17:16:45 409

转载 手把手教你栈溢出从入门到放弃(下)

0x00写在前面首先还是广播一下2017 Pwn2Own 大赛的最终赛果,本次比赛共发现51个漏洞,长亭安全实验室贡献11个,以积26分的总成绩,在11支参赛团队中名列第三!同时,也祝贺国内的安全团队包揽本次大赛的前三名!0x10上期回顾上篇文章介绍了栈溢出的原理和两种执行方法,两种方法都是通过覆盖返回地址来执行输入的指令片段(shellcode)或者动态库中的函数(return2libc)。本篇会继续介绍另外两种实现方法。一种是覆盖返回地址来执行内存内已有的代码片段(ROP),另一种是..

2021-07-27 17:10:39 101

转载 恶意样本分析手册——理论篇

0x00写在最前面开场白:快报快报!今天是2017 Pwn2Own黑客大赛的第一天,长亭安全研究实验室在比赛中攻破Linux操作系统和Safari浏览器(突破沙箱且拿到系统最高权限),积分14分,在11支队伍中暂居 Master of Pwn 第一名。作为热爱技术乐于分享的技术团队,我们开办了这个专栏,传播普及计算机安全的“黑魔法”,也会不时披露长亭安全实验室的最新研究成果。安全领域博大精深,很多童鞋都感兴趣却苦于难以入门,不要紧,我们会从最基础的内容开始,循序渐进地讲给大家。技术长路漫漫,我们携.

2021-07-27 17:08:36 699

转载 ELF中可以被修改又不影响执行的区域

看雪上这篇文章讲述了两种对so进行加固的方法:1. 分离section,对整个section进行加密。2.在.text section直接寻找目标函数并进行加密,两种方式的实践代码见文末。这里讲一些我在学习过程中的一些额外发现,如有理解不对的地方,欢迎斧正。一. 关于ELF的链接视图和装载视图(执行视图)。在所有介绍ELF文件格式的文档中,都会出现这样一张图:Clipboard Image.png当初看这张图并没有很深的认识。现在回过头看看,发现有了一些新的认识。在C代码 从源代码到

2021-07-22 17:09:13 449

转载 编译器编译原理--详解

目前编译器做的工作越来越多,IDE为我们程序员提供的服务也越来越周到。我们只需讲业务逻辑通过代码语言表现出来,但是我们编译器内部具体的编译原理也越来越不了解了。沙米最近看了看《程序员的自我修养》,发现里面讲解的编译原理很清晰,明了,使自己对编译的基本知识有了一定了解。  有好东西当然要分享出来了,哈哈。下面是沙米的一些理解,可能有一下错误,还请大家批评指针,谢谢。0 、本文介绍的目录1、过程概览1.1过程图2、过程详解2.1预编译2.2编译2.3汇编2

2021-07-22 16:16:45 193

转载 一些反调试手段及对应的逆向思路

实践还少,暂且没遇到,不过先来打个预防针,熟悉下。首先什么是反调试:防止程序被调试,保护代码。一种加固手段。万事无绝对,不能阻止,但能缓解,让破解者消费精力。一般的,该手段会与加壳并用。如何来反调试呢?大方向有两类:检测,攻击。1. 检测检测程序是否被调试,若是的话做出一些“反”措施,例如退出,跳到其他位置等。2. 攻击让调试器崩溃,阻止调试。1.一般的,大多通过另启进程或线程。基础知识:一个进程最多只能被一个进程ptrace:调试状态下,linux向/proc/p.

2021-07-06 13:21:41 1404

转载 无形的代码与有形的电路:详解CPU是如何识别0和1

昨晚在回顾之前所写的问答时,我发现一篇关于“CPU是怎么认识代码”的问题热度很高,很多朋友表示看了我写依旧云里雾里,不得要领。原因在于我主要讲的是编译器的作用和CPU的工作模式,没有涉及到更加底层的知识。大家的疑惑主要集中在一点:我们都清楚CPU只认识0和1,但CPU到底是如何认识0和1的呢?机器是没有思想的,只会安装规定好的电路工作我们在学习单片机的时候,都会将写好的程序烧录进CPU里。那么各位有没有想过,这个过程为什么要叫“烧录”?原因就是它是真的在烧:一块芯片的内部是密密麻麻,呈矩阵排列的

2021-06-28 13:37:29 1093 2

转载 深入 ProtoBuf - 反射原理解析

在介绍了 ProtoBuf 序列化原理之后,本文介绍 ProtoBuf 的反射技术原理。反射技术简介对于反射大家应该不会陌生,如果你接触过一些框架(如 ORM、IOC、OSGi 等) 的内部实现,应该更能体会反射技术的应用可谓无处不在。笔者读研期间所在实验室的核心技术并与反射息息相关,在反射基础之上衍生出了许多非常有趣的应用。关于反射可讲的东西很多,后续想单独写一篇文章介绍,这里先只做一个简介。反射概念最早出现于人工智能领域,20 世纪 70 年代末被引入到程序语言设计中。1982 年 MI

2021-06-25 13:27:59 623

转载 深入 ProtoBuf - 序列化源码解析

在上一篇 深入 ProtoBuf - 编码 中,我们详细解析了 ProtoBuf 的编码原理。有了这个知识储备,我们就可以深入 ProtoBuf 序列化、反序列化的源码,从代码的层面理解 ProtoBuf 具体是如何实现对数据的编码(序列化)和解码(反序列化)的。我们重新复习一下, ProtoBuf 的序列化使用过程:定义 .proto 文件 protoc 编译器编译 .proto 文件生成一系列接口代码 调用生成的接口实现对 .proto 定义的字段的读取以及 message 对象的序列化

2021-06-25 13:26:25 617

转载 深入 ProtoBuf - 编码

在对 ProtoBuf 做了一些基本介绍之后,这篇开始进入正题,深入 ProtoBuf 的一些原理,让我们看看 ProtoBuf 是如何尽其所能的压榨编码性能和效率的。编码结构TLV 格式是我们比较熟悉的编码格式。所谓的 TLV 即 Tag - Length - Value。Tag 作为该字段的唯一标识,Length 代表 Value 数据域的长度,最后的 Value 便是数据本身。ProtoBuf 编码采用类似的结构,但是实际上又有较大区别,其编码结构可见下图:ProtoBuf

2021-06-25 11:35:42 209

转载 深入 ProtoBuf - 简介

之前在网络通信和通用数据交换等应用场景中经常使用的技术是 JSON 或 XML,而在最近的开发中接触到了 Google 的 ProtoBuf。在查阅相关资料学习 ProtoBuf 以及研读其源码之后,发现其在效率、兼容性等方面非常出色。在以后的项目技术选型中,尤其是网络通信、通用数据交换等场景应该会优先选择 ProtoBuf。自己在学习 ProtoBuf 的过程中翻译了官方的主要文档,一来当然是在学习 ProtoBuf,二来是培养阅读英文文档的能力,三来是因为 Google 的文档?不存在的!看

2021-06-25 11:31:23 131

原创 安全研究相关技术博客

https://introspelliam.github.io/categories/https://www.kancloud.cn/wepeng/php/1172702

2021-06-24 17:47:49 133

转载 ARM架构及ARM指令集、Thumb指令集你了解多少?

ARM架构及ARM指令集、Thumb指令集你了解多少?1991 年ARM 公司成立于英国剑桥,在成立后的那几年,ARM业绩平平,工程师们也人心惶惶,害怕随时都会失业。在这个情况下,ARM决定改变他们的产品策略——他们不再生产芯片,转而以授权的方式,将芯片设计方案转让给其他公司,即“Partnership”开放模式。没想到正是这种模式,开创了属于ARM的全新时代。ARM所采取的是IP(Intellectual Property,知识产权)授权的商业模式,收取一次性技术授权费用和版税提成。

2021-06-24 16:20:49 1042

轻便取色器

非常轻便的取色器,可以轻松获取自己想要的颜色值,用于自己的软件设计和开发

2014-08-25

GridView拖拽

拖拽很流畅,就是没有解决拖拽和单击事件的一起响应了

2012-12-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除