资源描述:
《truecrypt学习笔记(安全篇)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1、BootSector.asm代码分析(加载MBR数据,对BootLoader解压缩,进入BootLoader):;;Copyright(c)2008-2009TrueCryptDevelopersAssociation.Allrightsreserved.;;GovernedbytheTrueCryptLicense3.0thefulltextofwhichiscontainedin;thefileLicense.txtincludedinTrueCryptbinaryandsourcecodedistribution;pa
2、ckages.;.MODELtiny.386_TEXTSEGMENTUSE16INCLUDEBootDefs.iORG7C00h;Standardbootsectoroffset,开始代码执行start:;BIOSexecutesbootsectorfrom0:7C00or7C0:0000(defaultCDbootloaderaddress).;FarjumptothenextinstructionsetsIPtothestandardoffset7C00.db0EAh;jmp0:main,跳转指令dwmain,0;跳转的地址
3、loader_name_msg:db'TrueCryptBootLoader',13,10,0main:clixorax,axmovds,axmovss,axmovsp,7C00hsti;Displaybootloadernametestbyteptr[start+TC_BOOT_SECTOR_USER_CONFIG_OFFSET],TC_BOOT_USER_CFG_FLAG_SILENT_MODEjnzskip_loader_name_msgleasi,loader_name_msgcallprintskip_loader_n
4、ame_msg:;Determinebootloadersegmentmovax,TC_BOOT_LOADER_SEGMENT;Checkavailablememorycmpwordptr[ds:413h],TC_BOOT_LOADER_SEGMENT/1024*16+TC_BOOT_MEMORY_REQUIREDjgememory_okmovax,TC_BOOT_LOADER_SEGMENT_LOWcmpwordptr[ds:413h],TC_BOOT_LOADER_SEGMENT_LOW/1024*16+TC_BOOT_ME
5、MORY_REQUIREDjgememory_ok;Insufficientmemorymovax,TC_BOOT_LOADER_LOWMEM_SEGMENTmemory_ok:moves,ax;ClearBSSsectionxoral,almovdi,TC_COM_EXECUTABLE_OFFSETmovcx,TC_BOOT_MEMORY_REQUIRED*1024-TC_COM_EXECUTABLE_OFFSET-1cldrepstosbmovax,essubax,TC_BOOT_LOADER_DECOMPRESSOR_ME
6、MORY_SIZE/16;Decompressorsegmentmoves,ax;Loaddecompressor,加载解码程序的代码到当前代码movcl,TC_BOOT_LOADER_DECOMPRESSOR_START_SECTORretry_backup:moval,TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNTmovbx,TC_COM_EXECUTABLE_OFFSETcallread_sectors;Decompressorchecksumxorebx,ebxmovsi,TC_COM_
7、EXECUTABLE_OFFSETmovcx,TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNT*TC_LB_SIZEcallchecksumpushebx;Loadcompressedbootloadermovbx,TC_BOOT_LOADER_COMPRESSED_BUFFER_OFFSETmovcl,TC_BOOT_LOADER_START_SECTORmoval,TC_MAX_BOOT_LOADER_SECTOR_COUNTtestbackup_loader_used,1jznon_back
8、upmoval,TC_BOOT_LOADER_BACKUP_SECTOR_COUNT-TC_BOOT_LOADER_DECOMPRESSOR_SECTOR_COUNTmovcl,TC_BOOT_LOADER_START_SECTOR+TC_BOOT_LOADER