当前位置: 首页 > news >正文

大气精美网站设计工作室织梦模板wordpress 一直崩溃

大气精美网站设计工作室织梦模板,wordpress 一直崩溃,wordpress建站要多久,建团购网站实现写时复制#xff0c;读时加载#xff0c;原理为#xff0c;申请内存时#xff0c;只给一段线性地址空间#xff0c;并不分配物理内存#xff0c;当cpu读、写该内存时#xff0c;发生缺页中#xff0c;或者写错误#xff0c;中断处理程序根据前面设置的内容#x…实现写时复制读时加载原理为申请内存时只给一段线性地址空间并不分配物理内存当cpu读、写该内存时发生缺页中或者写错误中断处理程序根据前面设置的内容决写分配物理内存或者是共享内存如果需要读取文件时则根据需要读取相应的文件数据。 主要代码如下 LPPE_FILE_ELEM load_pe_dll(char * lpFileName) {LPPE_FILE_ELEM lpSysFE, lpUserFE; //文件列表中的元素保存文件信息//文件加载内存的默认地址//PIMAGE_DOS_HEADER pdh; //dos头PIMAGE_NT_HEADERS pnh; //pe文件头LPVOID pfile, pKrFile;PMEMORY_BASIC_INFORMATION pmbi;BYTE buf[512]; //临时块//补全文件目录路径add_patch((char *) buf, lpFileName);//1、从系统进程中查找是否已经加载lpSysFE pe_find_file((char*) buf, get_sys_files_list());if (lpSysFE) {//系统中已经加载进入下一步pKrFile (LPVOID) lpSysFE-hModule;DbgPrint(dll已读入内存 : %s ,%x\n, lpSysFE-strFilePath,lpSysFE-dwNumberOfShares);//return lpFE-hModule;} else {//将文件加入系统文件列表中lpSysFE kr_malloc(sizeof(PE_FILE_ELEM) strlen((char*) buf) 1);strcpy(lpSysFE-strFilePath, (char*) buf);if (load_file(lpSysFE-strFilePath, 0, 512, buf)) {//新exe头部的文件地址 指向PEpnh (PIMAGE_NT_HEADERS) ((DWORD) buf ((PIMAGE_DOS_HEADER) buf)-e_lfanew);//系统进程中仅申请空间读时加载pmbi mem_virtual_alloc(stMbiSys, 0,pnh-OptionalHeader.SizeOfImage, MEM_COMMIT,PAGE_READWRITE,MEM_IMAGE);pKrFile (PBYTE) pmbi-BaseAddress;lpSysFE-hModule (DWORD) pKrFile;lpSysFE-dwImgsize pnh-OptionalHeader.SizeOfImage;lpSysFE-dwNumberOfShares 0;list_push(get_sys_files_list(), (PLIST_ELEM) lpSysFE);load_pe_text((PIMAGE_DOS_HEADER) buf, (DWORD) lpSysFE-hModule,lpSysFE-strFilePath);if (!pKrFile) {//失败//DbgPrint(dll已读入内存 : %s ,%x\n);} else {//初始化时设置文件共享的次数为0,加入系统加载文件队列。}}} // if (lpFE)//2、检查用户空间 当前文件是否已经加载lpUserFE pe_find_file(lpSysFE-strFilePath, get_current_file_list());if (lpUserFE) {//2、已经加载 直接返回return lpUserFE;} else {//第一次加入进程将pKrfile的物理地址映射到 pfilepnh (PIMAGE_NT_HEADERS) ((((PIMAGE_DOS_HEADER) pKrFile)-e_lfanew) (DWORD) pKrFile);pmbi mem_virtual_alloc(MBI_USER_BASE, (LPVOID) pnh-OptionalHeader.ImageBase,pnh-OptionalHeader.SizeOfImage,MEM_COMMIT, PAGE_READWRITE, MEM_IMAGE);pfile (PBYTE) pmbi-BaseAddress;DbgPrint(共享 dll: %s,%x,%x,%x,%x\n, lpSysFE-strFilePath, pfile,pKrFile, pnh-OptionalHeader.ImageBase);lpUserFE kr_malloc(strlen((char*) lpSysFE-strFilePath) sizeof(PE_FILE_ELEM) 1);strcpy(lpUserFE-strFilePath, lpSysFE-strFilePath);lpUserFE-hModule (DWORD) pfile;lpUserFE-dwImgsize lpSysFE-dwImgsize;lpUserFE-hSysModule pKrFile;list_push(get_current_file_list(), (PLIST_ELEM) lpUserFE);lpSysFE-dwNumberOfShares;DoRelocationTable(pfile);link_import(pfile);//文件头映射// mem_map_demand(pKrFile, pfile,// _ALIGN( pdh-e_lfanew sizeof(IMAGE_NT_HEADERS32)// pnh-FileHeader.NumberOfSections// * sizeof(IMAGE_SECTION_HEADER), 4096),// PG_USER_R_P);}return lpUserFE; } BOOL mem_fail_sys(DWORD code, DWORD addr) {DWORD temp;LPPE_FILE_ELEM fe;PMEMORY_BASIC_INFORMATION pmbi mem_find_mbi(stMbiSys,addr);//DbgPrint(内核%s错误 0x%x,0x%x,0x%x,0x%x,0x%x,0x%x\n,(code2?写:读), addr, code,// pmbi-BaseAddress, pmbi-RegionSize, pmbi-State, pmbi-Type);if (!pmbi) {return FALSE;}//如果是映射if (pmbi-State MEM_COMMIT) {//分配物理内存,以4K为单位if (pmbi-Type MEM_IMAGE) {mem_physics(addr, 4096, PGE_SYS_RW_P);fe (LPPE_FILE_ELEM) pe_find_from_addr(get_sys_files_list(), addr);if (fe-dwNumberOfShares ! 0) {//直接分配内存再读取文件//200对齐load_file_4k(fe, addr);} else {//正在读文件头}} else if (pmbi-Type MEM_4MB_PAGES) {// MEM_4MB_PAGES://二级目录// DbgPrint(二级页表%x%x\n, addr, (DWORD *) MiGetPteAddress(addr));mem_physics(addr, 4096, PG_USER_RW_P);//*(DWORD *) MiGetPteAddress(addr) // get_freed_physics() PG_USER_RW_P;} else {mem_physics(addr, 4096, PGE_SYS_RW_P);}//直接分配内存} //if (pmbi-State MEM_COMMIT)else {return FALSE;}return TRUE; } BOOL mem_fail_user(DWORD code, DWORD addr) {DWORD temp;LPPE_FILE_ELEM fe;PMEMORY_BASIC_INFORMATION pmbi mem_find_mbi(MBI_USER_BASE, addr);//DbgPrint(用户%s错误 0x%x,0x%x,0x%x,0x%x,0x%x,0x%x\n, (code2?写:读),addr, code,// pmbi-BaseAddress, pmbi-RegionSize, pmbi-State, pmbi-Type);if (!pmbi) { //找不分配的段。return FALSE;} //状态是不是已经提交 //只读读写还共享的读写 //如果是map类分配内存如果Image类则读时加载写时复制if (pmbi-State MEM_COMMIT) {if (pmbi-Type MEM_IMAGE) {fe (LPPE_FILE_ELEM) pe_find_from_addr(get_current_file_list(),addr);if (fe-hSysModule 0) {//说明是不是共享文件//DbgPrint(用户内存错误 0x%x , 0x%x , 0x%x , 0x%x \n, addr, code,// pmbi-BaseAddress, pmbi-State);mem_physics(addr, 4096, PG_USER_RW_P);load_file_4k(fe, addr);//break;} else {//DbgPrint(用户内存错误 %x,%x\n,addr,fe);//先读取系统内存如果出错则会中断到mem_fail_sys加载文件//如果是读取则映射如果是写则分配内存再复制if (code 2) {//重新申请物理内再复制//DbgPrint(用户写错误%x\n, addr);mem_physics(addr, 4096, PG_USER_RW_P);memcpy((PVOID) (addr 0xFFFFF000),(PVOID) ((fe-hSysModule (addr - fe-hModule)) 0xFFFFF000), 4096);} else {//DbgPrint(用户读错误%x\n, addr);//说明可能内核没有读取文件也可能没有映射//先试读下没有读取文件会中断后读取再映射//mem_fail_sys(0,fe-hSysModuleaddr-fe-hModule);temp *(PDWORD) (fe-hSysModule addr - fe-hModule);//函数自己内部齐size1~4096效果应是一样mem_map_demand(fe-hSysModule addr - fe-hModule, addr,4096, PG_USER_R_P);}//直接分配内存再读取文件//addr-pmbi-BaseAddressg}} else if ((pmbi-Type MEM_PRIVATE)) {//if (pmbi-Type MEM_IMAGE)mem_physics(addr, 4096, PG_USER_RW_P);}} // if (pmbi-State MEM_COMMIT)else {return FALSE;}return TRUE; }
http://www.sczhlp.com/news/239881/

相关文章:

  • 网站增加keywords关键词有影响吗任丘市网站建设价格
  • 官方网站免费建设南京平台公司
  • 奉贤网站建设哪家好怎样做微信挂机平台网站
  • 湖北专业网站建设产品介绍做个网站页面多钱
  • 网站域名备案后公示北京平面设计公司招聘信息
  • tryhackme-网络安全基础-命令行- Linux Shells-23
  • 网站建设制作费厦门做网站优化多少钱
  • 网站建设 经典书籍嵌入式软件开发培训班
  • 网站做过备案后能改别的公司吗网站设计创意方案
  • 淄博网站建设咨询臻动传媒购物网站首页制作代码
  • 做网站外链需要多少钱线上平台搭建要多少钱
  • 模糊背景网站建站行业消失了吗
  • 网站营销建设经典重庆论坛新闻论坛
  • 网站如何与域名绑定做网站没有必须要ftp吗
  • 网站建设职责东莞设计网
  • 网站排版设布局logo设计在线生成免费u钙
  • 网站宣传页面模板做网站联系
  • 中铁建设集团门户网登青岛百度推广seo价格
  • 做网站的服务器有什么作用wordpress图片尺寸 样式
  • 昆明网站设计公司哪家好外贸网站样式
  • 同一个服务器的网站做有链怎样做网站排名
  • 克隆网站怎么做微信怎么推广引流客户
  • 蒙牛企业网站建设(分析)与推广cpa推广联盟平台
  • 电子商务网站制作专注昆明网站推广
  • 龙口网站建设联系电话免费网站域名查询
  • 有哪些网站做电子元器件比较好伊春百姓网免费发布信息网
  • 网站建设经营范围怎么写建站需要注意哪些
  • window做网站的软件下载wordpress后台登录页面美化
  • 怎么做网站滑动图片部分个人网站建设 实验报告
  • 网站建设出售一级a做爰片付费网站