代码改变世界

随笔分类 -  Linux

浅析Linux操作系统工作的基础

2013-06-29 21:32 by Rudrj2, 1756 阅读, 收藏, 编辑
摘要: 环境:lubuntu 13.04 kernel 3.9.7作者:SA12226265 katao简介:本文根据 Linux™ 系统工作基础的分析,对存储程序计算机、堆栈(函数调用堆栈)机制和中断机制进行概述。文中将为您提供操作系统(内核)如何工作的细节,进一步从宏观概述结合关键点进行微观(CS:EIP、EBP/ESP等的变化)分析。一、存储程序计算机 首先让我们了解一下,什么是存储程序计算机,并对存储程序计算机的整个运行过程及所需的硬件组件进行简... 阅读全文

浅析Linux计算机进程地址空间与内核装载ELF

2013-05-30 22:28 by Rudrj2, 6883 阅读, 收藏, 编辑
摘要: 环境:lubuntu 13.04 kernel 3.8 gcc 4.7.3作者: SA12226265简介: 本文基于Linux™系统对进程创建与加载进行分析,文中实现了Linux库函数fork、exec,剖析内核态执行过程,并进一步展示进程创建过程中进程控制块字段变化信息及ELF文件加载过程。一、初识Linux进程 进程这个概念是针对系统而不是针对用户的,对用户来说,他面对的概念是程序。当用户敲入命令执行一个程序的时候... 阅读全文

浅析Linux计算机工作机制

2013-05-17 02:11 by Rudrj2, 2126 阅读, 收藏, 编辑
摘要: 环境:lubuntu 13.04 kernel 3.8 gcc 4.7.3作者:卡涛 SA12226265简介:本文将对 Linux™ 系统计算机的工作机制进行简单概述。文中将为您提供单任务系统如何工作的细节,然后将进一步展示汇编指令在CPU的运行过程,以及由单任务向多任务处理的扩展。♦ gcc用法参考(*表示文件名)– gcc –E –o *.cpp *.c 生成预处理文件– gcc –x cpp-output –S –o *.s *.cpp• gcc –S –o *.s *.c 编译成汇编– gcc –x assembler –c *.s -o *.o• gcc –c *.c -o ... 阅读全文

system()与execv()函数使用详解

2012-12-05 12:12 by Rudrj2, 32367 阅读, 收藏, 编辑
摘要: 在网上搜了很久都没有一个很好的解释,都只说了一方面system调用子进程后继续执行父进程,execv是调用一个新的进程,所以打算自己读读这两个执行文件源码,自己再找找其他不同: 相关函数: fork,execl,execle,execlp,execv,execvp 表头文件: #include<unistd.h> 定义函数: int execve(const char * filename,char * const argv[ ],char * const envp[ ]); 函数说明: execve()用来执行参数filename字符串所代表的文件路径,第二个参数系利用数组指针来 阅读全文

古老Ubuntu 安装 EDB 的奇葩旅程

2012-11-25 00:38 by Rudrj2, 2100 阅读, 收藏, 编辑
摘要: ubuntu下安装edb在如下地址下载:http://www.codef00.com/projects#Debugger$ sudo apt-get install libqt4-dev$ sudo apt-get install libboost1.40-all-dev或者:$sudo apt-get install libboost$ tar zxvf debugger-0.9.18.tgz$ mv debugger /usr/local/src/$ cd /usr/local/src/debugger$ qmake -makefile DEFAULT_PLUGIN_PATH=" 阅读全文

EVP_DigestInit(3)源码解析

2012-11-20 19:16 by Rudrj2, 3355 阅读, 收藏, 编辑
摘要: 由于今天做密码学实验需要去验证HASH函数的单向属性和抗碰撞属性,设计了一个用暴力破解的方法来查看使用多长时间来打破这两种属性,需要编写C函数来调用openssl库函数中的digest方法,查看EVP_DigestInit得到启发。以下是EVP_DigestInit(3)的源码解析: 1 本例子是openssl帮助文档提供的。该例子根据命令行输入的信息摘要算法名字对"Test Message\n"和"Hello World\n"字符串进行信息摘要操作。 2 #include <stdio.h> 3 #include <openssl/e 阅读全文

最优非对称加密填充(OAEP)

2012-11-19 23:55 by Rudrj2, 19835 阅读, 收藏, 编辑
摘要: 下面是从OPENSSL上截取的rsa_oaep.c的源码:View Code 1 #if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA1) 2 #include <stdio.h> 3 #include "cryptlib.h" 4 #include <openssl/bn.h> 5 #include <openssl/rsa.h> 6 #include <openssl/evp.h> 7 #include <openssl/rand.h> 阅读全文