02 2012 档案

摘要:转自CU这也是让我们更深入的理解此FREE命令,及linux内核处理内存的机制了:我的linux执行free命令显示如下:[root@Linux /tmp]# free total used free shared buffers cachedMem: 4149156 4130412 18744 0 13220 2720160-/+ buffers/cache: 1397032 2752124Swap: 6289408 144 6289264第1行total 内存总数: 4149156used 已经使用的内存数: 4130412free 空闲的内存... 阅读全文
posted @ 2012-02-28 20:21 yarpee 编辑
摘要:几个比较流行的虚拟机的实现 * V8 (Javascript) * Tamarin (ActionScript 3) * Lua 5.0 * CPython (Python 2.7.2)虚拟机的实现可以有2种方式: * Interpreting (解释执行) 也就是通过类似while() { switch() {} }的循环,分析中间语言的每条指令,动态解释执行 * Binary Translation (这个名词大家可能比较陌生,它还有一个大家更加熟知的名字:JIT) 顾名思义,就是虚拟机实现了从中间语言,到可执行文件的转换的功能,在运行时,将中间语言转换成了可执行文件,最终执行两种计算模型 阅读全文
posted @ 2012-02-28 16:24 yarpee 编辑
摘要:1.Python中的对象模型python中所有东西都是对象class对象:表示Python内置的类型和定义的类型instance对象(实例对象):表示由class对象创建的实例1.1 对象间的关系is-kind-of关系:对应于面向对象中的基类与子类之间的关系is-instance-of关系:对应于面向对象中类与实例之间的关系<class A>表示名为A的class对象<instance a>表示名为a的instance对象class A 定义了一个名为A的classclass 对象表示在Python中的实现通过对象的__class__属性或Python内置的type方 阅读全文
posted @ 2012-02-27 20:54 yarpee 编辑
摘要:Python虚拟机中的函数机制x86平台上函数调用发生时,系统会在运行时栈中创建新的栈帧,用于函数的执行在Python中,PyFrameObject对象是对栈帧的模拟,Python虚拟机在执行函数调用时会动态地创建新的PyFrameObject对象。随着函数调用链的增长,这些PyFrameObject对象之间也会连接成一条PyFrameObject对象链。1.PyFunctionObject对象在Python中,任何东西都是一个对象,函数也不例外函数是通过PyFunctionObject来实现的typedef struct {PyObject_HEADPyObject *func_code; 阅读全文
posted @ 2012-02-26 11:04 yarpee 编辑
摘要:struct Student{ int id; float stor; }; struct scool{ int id; int count; Student A; //嵌套另一个结构体,应该没问题}; struct scool{ int id; int count; scool A; //嵌套自身,出现问题!}; struct scool{ int id; int count; scool *A; //定义为指针,问题消失!};结构体不能嵌套(自己),只能通过指针的方式。假如定义了一个结构 体:struct test {int a, float b ,t... 阅读全文
posted @ 2012-02-22 16:33 yarpee 编辑
摘要:连接操作符(+)seq1+seq2,把两个序列内容合并的概念,但是这个操作不是最快或者最有效的相比而言,把所有的子字符串放到一个列表或可迭代对象中,然后调用join把所有的内容连接在一起节约内存对列表来说,推荐使用列表类型的extend()方法来把两个或者多个列表对象合并 阅读全文
posted @ 2012-02-21 20:07 yarpee 编辑
摘要:$ cat ifname.c#include <stdio.h>#include <sys/socket.h>#include <sys/ioctl.h>#include <errno.h>#include <string.h>#include <net/if.h>#include <netinet/ether.h>int main(int argc,char **argv){ int s; struct ifreq ifr; if (argc != 3) { fprintf(stderr,"Usag 阅读全文
posted @ 2012-02-19 21:27 yarpee 编辑
摘要:内核编写基础使用global、extern,使C和汇编语言之间来回切换实例:demo1.cvoid myprintf(char* msg,int len);int demo(int a){if(a == 2){myprintf("ok,equal\n",10);}else{myprintf("no,wahaha\n",11);}}demo2.asmextern demo[section .data]numa dd 2[section .text]global _startglobal myprintf_start:push dword [numa]cal 阅读全文
posted @ 2012-02-14 21:14 yarpee 编辑
摘要:http://blog.donews.com/qiaolin/archive/2006/11/07/1073617.aspx 阅读全文
posted @ 2012-02-13 18:07 yarpee 编辑
摘要://每一个支持802.1q协议的主机,在发送数据包时,都在原来的以太网帧头中的源地址后增加了一个4字节的802.1q帧头#define VLAN_HLEN 4 /* The additional bytes (on top of the Ethernet header) * that VLAN requires. *///VLAN以太网头部的地址长度字节#define VLAN_ETH_ALEN 6 /* Octets in one ethernet addr *///VLAN以太网头部的长度字节#define VLAN_ETH_HLEN 18 /* Total octets in heade 阅读全文
posted @ 2012-02-06 21:16 yarpee 编辑
摘要:需要学习的方向:1. Linux协议栈的彻底学习以及相关的协议栈漏洞的研究2. 加强基础知识学习 (操作系统,算法,数据结构)3. 加强英语学习4. 加强逆向调试能力,开始加强对协议分析的理解,5. 加强网络安全学习 (漏洞挖掘,漏洞利用)6.加强内核的学习需要动手的例子:1.实际crackme的练习,每天都要练习一下,坚持下来2.实际操作系统的编写,争取今年完成一个小型操作系统的编写3.内核的分析,输出分析文档4.协议分析,加强各类的学习分析2012年重点在于对协议栈的理解,对逆向的理解,对漏洞的理解 阅读全文
posted @ 2012-02-03 09:57 yarpee 编辑
摘要:http://hi.baidu.com/lettoo/blog/item/6980f086b8223a2b67096ef7.htmlhttp://www.codegood.com/archives/1292.7的经常不行,这个好用 阅读全文
posted @ 2012-02-02 16:53 yarpee 编辑