Linux tracing之内核vsyscall&vdso机制分析

由于Linux内核运行在受保护的地址空间上,系统中的用户空间程序无法直接跳转到内核代码执行,也就是由于权限的限制,用户程序不能直接调用内核的函数,因此,需要一种机制使应用程序可以某种方式通知内核,使应用程序的执行流进入内核态,这样内核就可以代表应用程序在内核空间执行系统调用。这有点像机场的安检通道,旅客不但只能通过有限的几个通道进入,还要经过严格的安全检查。

但是,安全和效率往往是一体两面,在linux内核中发起一个系统调用是特别昂贵的操作,因为处理器需要中断当前正在执行的任务,执行一系列的操作才能执行真正调用的函数,这些操作包括切换CPU运行模式,陷入内核,保存用户现场,可以看到是非常复杂的。针对这种情况,vsyscall和vdso被设计用来加速系统调用处理。我们先分析一下vsyscall.

vsyscall

vsyscall或virtual system call是一种用于加速系统调用的机制,vsyscall的工作原理其实非常简单,linux内核在用户空间映射一个包含一些变量以及一些系统调用代码实现的内存页,这个页面虽然映射在内核空间,但是可以允许从用户空间直接访问,这样避免了透过用户态运行库进行系统调用的开销。对于X86_64架构可以在Linux内核文档中找到关于这一内存区的细节:

Documentation/x86/x86_64/mm.rst

为什么是ffffffffff600000-ffffffffff601000,这个答案可以在内核中找到。

#include <stdio.h>
#include <stdlib.h>

#define VSYSCALL_ADDR (-10UL << 20)
int main(void)
{
	printf("%s line %d, VSYSCALL_ADDR=0x%lx.\n", __func__, __LINE__, VSYSCALL_ADDR);
	return 0;
}

内核中的处理过程

start_kernel
    \___setup_arch
             \___map_vsyscall
                      \___ __set_fix_map(VSYSCALL_PAGE,...)
                                 \___native_set_fixmap
                                             \___ __native_set_fixmap(idx,...)
                                                           \___set_pte_vaddr(address, pte);

arch/x86/entry/vsyscall/vsyscall_64.c:

map_vsyscall函数的实现依赖于内核配置选项CONFIG_X86_VSYSCALL_EMULATION

为何是模拟vsyscall?事实上,由于历史原因,vsyscall是一种遗留ABI,vsyscall调用具有绑定的地址,意味着vsyscall的内存页的位置在任何时刻是相同的,这一位置是在上面的头文件中由VSYSCALL_ADDR宏定义的,在map_vsyscall函数的开始,通过宏__pa_symbol获取了vsyscall内存页的物理地址,__vsyscall_page在arch/x86/entry/vsyscall/vsyscall_emu_64.S中定义,具有如下的虚拟地址。

 其中包含了用户态最常用的三个系统调用gettimeofday, time, getcpu.注意虚拟系统调用的地址以1024 byte对齐,中间填充0xcc(int3指令).因为要放在一个独立的页面中,映射,要求vsyscall页面按PAGE对齐:

vsyscall内存页的起始地址为0xffffffffff600000,因此,用户态LIBC知道所有的虚拟系统调用的地址,可以在LIBC源码中找到这些地址的定义:

回到map_vsyscall函数及__vsysall_page的实现,在得到__vsyscall_page的物理地址后,再进行映射。map_vsyscall映射时,会判断vsyscall_mode变量,根据模式的不同,选择不同的映射属性。

vsyscall_mode在系统启动阶段通过命令行参数初始化:

如果vsyscall_mode被设置为映射的vsyscall页面不允许执行,则用户态通过vsyscall table发起的三个系统调用会产生PAGE FAULT,在vsyscall_64.c中,page fault会调用emulate_vsyscall函数对VSYSCALL进行模拟:

__do_page_fault->do_user_addr_fault->emulate_vsyscall:

GDB DUMP VSYSCALL代码

如下方式使用GDB DUMP代码失败,因为映射的VSYSCALL页面不可读。

这是由于默认在内核启动时vsyscall_mode被设置成了XONLY

而我们可以在启动阶段传入命令行参数,修改/etc/default/grub将 vsyscall_mode设置为emulate,之后update grub.

还有一步需要注意,我们需要修改vsyscall的映射属性,因为默认的emulate仍然是不可读的,会触发page fault由emulate_vsyscall来模拟的路径,vsyscall page的映射属性由宏PAGE_KERNEL_VVAR控制,我们按照下图修改,重新编译内核:

之后重新修改编译内核,用新的内核启动系统,可以看到,修改成功:

再次DUMP,这次成功拿到vsyscall镜像:

反编译VSYSCALL页面:

objdump -b binary -Mintel,x86-64,addr64 -m i386:x86-64 --adjust-vma=0xffffffffff600000 -D vsyscall.bin

可以看到,从实际的VSYSCALL页面DUMP出来的三个系统调用地址分配在0xffffffffff600000,ffffffffff600400,0xffffffffff600800.和预期相符。


vsyscall.bin:     文件格式 binary


Disassembly of section .data:

ffffffffff600000 <.data>:
ffffffffff600000:	48 c7 c0 60 00 00 00 	mov    rax,0x60
ffffffffff600007:	0f 05                	syscall 
ffffffffff600009:	c3                   	ret    
ffffffffff60000a:	cc                   	int3   
ffffffffff60000b:	cc                   	int3   
ffffffffff60000c:	cc                   	int3   
ffffffffff60000d:	cc                   	int3   
ffffffffff60000e:	cc                   	int3   
ffffffffff60000f:	cc                   	int3   
ffffffffff600010:	cc                   	int3   
ffffffffff600011:	cc                   	int3   
ffffffffff600012:	cc                   	int3   
ffffffffff600013:	cc                   	int3   
ffffffffff600014:	cc                   	int3   
ffffffffff600015:	cc                   	int3   
ffffffffff600016:	cc                   	int3   
ffffffffff600017:	cc                   	int3   
ffffffffff600018:	cc                   	int3   
ffffffffff600019:	cc                   	int3   
ffffffffff60001a:	cc                   	int3   
ffffffffff60001b:	cc                   	int3   
ffffffffff60001c:	cc                   	int3   
ffffffffff60001d:	cc                   	int3   
ffffffffff60001e:	cc                   	int3   
ffffffffff60001f:	cc                   	int3   
ffffffffff600020:	cc                   	int3   
ffffffffff600021:	cc                   	int3   
ffffffffff600022:	cc                   	int3   
ffffffffff600023:	cc                   	int3   
ffffffffff600024:	cc                   	int3   
ffffffffff600025:	cc                   	int3   
ffffffffff600026:	cc                   	int3   
ffffffffff600027:	cc                   	int3   
ffffffffff600028:	cc                   	int3   
ffffffffff600029:	cc                   	int3   
ffffffffff60002a:	cc                   	int3   
ffffffffff60002b:	cc                   	int3   
ffffffffff60002c:	cc                   	int3   
ffffffffff60002d:	cc                   	int3   
ffffffffff60002e:	cc                   	int3   
ffffffffff60002f:	cc                   	int3   
ffffffffff600030:	cc                   	int3   
ffffffffff600031:	cc                   	int3   
ffffffffff600032:	cc                   	int3   
ffffffffff600033:	cc                   	int3   
ffffffffff600034:	cc                   	int3   
ffffffffff600035:	cc                   	int3   
ffffffffff600036:	cc                   	int3   
ffffffffff600037:	cc                   	int3   
ffffffffff600038:	cc                   	int3   
ffffffffff600039:	cc                   	int3   
ffffffffff60003a:	cc                   	int3   
ffffffffff60003b:	cc                   	int3   
ffffffffff60003c:	cc                   	int3   
ffffffffff60003d:	cc                   	int3   
ffffffffff60003e:	cc                   	int3   
ffffffffff60003f:	cc                   	int3   
ffffffffff600040:	cc                   	int3   
ffffffffff600041:	cc                   	int3   
ffffffffff600042:	cc                   	int3   
ffffffffff600043:	cc                   	int3   
ffffffffff600044:	cc                   	int3   
ffffffffff600045:	cc                   	int3   
ffffffffff600046:	cc                   	int3   
ffffffffff600047:	cc                   	int3   
ffffffffff600048:	cc                   	int3   
ffffffffff600049:	cc                   	int3   
ffffffffff60004a:	cc                   	int3   
ffffffffff60004b:	cc                   	int3   
ffffffffff60004c:	cc                   	int3   
ffffffffff60004d:	cc                   	int3   
ffffffffff60004e:	cc                   	int3   
ffffffffff60004f:	cc                   	int3   
ffffffffff600050:	cc                   	int3   
ffffffffff600051:	cc                   	int3   
ffffffffff600052:	cc                   	int3   
ffffffffff600053:	cc                   	int3   
ffffffffff600054:	cc                   	int3   
ffffffffff600055:	cc                   	int3   
ffffffffff600056:	cc                   	int3   
ffffffffff600057:	cc                   	int3   
ffffffffff600058:	cc                   	int3   
ffffffffff600059:	cc                   	int3   
ffffffffff60005a:	cc                   	int3   
ffffffffff60005b:	cc                   	int3   
ffffffffff60005c:	cc                   	int3   
ffffffffff60005d:	cc                   	int3   
ffffffffff60005e:	cc                   	int3   
ffffffffff60005f:	cc                   	int3   
ffffffffff600060:	cc                   	int3   
ffffffffff600061:	cc                   	int3   
ffffffffff600062:	cc                   	int3   
ffffffffff600063:	cc                   	int3   
ffffffffff600064:	cc                   	int3   
ffffffffff600065:	cc                   	int3   
ffffffffff600066:	cc                   	int3   
ffffffffff600067:	cc                   	int3   
ffffffffff600068:	cc                   	int3   
ffffffffff600069:	cc                   	int3   
ffffffffff60006a:	cc                   	int3   
ffffffffff60006b:	cc                   	int3   
ffffffffff60006c:	cc                   	int3   
ffffffffff60006d:	cc                   	int3   
ffffffffff60006e:	cc                   	int3   
ffffffffff60006f:	cc                   	int3   
ffffffffff600070:	cc                   	int3   
ffffffffff600071:	cc                   	int3   
ffffffffff600072:	cc                   	int3   
ffffffffff600073:	cc                   	int3   
ffffffffff600074:	cc                   	int3   
ffffffffff600075:	cc                   	int3   
ffffffffff600076:	cc                   	int3   
ffffffffff600077:	cc                   	int3   
ffffffffff600078:	cc                   	int3   
ffffffffff600079:	cc                   	int3   
ffffffffff60007a:	cc                   	int3   
ffffffffff60007b:	cc                   	int3   
ffffffffff60007c:	cc                   	int3   
ffffffffff60007d:	cc                   	int3   
ffffffffff60007e:	cc                   	int3   
ffffffffff60007f:	cc                   	int3   
ffffffffff600080:	cc                   	int3   
ffffffffff600081:	cc                   	int3   
ffffffffff600082:	cc                   	int3   
ffffffffff600083:	cc                   	int3   
ffffffffff600084:	cc                   	int3   
ffffffffff600085:	cc                   	int3   
ffffffffff600086:	cc                   	int3   
ffffffffff600087:	cc                   	int3   
ffffffffff600088:	cc                   	int3   
ffffffffff600089:	cc                   	int3   
ffffffffff60008a:	cc                   	int3   
ffffffffff60008b:	cc                   	int3   
ffffffffff60008c:	cc                   	int3   
ffffffffff60008d:	cc                   	int3   
ffffffffff60008e:	cc                   	int3   
ffffffffff60008f:	cc                   	int3   
ffffffffff600090:	cc                   	int3   
ffffffffff600091:	cc                   	int3   
ffffffffff600092:	cc                   	int3   
ffffffffff600093:	cc                   	int3   
ffffffffff600094:	cc                   	int3   
ffffffffff600095:	cc                   	int3   
ffffffffff600096:	cc                   	int3   
ffffffffff600097:	cc                   	int3   
ffffffffff600098:	cc                   	int3   
ffffffffff600099:	cc                   	int3   
ffffffffff60009a:	cc                   	int3   
ffffffffff60009b:	cc                   	int3   
ffffffffff60009c:	cc                   	int3   
ffffffffff60009d:	cc                   	int3   
ffffffffff60009e:	cc                   	int3   
ffffffffff60009f:	cc                   	int3   
ffffffffff6000a0:	cc                   	int3   
ffffffffff6000a1:	cc                   	int3   
ffffffffff6000a2:	cc                   	int3   
ffffffffff6000a3:	cc                   	int3   
ffffffffff6000a4:	cc                   	int3   
ffffffffff6000a5:	cc                   	int3   
ffffffffff6000a6:	cc                   	int3   
ffffffffff6000a7:	cc                   	int3   
ffffffffff6000a8:	cc                   	int3   
ffffffffff6000a9:	cc                   	int3   
ffffffffff6000aa:	cc                   	int3   
ffffffffff6000ab:	cc                   	int3   
ffffffffff6000ac:	cc                   	int3   
ffffffffff6000ad:	cc                   	int3   
ffffffffff6000ae:	cc                   	int3   
ffffffffff6000af:	cc                   	int3   
ffffffffff6000b0:	cc                   	int3   
ffffffffff6000b1:	cc                   	int3   
ffffffffff6000b2:	cc                   	int3   
ffffffffff6000b3:	cc                   	int3   
ffffffffff6000b4:	cc                   	int3   
ffffffffff6000b5:	cc                   	int3   
ffffffffff6000b6:	cc                   	int3   
ffffffffff6000b7:	cc                   	int3   
ffffffffff6000b8:	cc                   	int3   
ffffffffff6000b9:	cc                   	int3   
ffffffffff6000ba:	cc                   	int3   
ffffffffff6000bb:	cc                   	int3   
ffffffffff6000bc:	cc                   	int3   
ffffffffff6000bd:	cc                   	int3   
ffffffffff6000be:	cc                   	int3   
ffffffffff6000bf:	cc                   	int3   
ffffffffff6000c0:	cc                   	int3   
ffffffffff6000c1:	cc                   	int3   
ffffffffff6000c2:	cc                   	int3   
ffffffffff6000c3:	cc                   	int3   
ffffffffff6000c4:	cc                   	int3   
ffffffffff6000c5:	cc                   	int3   
ffffffffff6000c6:	cc                   	int3   
ffffffffff6000c7:	cc                   	int3   
ffffffffff6000c8:	cc                   	int3   
ffffffffff6000c9:	cc                   	int3   
ffffffffff6000ca:	cc                   	int3   
ffffffffff6000cb:	cc                   	int3   
ffffffffff6000cc:	cc                   	int3   
ffffffffff6000cd:	cc                   	int3   
ffffffffff6000ce:	cc                   	int3   
ffffffffff6000cf:	cc                   	int3   
ffffffffff6000d0:	cc                   	int3   
ffffffffff6000d1:	cc                   	int3   
ffffffffff6000d2:	cc                   	int3   
ffffffffff6000d3:	cc                   	int3   
ffffffffff6000d4:	cc                   	int3   
ffffffffff6000d5:	cc                   	int3   
ffffffffff6000d6:	cc                   	int3   
ffffffffff6000d7:	cc                   	int3   
ffffffffff6000d8:	cc                   	int3   
ffffffffff6000d9:	cc                   	int3   
ffffffffff6000da:	cc                   	int3   
ffffffffff6000db:	cc                   	int3   
ffffffffff6000dc:	cc                   	int3   
ffffffffff6000dd:	cc                   	int3   
ffffffffff6000de:	cc                   	int3   
ffffffffff6000df:	cc                   	int3   
ffffffffff6000e0:	cc                   	int3   
ffffffffff6000e1:	cc                   	int3   
ffffffffff6000e2:	cc                   	int3   
ffffffffff6000e3:	cc                   	int3   
ffffffffff6000e4:	cc                   	int3   
ffffffffff6000e5:	cc                   	int3   
ffffffffff6000e6:	cc                   	int3   
ffffffffff6000e7:	cc                   	int3   
ffffffffff6000e8:	cc                   	int3   
ffffffffff6000e9:	cc                   	int3   
ffffffffff6000ea:	cc                   	int3   
ffffffffff6000eb:	cc                   	int3   
ffffffffff6000ec:	cc                   	int3   
ffffffffff6000ed:	cc                   	int3   
ffffffffff6000ee:	cc                   	int3   
ffffffffff6000ef:	cc                   	int3   
ffffffffff6000f0:	cc                   	int3   
ffffffffff6000f1:	cc                   	int3   
ffffffffff6000f2:	cc                   	int3   
ffffffffff6000f3:	cc                   	int3   
ffffffffff6000f4:	cc                   	int3   
ffffffffff6000f5:	cc                   	int3   
ffffffffff6000f6:	cc                   	int3   
ffffffffff6000f7:	cc                   	int3   
ffffffffff6000f8:	cc                   	int3   
ffffffffff6000f9:	cc                   	int3   
ffffffffff6000fa:	cc                   	int3   
ffffffffff6000fb:	cc                   	int3   
ffffffffff6000fc:	cc                   	int3   
ffffffffff6000fd:	cc                   	int3   
ffffffffff6000fe:	cc                   	int3   
ffffffffff6000ff:	cc                   	int3   
ffffffffff600100:	cc                   	int3   
ffffffffff600101:	cc                   	int3   
ffffffffff600102:	cc                   	int3   
ffffffffff600103:	cc                   	int3   
ffffffffff600104:	cc                   	int3   
ffffffffff600105:	cc                   	int3   
ffffffffff600106:	cc                   	int3   
ffffffffff600107:	cc                   	int3   
ffffffffff600108:	cc                   	int3   
ffffffffff600109:	cc                   	int3   
ffffffffff60010a:	cc                   	int3   
ffffffffff60010b:	cc                   	int3   
ffffffffff60010c:	cc                   	int3   
ffffffffff60010d:	cc                   	int3   
ffffffffff60010e:	cc                   	int3   
ffffffffff60010f:	cc                   	int3   
ffffffffff600110:	cc                   	int3   
ffffffffff600111:	cc                   	int3   
ffffffffff600112:	cc                   	int3   
ffffffffff600113:	cc                   	int3   
ffffffffff600114:	cc                   	int3   
ffffffffff600115:	cc                   	int3   
ffffffffff600116:	cc                   	int3   
ffffffffff600117:	cc                   	int3   
ffffffffff600118:	cc                   	int3   
ffffffffff600119:	cc                   	int3   
ffffffffff60011a:	cc                   	int3   
ffffffffff60011b:	cc                   	int3   
ffffffffff60011c:	cc                   	int3   
ffffffffff60011d:	cc                   	int3   
ffffffffff60011e:	cc                   	int3   
ffffffffff60011f:	cc                   	int3   
ffffffffff600120:	cc                   	int3   
ffffffffff600121:	cc                   	int3   
ffffffffff600122:	cc                   	int3   
ffffffffff600123:	cc                   	int3   
ffffffffff600124:	cc                   	int3   
ffffffffff600125:	cc                   	int3   
ffffffffff600126:	cc                   	int3   
ffffffffff600127:	cc                   	int3   
ffffffffff600128:	cc                   	int3   
ffffffffff600129:	cc                   	int3   
ffffffffff60012a:	cc                   	int3   
ffffffffff60012b:	cc                   	int3   
ffffffffff60012c:	cc                   	int3   
ffffffffff60012d:	cc                   	int3   
ffffffffff60012e:	cc                   	int3   
ffffffffff60012f:	cc                   	int3   
ffffffffff600130:	cc                   	int3   
ffffffffff600131:	cc                   	int3   
ffffffffff600132:	cc                   	int3   
ffffffffff600133:	cc                   	int3   
ffffffffff600134:	cc                   	int3   
ffffffffff600135:	cc                   	int3   
ffffffffff600136:	cc                   	int3   
ffffffffff600137:	cc                   	int3   
ffffffffff600138:	cc                   	int3   
ffffffffff600139:	cc                   	int3   
ffffffffff60013a:	cc                   	int3   
ffffffffff60013b:	cc                   	int3   
ffffffffff60013c:	cc                   	int3   
ffffffffff60013d:	cc                   	int3   
ffffffffff60013e:	cc                   	int3   
ffffffffff60013f:	cc                   	int3   
ffffffffff600140:	cc                   	int3   
ffffffffff600141:	cc                   	int3   
ffffffffff600142:	cc                   	int3   
ffffffffff600143:	cc                   	int3   
ffffffffff600144:	cc                   	int3   
ffffffffff600145:	cc                   	int3   
ffffffffff600146:	cc                   	int3   
ffffffffff600147:	cc                   	int3   
ffffffffff600148:	cc                   	int3   
ffffffffff600149:	cc                   	int3   
ffffffffff60014a:	cc                   	int3   
ffffffffff60014b:	cc                   	int3   
ffffffffff60014c:	cc                   	int3   
ffffffffff60014d:	cc                   	int3   
ffffffffff60014e:	cc                   	int3   
ffffffffff60014f:	cc                   	int3   
ffffffffff600150:	cc                   	int3   
ffffffffff600151:	cc                   	int3   
ffffffffff600152:	cc                   	int3   
ffffffffff600153:	cc                   	int3   
ffffffffff600154:	cc                   	int3   
ffffffffff600155:	cc                   	int3   
ffffffffff600156:	cc                   	int3   
ffffffffff600157:	cc                   	int3   
ffffffffff600158:	cc                   	int3   
ffffffffff600159:	cc                   	int3   
ffffffffff60015a:	cc                   	int3   
ffffffffff60015b:	cc                   	int3   
ffffffffff60015c:	cc                   	int3   
ffffffffff60015d:	cc                   	int3   
ffffffffff60015e:	cc                   	int3   
ffffffffff60015f:	cc                   	int3   
ffffffffff600160:	cc                   	int3   
ffffffffff600161:	cc                   	int3   
ffffffffff600162:	cc                   	int3   
ffffffffff600163:	cc                   	int3   
ffffffffff600164:	cc                   	int3   
ffffffffff600165:	cc                   	int3   
ffffffffff600166:	cc                   	int3   
ffffffffff600167:	cc                   	int3   
ffffffffff600168:	cc                   	int3   
ffffffffff600169:	cc                   	int3   
ffffffffff60016a:	cc                   	int3   
ffffffffff60016b:	cc                   	int3   
ffffffffff60016c:	cc                   	int3   
ffffffffff60016d:	cc                   	int3   
ffffffffff60016e:	cc                   	int3   
ffffffffff60016f:	cc                   	int3   
ffffffffff600170:	cc                   	int3   
ffffffffff600171:	cc                   	int3   
ffffffffff600172:	cc                   	int3   
ffffffffff600173:	cc                   	int3   
ffffffffff600174:	cc                   	int3   
ffffffffff600175:	cc                   	int3   
ffffffffff600176:	cc                   	int3   
ffffffffff600177:	cc                   	int3   
ffffffffff600178:	cc                   	int3   
ffffffffff600179:	cc                   	int3   
ffffffffff60017a:	cc                   	int3   
ffffffffff60017b:	cc                   	int3   
ffffffffff60017c:	cc                   	int3   
ffffffffff60017d:	cc                   	int3   
ffffffffff60017e:	cc                   	int3   
ffffffffff60017f:	cc                   	int3   
ffffffffff600180:	cc                   	int3   
ffffffffff600181:	cc                   	int3   
ffffffffff600182:	cc                   	int3   
ffffffffff600183:	cc                   	int3   
ffffffffff600184:	cc                   	int3   
ffffffffff600185:	cc                   	int3   
ffffffffff600186:	cc                   	int3   
ffffffffff600187:	cc                   	int3   
ffffffffff600188:	cc                   	int3   
ffffffffff600189:	cc                   	int3   
ffffffffff60018a:	cc                   	int3   
ffffffffff60018b:	cc                   	int3   
ffffffffff60018c:	cc                   	int3   
ffffffffff60018d:	cc                   	int3   
ffffffffff60018e:	cc                   	int3   
ffffffffff60018f:	cc                   	int3   
ffffffffff600190:	cc                   	int3   
ffffffffff600191:	cc                   	int3   
ffffffffff600192:	cc                   	int3   
ffffffffff600193:	cc                   	int3   
ffffffffff600194:	cc                   	int3   
ffffffffff600195:	cc                   	int3   
ffffffffff600196:	cc                   	int3   
ffffffffff600197:	cc                   	int3   
ffffffffff600198:	cc                   	int3   
ffffffffff600199:	cc                   	int3   
ffffffffff60019a:	cc                   	int3   
ffffffffff60019b:	cc                   	int3   
ffffffffff60019c:	cc                   	int3   
ffffffffff60019d:	cc                   	int3   
ffffffffff60019e:	cc                   	int3   
ffffffffff60019f:	cc                   	int3   
ffffffffff6001a0:	cc                   	int3   
ffffffffff6001a1:	cc                   	int3   
ffffffffff6001a2:	cc                   	int3   
ffffffffff6001a3:	cc                   	int3   
ffffffffff6001a4:	cc                   	int3   
ffffffffff6001a5:	cc                   	int3   
ffffffffff6001a6:	cc                   	int3   
ffffffffff6001a7:	cc                   	int3   
ffffffffff6001a8:	cc                   	int3   
ffffffffff6001a9:	cc                   	int3   
ffffffffff6001aa:	cc                   	int3   
ffffffffff6001ab:	cc                   	int3   
ffffffffff6001ac:	cc                   	int3   
ffffffffff6001ad:	cc                   	int3   
ffffffffff6001ae:	cc                   	int3   
ffffffffff6001af:	cc                   	int3   
ffffffffff6001b0:	cc                   	int3   
ffffffffff6001b1:	cc                   	int3   
ffffffffff6001b2:	cc                   	int3   
ffffffffff6001b3:	cc                   	int3   
ffffffffff6001b4:	cc                   	int3   
ffffffffff6001b5:	cc                   	int3   
ffffffffff6001b6:	cc                   	int3   
ffffffffff6001b7:	cc                   	int3   
ffffffffff6001b8:	cc                   	int3   
ffffffffff6001b9:	cc                   	int3   
ffffffffff6001ba:	cc                   	int3   
ffffffffff6001bb:	cc                   	int3   
ffffffffff6001bc:	cc                   	int3   
ffffffffff6001bd:	cc                   	int3   
ffffffffff6001be:	cc                   	int3   
ffffffffff6001bf:	cc                   	int3   
ffffffffff6001c0:	cc                   	int3   
ffffffffff6001c1:	cc                   	int3   
ffffffffff6001c2:	cc                   	int3   
ffffffffff6001c3:	cc                   	int3   
ffffffffff6001c4:	cc                   	int3   
ffffffffff6001c5:	cc                   	int3   
ffffffffff6001c6:	cc                   	int3   
ffffffffff6001c7:	cc                   	int3   
ffffffffff6001c8:	cc                   	int3   
ffffffffff6001c9:	cc                   	int3   
ffffffffff6001ca:	cc                   	int3   
ffffffffff6001cb:	cc                   	int3   
ffffffffff6001cc:	cc                   	int3   
ffffffffff6001cd:	cc                   	int3   
ffffffffff6001ce:	cc                   	int3   
ffffffffff6001cf:	cc                   	int3   
ffffffffff6001d0:	cc                   	int3   
ffffffffff6001d1:	cc                   	int3   
ffffffffff6001d2:	cc                   	int3   
ffffffffff6001d3:	cc                   	int3   
ffffffffff6001d4:	cc                   	int3   
ffffffffff6001d5:	cc                   	int3   
ffffffffff6001d6:	cc                   	int3   
ffffffffff6001d7:	cc                   	int3   
ffffffffff6001d8:	cc                   	int3   
ffffffffff6001d9:	cc                   	int3   
ffffffffff6001da:	cc                   	int3   
ffffffffff6001db:	cc                   	int3   
ffffffffff6001dc:	cc                   	int3   
ffffffffff6001dd:	cc                   	int3   
ffffffffff6001de:	cc                   	int3   
ffffffffff6001df:	cc                   	int3   
ffffffffff6001e0:	cc                   	int3   
ffffffffff6001e1:	cc                   	int3   
ffffffffff6001e2:	cc                   	int3   
ffffffffff6001e3:	cc                   	int3   
ffffffffff6001e4:	cc                   	int3   
ffffffffff6001e5:	cc                   	int3   
ffffffffff6001e6:	cc                   	int3   
ffffffffff6001e7:	cc                   	int3   
ffffffffff6001e8:	cc                   	int3   
ffffffffff6001e9:	cc                   	int3   
ffffffffff6001ea:	cc                   	int3   
ffffffffff6001eb:	cc                   	int3   
ffffffffff6001ec:	cc                   	int3   
ffffffffff6001ed:	cc                   	int3   
ffffffffff6001ee:	cc                   	int3   
ffffffffff6001ef:	cc                   	int3   
ffffffffff6001f0:	cc                   	int3   
ffffffffff6001f1:	cc                   	int3   
ffffffffff6001f2:	cc                   	int3   
ffffffffff6001f3:	cc                   	int3   
ffffffffff6001f4:	cc                   	int3   
ffffffffff6001f5:	cc                   	int3   
ffffffffff6001f6:	cc                   	int3   
ffffffffff6001f7:	cc                   	int3   
ffffffffff6001f8:	cc                   	int3   
ffffffffff6001f9:	cc                   	int3   
ffffffffff6001fa:	cc                   	int3   
ffffffffff6001fb:	cc                   	int3   
ffffffffff6001fc:	cc                   	int3   
ffffffffff6001fd:	cc                   	int3   
ffffffffff6001fe:	cc                   	int3   
ffffffffff6001ff:	cc                   	int3   
ffffffffff600200:	cc                   	int3   
ffffffffff600201:	cc                   	int3   
ffffffffff600202:	cc                   	int3   
ffffffffff600203:	cc                   	int3   
ffffffffff600204:	cc                   	int3   
ffffffffff600205:	cc                   	int3   
ffffffffff600206:	cc                   	int3   
ffffffffff600207:	cc                   	int3   
ffffffffff600208:	cc                   	int3   
ffffffffff600209:	cc                   	int3   
ffffffffff60020a:	cc                   	int3   
ffffffffff60020b:	cc                   	int3   
ffffffffff60020c:	cc                   	int3   
ffffffffff60020d:	cc                   	int3   
ffffffffff60020e:	cc                   	int3   
ffffffffff60020f:	cc                   	int3   
ffffffffff600210:	cc                   	int3   
ffffffffff600211:	cc                   	int3   
ffffffffff600212:	cc                   	int3   
ffffffffff600213:	cc                   	int3   
ffffffffff600214:	cc                   	int3   
ffffffffff600215:	cc                   	int3   
ffffffffff600216:	cc                   	int3   
ffffffffff600217:	cc                   	int3   
ffffffffff600218:	cc                   	int3   
ffffffffff600219:	cc                   	int3   
ffffffffff60021a:	cc                   	int3   
ffffffffff60021b:	cc                   	int3   
ffffffffff60021c:	cc                   	int3   
ffffffffff60021d:	cc                   	int3   
ffffffffff60021e:	cc                   	int3   
ffffffffff60021f:	cc                   	int3   
ffffffffff600220:	cc                   	int3   
ffffffffff600221:	cc                   	int3   
ffffffffff600222:	cc                   	int3   
ffffffffff600223:	cc                   	int3   
ffffffffff600224:	cc                   	int3   
ffffffffff600225:	cc                   	int3   
ffffffffff600226:	cc                   	int3   
ffffffffff600227:	cc                   	int3   
ffffffffff600228:	cc                   	int3   
ffffffffff600229:	cc                   	int3   
ffffffffff60022a:	cc                   	int3   
ffffffffff60022b:	cc                   	int3   
ffffffffff60022c:	cc                   	int3   
ffffffffff60022d:	cc                   	int3   
ffffffffff60022e:	cc                   	int3   
ffffffffff60022f:	cc                   	int3   
ffffffffff600230:	cc                   	int3   
ffffffffff600231:	cc                   	int3   
ffffffffff600232:	cc                   	int3   
ffffffffff600233:	cc                   	int3   
ffffffffff600234:	cc                   	int3   
ffffffffff600235:	cc                   	int3   
ffffffffff600236:	cc                   	int3   
ffffffffff600237:	cc                   	int3   
ffffffffff600238:	cc                   	int3   
ffffffffff600239:	cc                   	int3   
ffffffffff60023a:	cc                   	int3   
ffffffffff60023b:	cc                   	int3   
ffffffffff60023c:	cc                   	int3   
ffffffffff60023d:	cc                   	int3   
ffffffffff60023e:	cc                   	int3   
ffffffffff60023f:	cc                   	int3   
ffffffffff600240:	cc                   	int3   
ffffffffff600241:	cc                   	int3   
ffffffffff600242:	cc                   	int3   
ffffffffff600243:	cc                   	int3   
ffffffffff600244:	cc                   	int3   
ffffffffff600245:	cc                   	int3   
ffffffffff600246:	cc                   	int3   
ffffffffff600247:	cc                   	int3   
ffffffffff600248:	cc                   	int3   
ffffffffff600249:	cc                   	int3   
ffffffffff60024a:	cc                   	int3   
ffffffffff60024b:	cc                   	int3   
ffffffffff60024c:	cc                   	int3   
ffffffffff60024d:	cc                   	int3   
ffffffffff60024e:	cc                   	int3   
ffffffffff60024f:	cc                   	int3   
ffffffffff600250:	cc                   	int3   
ffffffffff600251:	cc                   	int3   
ffffffffff600252:	cc                   	int3   
ffffffffff600253:	cc                   	int3   
ffffffffff600254:	cc                   	int3   
ffffffffff600255:	cc                   	int3   
ffffffffff600256:	cc                   	int3   
ffffffffff600257:	cc                   	int3   
ffffffffff600258:	cc                   	int3   
ffffffffff600259:	cc                   	int3   
ffffffffff60025a:	cc                   	int3   
ffffffffff60025b:	cc                   	int3   
ffffffffff60025c:	cc                   	int3   
ffffffffff60025d:	cc                   	int3   
ffffffffff60025e:	cc                   	int3   
ffffffffff60025f:	cc                   	int3   
ffffffffff600260:	cc                   	int3   
ffffffffff600261:	cc                   	int3   
ffffffffff600262:	cc                   	int3   
ffffffffff600263:	cc                   	int3   
ffffffffff600264:	cc                   	int3   
ffffffffff600265:	cc                   	int3   
ffffffffff600266:	cc                   	int3   
ffffffffff600267:	cc                   	int3   
ffffffffff600268:	cc                   	int3   
ffffffffff600269:	cc                   	int3   
ffffffffff60026a:	cc                   	int3   
ffffffffff60026b:	cc                   	int3   
ffffffffff60026c:	cc                   	int3   
ffffffffff60026d:	cc                   	int3   
ffffffffff60026e:	cc                   	int3   
ffffffffff60026f:	cc                   	int3   
ffffffffff600270:	cc                   	int3   
ffffffffff600271:	cc                   	int3   
ffffffffff600272:	cc                   	int3   
ffffffffff600273:	cc                   	int3   
ffffffffff600274:	cc                   	int3   
ffffffffff600275:	cc                   	int3   
ffffffffff600276:	cc                   	int3   
ffffffffff600277:	cc                   	int3   
ffffffffff600278:	cc                   	int3   
ffffffffff600279:	cc                   	int3   
ffffffffff60027a:	cc                   	int3   
ffffffffff60027b:	cc                   	int3   
ffffffffff60027c:	cc                   	int3   
ffffffffff60027d:	cc                   	int3   
ffffffffff60027e:	cc                   	int3   
ffffffffff60027f:	cc                   	int3   
ffffffffff600280:	cc                   	int3   
ffffffffff600281:	cc                   	int3   
ffffffffff600282:	cc                   	int3   
ffffffffff600283:	cc                   	int3   
ffffffffff600284:	cc                   	int3   
ffffffffff600285:	cc                   	int3   
ffffffffff600286:	cc                   	int3   
ffffffffff600287:	cc                   	int3   
ffffffffff600288:	cc                   	int3   
ffffffffff600289:	cc                   	int3   
ffffffffff60028a:	cc                   	int3   
ffffffffff60028b:	cc                   	int3   
ffffffffff60028c:	cc                   	int3   
ffffffffff60028d:	cc                   	int3   
ffffffffff60028e:	cc                   	int3   
ffffffffff60028f:	cc                   	int3   
ffffffffff600290:	cc                   	int3   
ffffffffff600291:	cc                   	int3   
ffffffffff600292:	cc                   	int3   
ffffffffff600293:	cc                   	int3   
ffffffffff600294:	cc                   	int3   
ffffffffff600295:	cc                   	int3   
ffffffffff600296:	cc                   	int3   
ffffffffff600297:	cc                   	int3   
ffffffffff600298:	cc                   	int3   
ffffffffff600299:	cc                   	int3   
ffffffffff60029a:	cc                   	int3   
ffffffffff60029b:	cc                   	int3   
ffffffffff60029c:	cc                   	int3   
ffffffffff60029d:	cc                   	int3   
ffffffffff60029e:	cc                   	int3   
ffffffffff60029f:	cc                   	int3   
ffffffffff6002a0:	cc                   	int3   
ffffffffff6002a1:	cc                   	int3   
ffffffffff6002a2:	cc                   	int3   
ffffffffff6002a3:	cc                   	int3   
ffffffffff6002a4:	cc                   	int3   
ffffffffff6002a5:	cc                   	int3   
ffffffffff6002a6:	cc                   	int3   
ffffffffff6002a7:	cc                   	int3   
ffffffffff6002a8:	cc                   	int3   
ffffffffff6002a9:	cc                   	int3   
ffffffffff6002aa:	cc                   	int3   
ffffffffff6002ab:	cc                   	int3   
ffffffffff6002ac:	cc                   	int3   
ffffffffff6002ad:	cc                   	int3   
ffffffffff6002ae:	cc                   	int3   
ffffffffff6002af:	cc                   	int3   
ffffffffff6002b0:	cc                   	int3   
ffffffffff6002b1:	cc                   	int3   
ffffffffff6002b2:	cc                   	int3   
ffffffffff6002b3:	cc                   	int3   
ffffffffff6002b4:	cc                   	int3   
ffffffffff6002b5:	cc                   	int3   
ffffffffff6002b6:	cc                   	int3   
ffffffffff6002b7:	cc                   	int3   
ffffffffff6002b8:	cc                   	int3   
ffffffffff6002b9:	cc                   	int3   
ffffffffff6002ba:	cc                   	int3   
ffffffffff6002bb:	cc                   	int3   
ffffffffff6002bc:	cc                   	int3   
ffffffffff6002bd:	cc                   	int3   
ffffffffff6002be:	cc                   	int3   
ffffffffff6002bf:	cc                   	int3   
ffffffffff6002c0:	cc                   	int3   
ffffffffff6002c1:	cc                   	int3   
ffffffffff6002c2:	cc                   	int3   
ffffffffff6002c3:	cc                   	int3   
ffffffffff6002c4:	cc                   	int3   
ffffffffff6002c5:	cc                   	int3   
ffffffffff6002c6:	cc                   	int3   
ffffffffff6002c7:	cc                   	int3   
ffffffffff6002c8:	cc                   	int3   
ffffffffff6002c9:	cc                   	int3   
ffffffffff6002ca:	cc                   	int3   
ffffffffff6002cb:	cc                   	int3   
ffffffffff6002cc:	cc                   	int3   
ffffffffff6002cd:	cc                   	int3   
ffffffffff6002ce:	cc                   	int3   
ffffffffff6002cf:	cc                   	int3   
ffffffffff6002d0:	cc                   	int3   
ffffffffff6002d1:	cc                   	int3   
ffffffffff6002d2:	cc                   	int3   
ffffffffff6002d3:	cc                   	int3   
ffffffffff6002d4:	cc                   	int3   
ffffffffff6002d5:	cc                   	int3   
ffffffffff6002d6:	cc                   	int3   
ffffffffff6002d7:	cc                   	int3   
ffffffffff6002d8:	cc                   	int3   
ffffffffff6002d9:	cc                   	int3   
ffffffffff6002da:	cc                   	int3   
ffffffffff6002db:	cc                   	int3   
ffffffffff6002dc:	cc                   	int3   
ffffffffff6002dd:	cc                   	int3   
ffffffffff6002de:	cc                   	int3   
ffffffffff6002df:	cc                   	int3   
ffffffffff6002e0:	cc                   	int3   
ffffffffff6002e1:	cc                   	int3   
ffffffffff6002e2:	cc                   	int3   
ffffffffff6002e3:	cc                   	int3   
ffffffffff6002e4:	cc                   	int3   
ffffffffff6002e5:	cc                   	int3   
ffffffffff6002e6:	cc                   	int3   
ffffffffff6002e7:	cc                   	int3   
ffffffffff6002e8:	cc                   	int3   
ffffffffff6002e9:	cc                   	int3   
ffffffffff6002ea:	cc                   	int3   
ffffffffff6002eb:	cc                   	int3   
ffffffffff6002ec:	cc                   	int3   
ffffffffff6002ed:	cc                   	int3   
ffffffffff6002ee:	cc                   	int3   
ffffffffff6002ef:	cc                   	int3   
ffffffffff6002f0:	cc                   	int3   
ffffffffff6002f1:	cc                   	int3   
ffffffffff6002f2:	cc                   	int3   
ffffffffff6002f3:	cc                   	int3   
ffffffffff6002f4:	cc                   	int3   
ffffffffff6002f5:	cc                   	int3   
ffffffffff6002f6:	cc                   	int3   
ffffffffff6002f7:	cc                   	int3   
ffffffffff6002f8:	cc                   	int3   
ffffffffff6002f9:	cc                   	int3   
ffffffffff6002fa:	cc                   	int3   
ffffffffff6002fb:	cc                   	int3   
ffffffffff6002fc:	cc                   	int3   
ffffffffff6002fd:	cc                   	int3   
ffffffffff6002fe:	cc                   	int3   
ffffffffff6002ff:	cc                   	int3   
ffffffffff600300:	cc                   	int3   
ffffffffff600301:	cc                   	int3   
ffffffffff600302:	cc                   	int3   
ffffffffff600303:	cc                   	int3   
ffffffffff600304:	cc                   	int3   
ffffffffff600305:	cc                   	int3   
ffffffffff600306:	cc                   	int3   
ffffffffff600307:	cc                   	int3   
ffffffffff600308:	cc                   	int3   
ffffffffff600309:	cc                   	int3   
ffffffffff60030a:	cc                   	int3   
ffffffffff60030b:	cc                   	int3   
ffffffffff60030c:	cc                   	int3   
ffffffffff60030d:	cc                   	int3   
ffffffffff60030e:	cc                   	int3   
ffffffffff60030f:	cc                   	int3   
ffffffffff600310:	cc                   	int3   
ffffffffff600311:	cc                   	int3   
ffffffffff600312:	cc                   	int3   
ffffffffff600313:	cc                   	int3   
ffffffffff600314:	cc                   	int3   
ffffffffff600315:	cc                   	int3   
ffffffffff600316:	cc                   	int3   
ffffffffff600317:	cc                   	int3   
ffffffffff600318:	cc                   	int3   
ffffffffff600319:	cc                   	int3   
ffffffffff60031a:	cc                   	int3   
ffffffffff60031b:	cc                   	int3   
ffffffffff60031c:	cc                   	int3   
ffffffffff60031d:	cc                   	int3   
ffffffffff60031e:	cc                   	int3   
ffffffffff60031f:	cc                   	int3   
ffffffffff600320:	cc                   	int3   
ffffffffff600321:	cc                   	int3   
ffffffffff600322:	cc                   	int3   
ffffffffff600323:	cc                   	int3   
ffffffffff600324:	cc                   	int3   
ffffffffff600325:	cc                   	int3   
ffffffffff600326:	cc                   	int3   
ffffffffff600327:	cc                   	int3   
ffffffffff600328:	cc                   	int3   
ffffffffff600329:	cc                   	int3   
ffffffffff60032a:	cc                   	int3   
ffffffffff60032b:	cc                   	int3   
ffffffffff60032c:	cc                   	int3   
ffffffffff60032d:	cc                   	int3   
ffffffffff60032e:	cc                   	int3   
ffffffffff60032f:	cc                   	int3   
ffffffffff600330:	cc                   	int3   
ffffffffff600331:	c
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

papaofdoudou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值