自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 IPv6 Cannot assign requested address问题分析

问题现象:连接个别WiFi中继器,ipv6无法正常使用(报错信息:ping6: sendto: Cannot assign requested address)问题详细分析:Cannot assign requested address 的原因是 ipv6的fe80:… Link地址的flag状态 为IFA_F_TENTIVEAutoSave20200923_18_00_41_COM8(USB).txtLine 4037: (200923_18:01:22.301)[ 32.043493..

2020-12-17 15:19:26 2616 1

原创 aidl命令

aidl命令使用简介使用方法特别注意简介aidl命令做为android编译阶段中使用的命令,负责将aidl文件转化为java文件使用方法$ source … && lunch …如上命令后,使用aidl --help 如下讯息usage:aidl --lang={java|cpp|ndk} [OPTION]... INPUT... Generate Java or C++ files for AIDL file(s)....OPTION: -I DIR, --i

2020-09-21 18:19:53 1236

原创 linux下如何查看当前内核的配置?

linux下如何查看当前内核的配置?答: zcat /proc/config.gz 当然有个前提条件,需要打开内核的以下两个选项(CONFIG_IKCONFIG和CONFIG_IKCONFIG_PROC):  General setup --->  <*> Kernel .config support  [ * ]  Enable access to .config through /proc/config.gz...

2020-08-04 13:49:50 2725

原创 大文件的python处理

遇到QA测试人员提供的了超大的log文件3.24G,有些无从下手,故写了如下python code,将大文件分割并保存监测出关键字的部分。具体code如下#!/usr/bin/python# AUTHER: ZPEGimport os,sys,shutilfindstr = "CTRL-EVENT-DISCONNECTED"kilobytes = 1024megabytes = 1024 * kilobyteschunksize = int(100*megabytes)#defau

2020-07-22 19:51:56 167

转载 [IPv6] 如何在ASUS無線路由器設定IPv6網際網路?

site://https://www.asus.com/tw/support/FAQ/113990/ASUSWRT在韌體版本3.0.0.3.78以後有支援『IPv6網際網路』功能;注意: IPv6資訊 (例如:連線類型、IPv6的IP和DSN設定等) 請詢問ISP業者。1. 首先開啟瀏覽器,輸入http://router.asus.com進入路由器登入介面 (ASUSWRT) 2. 設定IPv6網際網路步驟如下: 2-1『進階設定』中點擊『IPv6』 2-2 選擇『...

2020-07-21 09:55:53 6669

原创 以Tethering.apk为例看APEX的搭建过程

由于系统模块无法像应用软件apk的方式进行更新,在更新系统模块时,往往需要重新烧录整个image才可以完成,所以Android引入的APEX文件格式。详细概念可参考https://blog.csdn.net/qq_28351465/article/details/106458089本文以Tethering.apk为例,介绍下apex如何创建、使用等。Tethering.apk是系统预置apk,用来将一些interface的网络share给另外的interface使用、创建dhcp server等。构

2020-07-20 22:35:17 3189 1

原创 CVE-2019-11477 分析

经分析测试,1我们平台目前kernel配置应永远无法打到该漏洞,所以可以选择不用上该patch2 漏洞patchhttps://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-4.4.y&id=4657ee0fe05e15ab572b157f13a82e080d4b7d73Patch已测试可正常联网并tcp通信该问题是由TCP_SKB_CB(skb)->tcp_gso_segs u16数

2020-07-20 19:11:03 384

原创 selinux - Android编写sepolicy

为service编写sepolicy由init启动的service服务要在各自的selinux domain中运行。

2020-07-20 15:45:12 4529

原创 Linux API system()安全性问题

Use of the system() function can result in exploitable vulnerabilities, in the worst case allowing execution of arbitrary system commands. Situations in which calls to system()have high risk include the following:When passing an unsanitized or improperly

2020-07-07 20:54:39 521

原创 APEX - Android Q

引自https://source.android.com/devices/tech/ota/apex因本人忘性越来越大,故记录一下本文加深下记忆,描述有些问题的地方见谅。建议有英文阅读能力的同学自行访问官方网址。Android Pony EXpress (APEX) 是Android 10引入的一种容器格式,用于底层系统模块的安装flow。因为不用符合Android标准应用程序格式, 因此该格式的引用可以促进更新系统模块。底层模块包括像Native的services和库、HALs、ART等。

2020-06-02 09:08:04 5195 1

原创 从内核角度看Linux 线程和进程的区别

多数人都会讲说线程和进程在内核中是相同的,没有严格地做区分。这样讲是没错了,但对于应用开发者来说,这样讲是有点笼统。本文将从内核角度,分析线程和进程之间的区别,希望能对这一块感兴趣的人提供借鉴意义。1 数据结构 task_structLinux中无论是进程还是线程,只要是调度单元,都通过 structtask_struct表示。这也是为什么讲说进程和线程在内核相同的原因。struct...

2019-04-01 18:02:14 5823 1

原创 Linux 内存管理概要

之前学习内存方面的都太关注于细节,就有些知其然而不知其所以然的感觉。所以这篇文章抛开细节实现,将Linux内存管理的大概思路整理一下。Linux操作系统支持多任务系统,即(看上去)支持多任务并发处理。实际上,系统同时运行的进程数不会超过CPU数目,因此内核会在很短的时间间隔在不同的进程之间切换(用户是注意不到),从而产生同时处理多进程的假象。Linux对于每一个任务有分配一个虚拟地址空间,...

2019-03-08 18:05:42 194

原创 DHCP RFC汇总

RFC2131 https://tools.ietf.org/html/rfc2131 dhcp协议RFC2132 https://tools.ietf.org/html/rfc2132 dhcp options1 RFC 4361 https://tools.ietf.org/html/rfc4361 DUID 用来解决 希望一直保持相同ip的case...

2019-01-10 17:44:23 4068

转载 转载 列表

理解Linux 网络栈全面了解Linux TCP/IP 栈

2018-12-27 17:56:47 223

原创 初识 FreeRTOS + lwip

本文是对一些对Linux等系统有认识,但却没有接触过FreeRTOS系统的人提供一些帮助,能够了解FreeRTOS大致的一些工作原理和如何在FreeRTOS系统上开发还有网络协议栈实现等。作者对于FreeRTOS开发时间还不长,发现文中有哪些谬误,烦劳指出不胜感谢。本文大致分为以下几部分:Preface 主要描述RTOS与通用系统之间的区别和FreeRTOS系统的特性 Task Manage...

2018-12-20 09:18:10 6520

原创 Http协议 Keep-Alive连接

在HTTP1.1版本。每次连接都是默认长连接的。而在HTTP1.0版本,每个连接都是由客户端发起连接,并在服务端在发送完回应后断开连接。但有些版本通过协商(Keep-Alive)去实现长连接。一些客户端为了兼容http1.0,所以在希望长连接的时候,显示的加“Connection: keep-alive”请求头。但这在实验中证明,这样做是错误的。因为有些http 1.0服务端并不能识别“C...

2018-11-15 14:27:05 349

转载 Linux 2.6内核中新的锁机制--RCU

转自:https://www.ibm.com/developerworks/cn/linux/l-rcu/一、 引言众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用。但是随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速度在成倍地增加...

2018-10-29 14:37:36 200

原创 接收RA包自动配置IPv6地址 Linux内核实现分析

本文以Linux 4.4版本为例1 RA (Router Advertisement)IPv6地址配置和IPv4地址配置不同的一点,在执行dhcp前,会先向router发送RS包,等待路由器回复RA包。host再根据RA包的内容决定是利用DHCPv6协议想router获取IPv6地址(statefull模式),还是主机自己配置IPv6地址(stateless模式)。同样,这也是IPv6协议...

2018-10-25 13:28:42 9752

原创 ioctl配置IP地址 Linux内核实现分析

1 运行flow本文以Linux kernel3.10版本描述上图是《Understanding LINUX NETWORK INTERNALS》一书中对socket的ioctl调用的整体flow,本文只对其中SIOCSIFADDR这一个command进行flow的梳理。首先是socket的创建,这在上图中没有标识出来,大致flow如下图所示,这部分源码在 net/socket.c...

2018-10-24 14:51:27 1803

原创 Linux 时区

Issue Descriptiondate时区显示是UTC,希望显示CSTAnalysis决定时区的有/etc/localtime 和 /etc/timezone还有TZ宏可以看到 当date时,会读取TZ这个宏标识以及时间偏移Solution添加TZ宏 export TZ=CST-08:00或者 增加/etc/localtime  其实localtime中也同样有...

2018-10-24 14:46:56 215

翻译 [翻译] Chapter 8. Device Registration and Initialization 设备的注册与初始化

在第五章和第六章描述了内核如何识别NIC,以及内核如何执行NIC初始化,使NIC设备可以与设备驱动程序交互。在本章,将研究初始化的剩下的部分内容:1、什么时候 以一种什么方式注册内核网络设备2、网络设备如何注册到网络设备数据库并且得到net_device结构体分配的实例3、如何将net_device结构体组织成列表和哈希表,以满足不同类型的查找4、net_device结构体如何被初...

2018-10-24 14:37:12 164

原创 6. binary-tree-postorderTraversal 二叉树后序遍历

题目描述Given a binary tree, return the postorder traversal of its nodes' values.对给定二叉树后序遍历题目解析二叉树的后序遍历,网上很很多文章写得很好,这里不在赘述,可以用递归和遍历两个方法解决。方法一:递归方法代码如下/** * Definition for binary tree * stru...

2018-10-24 14:36:35 280

原创 RFC 2236 - 网络组播管理协议 - version 2

https://tools.ietf.org/html/rfc2236RFC 2232 协议翻译3、协议描述支持多播的路由器通过IGMP包去学习知道网络组里有哪些成员(路由器可以物理网络连接到的)。支持多播的路由器会维护一张每个可到达网络成员加入了哪些网络组的表,并且每个网络组都会附上一个定时器变量。...

2018-10-24 14:02:36 886

原创 [翻译] RFC 4861 - Neighbor Discovery for IP version 6 (IPv6)

摘要这篇文档描述的是IPv6的邻居发现协议。在同一链路层上的IPv6节点通过邻居发现去发现其他节点并决定彼此的Link-layer地址,发现路由器,还有维护可到达节点的路径信息。译者注本文档只对其中几个的章节进行翻译,RFC文档路径:https://tools.ietf.org/html/rfc4861Table of Contents 1. Introduction ....

2018-10-24 14:02:20 1395

原创 [翻译] RFC 3315 Dynamic Host Configuration Protocol for IPv6 (DHCPv6)

13. Transmission of Message by a Client 客户端的信息传输客户端使用多播传输给多个服务器或者单个服务器。客户端通过Server Identifier option(22.3)中的DUID来指示指定的服务器响应(所有的服务器都会接收到该包,但只有指定服务器会响应)。通过不设置该option来指定所有的服务器响应。客户端也可以进行单播通信(22.12)。...

2018-10-24 14:01:42 434

原创 IPv6 kernel config

kernel 4.4 kernel配置ipv6可参考如下配置1、 Networking support  ---&gt; Networking options ---&gt; [*]The IPv6 protocol2、 Networking support  ---&gt; Networking options ---&gt; Network packet filtering fra...

2018-10-15 15:55:42 2576 2

原创 使用BackTrace查看调用堆栈

有时我们遇到问题去想查看call stack时,一般利用gdb工具,断点再bt即可查看,但是很多时候也许没有条件去使用gdb工具,这时就可以利用backtrace函数。下面就对该函数进行简单的原理分析和方法介绍用法介绍按照下图的code写即可显示出调用堆栈不过需要注意的是,如果在gcc的时候 没有加上-rdynamic选项,那么在显示调用堆栈的时候,是没有显示那个函数调用的,像下图...

2018-10-10 16:26:53 13910

原创 ntpdate 和 ntpd同时打开,会导致ntpdate同步时间有误

Issue Description客户遇到一个问题,在ntpdate时,同步时间总会出现错误Analysis这个问题在平台上复现不到,初步有怀疑为网络问题不过,我有在log里看到下面这个让我比较介意:16 Jul 10:17:11 ntpdate[522]: the NTP socket is in use, exiting这是调用ntpdate之后打印的log但是在我...

2018-10-10 13:24:29 3151

翻译 [翻译] Chapter 11.  Frame Transmission 帧传输

Transmission 是 帧从Linux系统中出去的 术语,这时帧由系统发送出去或者是转发出去的情况。在本章会涉及到帧传输过程中的主要任务,有以下:1、启动和禁用帧传输2、调度网口设备传输帧3、在设备的出口队列中选择等待的下一帧进行传输4、传输本身(transmission实现函数)帧传输在很多情况下是在第十章介绍的帧接收的逆过程,比如传输的软中断是NET_TX_SOFTI...

2018-09-25 16:00:02 344

翻译 [翻译] Chapter 7. Kernel Infrastructure for Component Initialization 组件初始化的底层内核(实现)

为了完全理解内核组件,不仅需要知道内核组件做了什么,还需要知道何时调用这些例程以及由谁调用的。子系统的初始化是内核的基本处理任务之一。对基础架构的研究,可以帮助理解是如何初始化网络堆栈核心组件,包括NIC设备驱动程序。本章的目的是展示内核处理例程如何初始化内核组件,包括内核built-in组件和加载组件,尤其着重网络设备。因此,将有以下几点:1、初始化程序通过宏命名和识别2、如何根据内...

2018-09-10 21:36:20 170

翻译 [翻译] Chapter 6. The PCI Layer and Network Interface Cards PCI层和网卡

由于在x86架构和其他架构上PCI总线的普及,本章会在将会介绍内核如何管理PCI设备,尤其是网络设备。还会介绍PCI如何处理关键的内核特性比如探测和电源管理。如果想深入了解PCI,比如设备驱动程序设计、PCI总线特性和实现细节,请参考Linux Device Drivers和Understanding the Linux Kernel以及PCI标准。内核中的PCI子系统提供了所有的通用功能,常...

2018-09-10 20:52:52 147

翻译 [翻译] Section 5.7.  Initializing the Device Handling Layer: net_dev_init 设备处理层的初始化

网络初始化非常重要的一部分,其功能包括流量控制、CPU的ingress Queues。该初始化过程在boot阶段通过函数net_dev_init,在net/core/dev.c中声明static int _ _init net_dev_init(void){...}subsys_initcall(net_dev_init);查看第七章可以插件subsys_initcall如何确保...

2018-09-10 14:38:03 263

翻译 [翻译] Section 5.6. Module Options 模块选项

内核模块通过宏(比如module_param)来定义他们使用的参数模块注册函数如下例:...module_param(multicast_filter_limit, int, 0444);module_param(max_interrupt_work, int, 0444);module_param(debug, int, 0444);...最终会显示在/sys/module...

2018-08-28 11:04:07 290

翻译 [翻译] Section 5.5. Initialization Options 初始化选项

内核中的built-in组件和做为模块加载的组件都可以传递传输,以便用户可以微调组件功能或者从一个系统引导传递到下个系统。内核提供了两种宏定义选项:1、module options (module_param的宏定义)在加载模块时提供的选项。??? "Module Options"小节中会详细介绍2、Boot-time kernel options (_ _setup宏定义)这些选...

2018-08-23 15:18:35 172

翻译 [翻译] Section 5.4.  Interaction Between Devices and Kernel 设备与内核的交互

几乎所有的设备(包括NICs)都有两种方式与内核交互:polling轮询方式内核方发起。内核定期检查设备状态,看看它有什么想说的interrupt中断方式设备方发起。当需要内核处理时,设备发送IRQ信号给内核在第九章,有NIC驱动程序设计方案以及软中断的详细讨论,并且还有Linux如何使用轮询和中断的组合提高效率。在本章中只基于中断进行讨论。本书不会详细介绍硬件如何引起中断...

2018-08-23 09:56:43 172

翻译 [翻译] Section 5.3.  Basic Goals of NIC Initialization NIC初始化的基本目标

在Linux内核中的每一个网络设备都是实例化一个net_device结构体。在第八章,将会介绍net_device结构体每一个字段是如何被初始化的,一部分是由内核实现,另一部分是由驱动程序实现。在本章,将介绍驱动如何去申请内核与设备通信的资源,比如:1、IRQ线将会在“设备与内核之间交互Interaction Between Devices and Kernel”一节中详细介绍。NIC需要...

2018-08-23 09:38:39 168

翻译 [翻译] Section 5.2.  Device Registration and Initialization 设备注册与初始化

网络设备必须被内核识别,并且与正确的驱动相关联才能正确的使用。驱动存储了驱动设备以及和其他设备交互的所有信息。注册和初始化设备的任务一部分由内核完成,另一部分有驱动完成。回顾一下初始化阶段做了哪些事:1、硬件初始化这部分是驱动配合通用总线完成的(USB PCI etc..)。驱动程序会配置IO和IRQ使自己可以与内核交互。2、软件初始化在设备使用前,会根据启动和配置了哪些网络协议,...

2018-08-23 09:14:06 197

翻译 [翻译] Section 5.1. System Initialization Overview 系统初始化简介

了解网络子系统在何时被初始化是比较重要的。然而,由于这本书只覆盖了初始化网络方面,并没有涉及到通用驱动程序以及Linux service(例如内存管理)的方面。为了理解背景知识,建议阅读 Linux Device Drivers 和 Understanding the Linux Kernel,均出版自 O’Reilly.Figure 5-1展示了内核启动过程中内核子系统的初始化次序(init...

2018-08-22 17:47:41 199

翻译 [翻译]Chapter 5. Network Device Initialization 网络设备初始化

由于现代操作系统的灵活性,使得初始化过程变得更加复杂。首先,内核驱动既可以动态加载,也可以做为内核的一个静态组件。另外,设备既可以在内核刚启动时就存在,也可以在运行时加嵌或移除。后一种被称为热插拔设备,包括有USB、PCI、IEEE 1394(Apple)等。本章会介绍设备进行热插拔时,User-space和kernel-space都会做哪些操作。本章将会介绍以下几点:1、内核网络初始...

2018-08-22 16:22:35 248

翻译 [翻译]Part II: System Initialization 系统初始化

目录在本章,我们将了解网络设备初始化的实现细节,以及在Linux启动时何时去初始化网络。由于Peripheral Component Interconnect (PCI)设备的普遍性和特殊性,本章会着重于这一部分。网络能够运行前必须执行以下几部分:1、内核关键组件初始化2、设备驱动初始化和注册,分配内核资源与设备交互(IRQ、IO port etc)以下为各章节介绍:第四章...

2018-08-22 15:50:34 751

cvetestcode.rar

CVE-2019-11477 test code,用来测试漏洞。可以对code进行复制、修改等操作。仅用于参考,不作为商业用途,如有问题不承担任何责任。

2020-07-20

FreeRTOS+lwip 讲义

freeRTOS 与 LwIP介绍讲义,精心制作,借用请注明出处

2018-12-17

CS 120 Homework Turnin 1

CS 120 Homework Turnin long1 and long2 Maybe you can use

2018-08-31

Python-2.7.13.tar.xz

下载慢的可以在这下载

2017-01-04

ncurses-5.9.tar.gz

2016-11-22

gdb-7.8.1.tar.gz

因为官网下载较慢。分享

2016-11-22

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

TA关注的人

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