RTFSC
文章平均质量分 96
Vinc
溪云初起日沉阁,山雨欲来风满楼。
展开
-
GRUB4DOS(十二)适用于FAT32的分区引导扇区启动代码
/* 这份代码将编译后将放到GRLDR文件的0x400开始的地方(即第三个扇区) * 这个扇区的内容将被塞到分区引导扇区 * 其中0x00-0x59见文章下方表1。 * 0x5a - 0x1fc放引导代码。 * 最后两个字节固定是0xAA55。 * * 这份代码将加载到0000:7C00执行。 * 作用是在一个fat32分区中寻找根目录下的GRLD...翻译 2020-02-21 00:07:01 · 1125 阅读 · 0 评论 -
GRUB4DOS(八)map命令用法和基本原理
map用法:"map [--status] [--mem[=RESERV]] [--hook] [--unhook] [--unmap=DRIVES] [--rehook] [--floppies=M] [--harddrives=N] [--memdisk-raw=RAW] [--a20-keep-on=AKO] [--safe-mbr-hook=SMH] [--int13-scheme=S...原创 2020-02-13 17:49:56 · 2086 阅读 · 0 评论 -
GRUB4DOS(七) chainloader命令源码注释
chainloader命令的使用方法:"chainloader [--force] [--load-segment=LS] [--load-offset=LO][--load-length=LL] [--skip-length=SL] [--boot-cs=CS] [--boot-ip=IP][--ebx=EBX] [--edx=EDX] [--sdi] [--disable-a20]...原创 2020-02-11 22:26:00 · 2239 阅读 · 0 评论 -
GRUB4DOS(六) find命令的实现
find命令的使用方法:"find [--set-root[=DIR]] [--devices=DEVLIST] [--ignore-floppies] [--ignore-cd] [FILENAME] [CONDITION]",说明:在所有设备的所有分区中搜索文件名“ FILENAME”(首先在当前启动设备上寻找),打印包含该文件并满足“ CONDITION”要求的设备列表。 “ C...原创 2020-02-10 17:23:41 · 1997 阅读 · 0 评论 -
GRUB(五)stage2.c注释
接上一篇,最后调用的函数是cmain(),这个函数在stage2.c中定义。在cmain()中主要做以下事情:寻找启动菜单配置文件。 如找不到则尝试寻找程序中的内置菜单。 如果找到则尝试解析并执行该启动菜单配置中的脚本。 如两者都没有找到,则进入命令行模式。主要函数如下//void//reset (void);static int config_len, menu_le...原创 2020-02-10 02:11:47 · 596 阅读 · 0 评论 -
GRUB(四)common.c注释
接上一篇,asm.s中main函数最后调用的是init_bios_info,这个函数将调用bios中断功能读取内存,磁盘,cdrom等信息。其实现如下:/* This queries for BIOS information. */voidinit_bios_info(void){#ifndef STAGE1_5 unsigned long cont, memtmp, addr;...原创 2020-02-08 23:48:17 · 558 阅读 · 0 评论 -
GRUB(三) ASM.S注释
ASM.S生成的代码将放置到第三扇区,紧跟Start.S生成的第二扇区代码。如上一篇代码中展现的这个代码将被start.s加载到内存地址的0x8200或者0x2200中执行。#define ASM_FILE#include "shared.h"#ifdef STAGE1_5# define ABS(x) ((x) - EXT_C(main) + 0x2200)#els...原创 2020-02-08 16:32:11 · 512 阅读 · 0 评论 -
GRUB(二) 扇区1的引导代码注释(start.S)
/* * GRUB -- GRand Unified Bootloader * Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under th...原创 2020-02-06 18:50:42 · 519 阅读 · 0 评论 -
GRUB(一) stage1.S源码分析
/* -*-Asm-*- */#include <stage1.h>/*BIOS 自检后将MBR加载到0x7C00,ABS(x)计算地址x在内存中的绝对地址*/#define ABS(x) (x-_start+0x7c00)/* Print message string */#define MSG(x) movw $ABS(x), %si; call message...原创 2020-02-04 23:41:57 · 692 阅读 · 0 评论 -
libed2k源码导读:(五)文件读写
第五章 文件读写5.1 文件总览libedk文件对象一览。transfer 代表一个传输任务,一个传输任务通常只有一个文件。原始ed2k不支持目录下载 piece_picker 分片选择器 piece_manager 分片管理器 storage_interface 文件操作接口 disk_io_thread 异步读写文件线程 file_storage 文件对...原创 2020-01-18 18:03:51 · 604 阅读 · 0 评论 -
libed2k源码导读:(四)P2P消息
目录第四章 P2P消息4.1 libed2k p2p 连接工作流4.2 HELLO和HELLO answer4.2.1消息定义4.2.2 收取Hello和helloAnswer消息4.2.3 发送hello和helloAnswer消息4.2.4 client_ext_hello和client_ext_hello_answer4.3 文件请求4.3.1 文件...原创 2020-01-18 17:25:50 · 473 阅读 · 0 评论 -
libed2k源码导读:(三)网络IO
目录第三章 网络IO3.1 数据序列化和反序列化3.1.1 以向服务器发送数据为例3.1.2 序列化和反序列化对象的细节3.1.3 序列化集合类对象3.1.4 Tag,tag_list和它们的序列化3.2 和emule服务器的网络通信实现3.3 其他发送给服务器的消息3.3.1 登录消息及其响应3.3.2 服务器消息(Server message)...原创 2020-01-17 23:35:29 · 431 阅读 · 0 评论 -
libed2k源码导读:(二)Session接口以及实现分析
第二章 Session接口以及实现分析目录第二章 Session接口以及实现分析2.1 获取会话状态2.2 管理会话中所有的传输任务2.3 管理点对点连接2.4 管理alert2.4.1 alert介绍2.4.2 当前已定义的alert2.4.3 在程序中接收和处理alert2.4.4 其他和alert有关的接口2.5 在服务器上查找文件2.5.1 ...原创 2020-01-16 22:55:29 · 508 阅读 · 0 评论 -
libed2k源码导读:(一)从ed2k链接开始
第一章的目的是大致了解libed2k怎么使用,libed2k库自带了一个测试工程conn,这一章我们将分析conn,让从我们最关心的下载文件开始。1.1 解析ed2k链接通常在网上分享的电驴资源时都是通过ed2k链接的方式,ED2K链接格式为:ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557...原创 2020-01-16 12:26:57 · 2223 阅读 · 0 评论