自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

海枫的专栏

原来我们不是顾念所见的,乃是顾念所不见的,因为所见的是暂时的,所不见的是永远的

  • 博客(117)
  • 论坛 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 再续【从零使用qemu模拟器搭建arm运行环境】

动机我在2015年编写博文《从零使用qemu模拟器搭建arm运行环境》介绍在 Ubuntu 14.04系统如何一步步构造arm+qemu的运行环境。该文的主要问题是读者有运行环境不一定是Ubuntu 14.04,会遇到不少的软件包安装和编译错误问题,我也没有办法构造复现。另一方面,当前再次构造这个环境时,也会遇到类似的问题需要处理,特别是换成Centos发行版之后,处理起来更复杂。既然每位朋友的发行版都不一样,那可以使用Docker统一构建环境,这是本项目的主要动机,使用Docker基于Ubuntu14

2020-10-08 10:42:50 269 2

原创 高级语言编写kernel,鱼和熊掌不可兼得

本文说明:本文首发在[内核月谈]公从号上,现在在个博客上发布,仍然标志为原创。本文基于OSDI18论文《The benefits and costs of writing a POSIX kernel in a high-level language》的理解整理而成。从第1节到4节沿着论文作者思路介绍a)为什么要使用高级语言编写Kernel;b)使用Go编写Biscuit在开发效率,系统安全性和...

2019-06-29 22:28:37 798

原创 等额本息贷款每月还款金额推导过程

假设贷款总额是A,而每月利息是b,总共360期,目标是计算每个月应该给银多少钱,推导过程如下。设每个月还银行的本金为mn(1≤n≤360)m_n ( 1 \leq n \leq 360) mn​(1≤n≤360)每个月还给银行的本金加上利息设为c,则每月的c是固定的。现在分析一下第i个月的还款情况,前面i-1个月已经还了本金∑n=1i−1mn\sum_{n=1}^{i - 1} m_{n}...

2019-02-23 00:13:55 5239 5

原创 对国产操作操系统的一点看法

最近中美贸易点和中兴事件,再次拉动了大众的神经,大家开始知道中国的科技实力并没有想像中的那么强,很多核心技术还是掌握在以美国为首的西方国里手里。  最近Deepin国产操作系统团队CTO王勇发表离职声明,让大家对国产操作系统的信心再次遇冷。 最近一个月看了一些关于国产操作系统文章,谈一下自己的想法吧。国产操作系统是真命题还是伪命题看到这个标题,估计很多人都会说,国产操作系统当然是真...

2018-09-16 01:24:03 12701

原创 从零开始制作Linux

提到制作Linux,大家都能想到如雷贯耳、大名鼎鼎的Linux from scratch。但Linux from scratch的复杂性不是普通人能轻易掌握的,对于初学者来说,任何步骤出现不一致,会让初学者遇到挫拆,攻破LFS的信心越来越低。本文教大家制作一个比LFS更简单的Linux系统,只有Grub、Linux kernel和最小的根文件系统initrd,原理和过程都非常简单。大家可以在这...

2018-04-29 21:51:40 6266 13

原创 揭密X86架构C可变参数函数实现原理

前两天公司论坛有同事在问C语言可变参数函数中的va_start,va_arg 和 va_end 这些接口怎么实现的?我毫不犹豫翻开箱底,将多年前前(算算有十年了)写的文章「亲密接触C可变参数函数」发给他,然后开始了深入的技术交流,才有现在这篇文章,所以这篇文算是写给同事的,也分享给大家。「亲密接触C可变参数函数」这篇文章讲的是i386架构下可变参数函数的实现原理,但是从i386到X86架构,两...

2018-04-01 00:48:13 5079 10

原创 异次元骇客、虚拟机和造物主

春节期间跟同学谈到「异次元骇客 」这部电影,谈到电影的故事情节和逻辑思维上的突破,大家兴趣盎然。上个周末又将电影看了一遍,看懂了许多原先没看到的东西,分享一下对电影的理解。异次元骇客异次元骇客是非常值得一看的电影,它超越了人类的逻辑空间。你可以说他是科幻,其实它是在探讨人类宇宙的边界和密码,宇宙是真实的还是虚拟的,它的边界在哪里。 科学家福勒带领一个拥有尖端技术的小组,他们的...

2018-03-18 19:46:58 3520 19

原创 1等于0.循环9吗?

1等于0.循环9吗?脑洞大开一下……

2017-08-13 01:15:42 5312

原创 如何求解三次方程

本文介绍一元三次方程的求解过程以及通用的求根公式

2017-08-12 00:13:20 3572

原创 阿里与华为,引领科技现代化进程

阿里对外宣布开展 NASA 计划,不同媒体有不同的解读。但个人认为这个中国科技现代化的开始,对中国IT技术有不可估量的意义。

2017-03-21 22:49:35 6222 17

原创 一分钟理解向后兼容

向后兼容 就是 向历史兼容,你理解对了吗?

2016-11-27 15:54:28 8466 5

原创 巧夺天工的kfifo(修订版)

多年以前写了篇《巧夺天工的kfifo》文章,最近有好位网友发消息讨论kfifo实现细节。发现原文有些细节没有说得很清楚,甚至有点啰嗦,于是趁今晚有空修订一下。

2016-11-26 21:38:52 13870 26

原创 应用布尔盲注来爆库(1)

如果注入成功了,但网页没有返回任何有用信息,这种情况下,如何获取数据库信息了,这就需要布尔盲注上场了

2016-11-09 22:41:44 3390

原创 基于错误信息的SQL盲注

如果不知道网站上的SQL拼接方式,那该怎么利用错误信息进行SQL盲注了,快来围观吧

2016-11-05 01:24:45 6862 3

原创 SQL注入练习平台sqli-labs

你是否在学习SQL注入找不到好的OJ平台,这里介绍sqli-labs项目给你,非常适合SQL注入初学者来这里升级怪兽。

2016-11-04 23:17:44 15877

原创 如何利用SQL注入进行爆库

SQL注入可以完全爆库,不相信,进来看看,本文一步步介绍爆库的原理和步骤。

2016-10-30 00:40:59 18165 12

原创 初识SQL注入

使用简单的实验来展示SQL注入的基础原理

2016-10-22 23:49:32 8097 4

原创 聊聊Linux2038年问题

2038年问题与之前的千年虫问题的杀伤力是不一样的,千年虫属于应用程序的问题,而2038年问题却是系统级的,有更大的杀伤力。幸好当前离2038还有20年时间,并且整个Linux社区已经开始解决的,离目标不远了,曙光在望。

2016-10-04 01:23:30 21233 8

原创 再谈0.循环9等于1

你还相信0.循环9 小于 1吗? 我们的直觉往往是错的,不信? 进来看看吧

2016-08-27 01:37:15 4554

原创 Markdown编辑器对比分析

各路大侠,您有好的Markdown编辑推荐吗,请进入帮个忙,谢谢

2016-08-13 00:54:14 3777 1

原创 聊聊Linux中的线程本地存储(1)——什么是TLS

什么是线程本地存储(TLS,Thread Local Storage)呢?相信你看过很多次这个定义,但它表达的内涵是什么呢?本文从变量模型出发,讨论引入多线程编程模式之后,需要重新修改变量模型,从而引入TLS概念。

2016-07-17 15:22:03 11431 2

原创 聊聊Linux动态链接中的PLT和GOT(4)—— 穿针引线

通过图表方式,清晰介绍PLT/GOT表的静态结构和每个场景下的动态运行过程

2016-07-13 00:01:51 8176 10

原创 图解C++虚函数

C++虚函数原理非常简单,但很多技术细节已将大家的学习兴趣淹没了。本来以图来注解g++编译器生成的C++虚函数结构。

2016-07-02 17:47:17 7358 4

原创 Linux内核网络系统中的设计模式

本文分析Linux内核网络子系统中使用的设计模式:组合模式,工厂模式,原型模式。

2016-06-26 23:26:06 5373

原创 聊聊Linux动态链接中的PLT和GOT(3)——公共GOT表项

前文(聊聊Linux动态链接中的PLT和GOT(2)——延迟重定位)提到所有动态库函数的plt指令最终都跳进公共plt执行,那么公共plt指令里面的地址是什么鬼?把test可执行文的共公plt贴出来:080482a0 <common@plt>: 80482a0: pushl 0x80496f0 80482a6: jmp *0x80496f4 ...第一句,pu...

2016-06-11 21:47:00 8949 10

原创 聊聊Linux动态链接中的PLT和GOT(2)——延迟重定位

plt和got引入延迟重定位机制之后,方案复杂度就更高了。为了让大家对延迟机制有深入的理解,将Linux方案写成C语言伪代码。

2016-06-11 17:00:26 9454 1

原创 聊聊Linux动态链接中的PLT和GOT(1)——何谓PLT与GOT

本文从一个具体例子,一步步引出PLT和GOT的定义。

2016-06-11 12:56:24 21293 7

原创 nice命令兼容性分析实例

本文通过一个nice命令能否在旧版本上运行案例,分析Linux的二进制兼容相关知识

2016-03-19 17:34:30 2318

原创 西安游记(兵马俑 -- 华清池)

兵马俑,华清池一天自助游,希望能给你带来参考……

2016-03-02 00:15:03 5944 2

原创 西安游记(钟楼 -- 回民街 -- 西安古城墙)

偷着浮生半日闲,和大家分享一下西安半日游玩过程。

2016-02-22 23:23:50 8087 6

原创 程序员春节期间如何与人类对话

作为程序中员,你春节回家遇到过哪些尴尬的问提?

2016-02-13 21:10:55 3015 5

原创 如何学习(4):利用旧知识理解新知识

如何利用旧知识理解新知识,需要梳理新旧知识的关系,比如互补关系,扩展关系和映射关系。每种关系具有不同的特点,利用好这些关系和特点是一把绝佳的学习钥匙。

2015-12-29 23:22:01 20179

原创 Linux内核版本代号

在软件领域,西方人喜欢给软件各版本给不同的名字,最近发现内核不同版本也有各自的代号。

2015-12-22 20:23:54 2419

原创 如何学习(3):迭代学习,精益求精

学习不会是一蹴而就,也不是经历漫长阶段才能将知识学到,而是迭代式的。每个迭代都有知识进帐,但在多次的迭代学习过程中,才能做到建立「全栈式知识结构」和实现「系统化知识」。

2015-12-14 01:05:25 4833 5

原创 如何学习(2):系统化你的知识

学习的目标是解决问题,如果能更有效将知识转化为生产力,重要的一步是将你的知识系统化,形成知识树,提炼规律。

2015-12-06 23:41:31 3059

原创 如何学习(1):构建全栈式知识结构

知识是多层次的,而不是理论、公式或者技术本身,它有历史,发展和应用多个方面。建过构建全栈式的知识结构,对知识理解更深入。

2015-11-22 01:11:05 2993

原创 为什么无法一次将方案讲清楚

我们在交流时,发现很多时候无法一次将事情讲清楚,需要经过多次交流都能让双方达成一致。为什么会这样呢? 本文为了揭开背后的真正原因

2015-11-16 00:02:53 2828 2

原创 使用ROP攻击技术

随着64系统广泛应用,原来通过栈控制函数参数的方法已不再适用了,攻击提出ROP攻击,又展开了一场新的较量。

2015-09-28 00:10:16 29972 18

原创 为什么会有缓冲区溢出攻击专栏

已有一段时间没有写博客,今天打开博客收到网友的私信,问我是否从事与安全相关的工作,以及对从事安全工作有什么好的建议。今晚想借这个机会记录下我写此专栏的缘由。2014年整整一年,我成为部门的安全工程师,负责Linux系统的安全设计和加固工作,使产品满足公司、客户的安全要求。在此之前对安全没有任何经验,只有网络协议以及Linux开发的经验,因此这一年的工作遇到很多困难,这些困难有技术上的,也有管理上的。

2015-09-26 01:27:11 5027 6

原创 使用ret2plt绕过libc安全区

使用ret2plt绕过libc安全区

2015-08-11 23:15:24 7485 15

空空如也

海枫的留言板

发表于 2020-01-02 最后回复 2020-01-02

arm linux 页表问题。

发表于 2011-07-09 最后回复 2014-01-18

分享两篇博文--C++反编译系列

发表于 2011-05-05 最后回复 2011-05-09

你能猜到答案吗?高手快过来显露一下

发表于 2010-12-20 最后回复 2010-12-22

C1X草案中的type-generic macros

发表于 2010-10-27 最后回复 2010-10-28

[已处理] 奇怪,为什么我的blog访问不了呢?

发表于 2010-10-08 最后回复 2010-10-08

如何用代码实现:把查询结果存放到特定的文件中

发表于 2007-04-13 最后回复 2007-04-13

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

TA关注的人 TA的粉丝

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