编码
文章平均质量分 92
iopoint
这个作者很懒,什么都没留下…
展开
-
恶意样本分析手册——理论篇
0x00写在最前面开场白:快报快报!今天是2017 Pwn2Own黑客大赛的第一天,长亭安全研究实验室在比赛中攻破Linux操作系统和Safari浏览器(突破沙箱且拿到系统最高权限),积分14分,在11支队伍中暂居 Master of Pwn 第一名。作为热爱技术乐于分享的技术团队,我们开办了这个专栏,传播普及计算机安全的“黑魔法”,也会不时披露长亭安全实验室的最新研究成果。安全领域博大精深,很多童鞋都感兴趣却苦于难以入门,不要紧,我们会从最基础的内容开始,循序渐进地讲给大家。技术长路漫漫,我们携.转载 2021-07-27 17:08:36 · 656 阅读 · 0 评论 -
ELF中可以被修改又不影响执行的区域
看雪上这篇文章讲述了两种对so进行加固的方法:1. 分离section,对整个section进行加密。2.在.text section直接寻找目标函数并进行加密,两种方式的实践代码见文末。这里讲一些我在学习过程中的一些额外发现,如有理解不对的地方,欢迎斧正。一. 关于ELF的链接视图和装载视图(执行视图)。在所有介绍ELF文件格式的文档中,都会出现这样一张图:Clipboard Image.png当初看这张图并没有很深的认识。现在回过头看看,发现有了一些新的认识。在C代码 从源代码到转载 2021-07-22 17:09:13 · 431 阅读 · 0 评论 -
无形的代码与有形的电路:详解CPU是如何识别0和1
昨晚在回顾之前所写的问答时,我发现一篇关于“CPU是怎么认识代码”的问题热度很高,很多朋友表示看了我写依旧云里雾里,不得要领。原因在于我主要讲的是编译器的作用和CPU的工作模式,没有涉及到更加底层的知识。大家的疑惑主要集中在一点:我们都清楚CPU只认识0和1,但CPU到底是如何认识0和1的呢?机器是没有思想的,只会安装规定好的电路工作我们在学习单片机的时候,都会将写好的程序烧录进CPU里。那么各位有没有想过,这个过程为什么要叫“烧录”?原因就是它是真的在烧:一块芯片的内部是密密麻麻,呈矩阵排列的转载 2021-06-28 13:37:29 · 1019 阅读 · 2 评论 -
深入 ProtoBuf - 反射原理解析
在介绍了 ProtoBuf 序列化原理之后,本文介绍 ProtoBuf 的反射技术原理。反射技术简介对于反射大家应该不会陌生,如果你接触过一些框架(如 ORM、IOC、OSGi 等) 的内部实现,应该更能体会反射技术的应用可谓无处不在。笔者读研期间所在实验室的核心技术并与反射息息相关,在反射基础之上衍生出了许多非常有趣的应用。关于反射可讲的东西很多,后续想单独写一篇文章介绍,这里先只做一个简介。反射概念最早出现于人工智能领域,20 世纪 70 年代末被引入到程序语言设计中。1982 年 MI转载 2021-06-25 13:27:59 · 598 阅读 · 0 评论 -
深入 ProtoBuf - 序列化源码解析
在上一篇 深入 ProtoBuf - 编码 中,我们详细解析了 ProtoBuf 的编码原理。有了这个知识储备,我们就可以深入 ProtoBuf 序列化、反序列化的源码,从代码的层面理解 ProtoBuf 具体是如何实现对数据的编码(序列化)和解码(反序列化)的。我们重新复习一下, ProtoBuf 的序列化使用过程:定义 .proto 文件 protoc 编译器编译 .proto 文件生成一系列接口代码 调用生成的接口实现对 .proto 定义的字段的读取以及 message 对象的序列化转载 2021-06-25 13:26:25 · 580 阅读 · 0 评论 -
深入 ProtoBuf - 编码
在对 ProtoBuf 做了一些基本介绍之后,这篇开始进入正题,深入 ProtoBuf 的一些原理,让我们看看 ProtoBuf 是如何尽其所能的压榨编码性能和效率的。编码结构TLV 格式是我们比较熟悉的编码格式。所谓的 TLV 即 Tag - Length - Value。Tag 作为该字段的唯一标识,Length 代表 Value 数据域的长度,最后的 Value 便是数据本身。ProtoBuf 编码采用类似的结构,但是实际上又有较大区别,其编码结构可见下图:ProtoBuf转载 2021-06-25 11:35:42 · 205 阅读 · 0 评论 -
深入 ProtoBuf - 简介
之前在网络通信和通用数据交换等应用场景中经常使用的技术是 JSON 或 XML,而在最近的开发中接触到了 Google 的 ProtoBuf。在查阅相关资料学习 ProtoBuf 以及研读其源码之后,发现其在效率、兼容性等方面非常出色。在以后的项目技术选型中,尤其是网络通信、通用数据交换等场景应该会优先选择 ProtoBuf。自己在学习 ProtoBuf 的过程中翻译了官方的主要文档,一来当然是在学习 ProtoBuf,二来是培养阅读英文文档的能力,三来是因为 Google 的文档?不存在的!看转载 2021-06-25 11:31:23 · 128 阅读 · 0 评论