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

住房城市建设网站做防水网站

住房城市建设网站,做防水网站,怎么设计logo图片,建筑设计防火规范代码加密功能的实现原理#xff0c;首先通过创建一个新的.hack区段#xff0c;并对该区段进行初始化#xff0c;接着我们向此区段内写入一段具有动态解密功能的ShellCode汇编指令集#xff0c;并将程序入口地址修正为ShellCode地址位置处#xff0c;当解密功能被运行后则可…代码加密功能的实现原理首先通过创建一个新的.hack区段并对该区段进行初始化接着我们向此区段内写入一段具有动态解密功能的ShellCode汇编指令集并将程序入口地址修正为ShellCode地址位置处当解密功能被运行后则可释放加密的.text节此时再通过一个JMP指令跳转到原始OEP位置则可继续执行解密后的区段。 如下是一段异或解密功能实现用于实现循环0x88异或解密代码功能 00408001 MOV EAX, main.00401000 (代码段首地址) 00408006 XOR BYTE PTR DS : [EAX], 88 (与0x88异或) 00408009 INC EAX 0040800A CMP EAX, main.00404B46 (代码段结束位置) 0040800F JNZ SHORT main.00408006 (写入原始OEP) 00408011 POPAD 00408012 MOV EAX, main.00401041 (写入新OEP) 00408017 JMP EAX有了上述加密流程则下一步就是对内部的变量进行填充我们可以提取出这些汇编指令的机器码并存储到Code[]数组内通过对数组中的特定位置进行替换来完善跳转功能此处我们需要提取如下几个位置的特征字段 00408001 数组下标第2位替换为ImageBase pSection-VirtualAddress0040800A 数组下标第11位替换为ImageBase pSection-VirtualAddress pSection-Misc.VirtualSize0040800F 数组下标第19位替换为ImageBase BaseRVA00408012 原始OEP位置替换为pSection-VirtualAddress 根据上述流程我们可以编写一个AddPacking函数该函数通过传入一个待加密程序路径则可将一段解密代码Code[]写入到程序节表中的最后一个节.hack所在内存空间并动态修正当前入口地址为.hack节的首地址最终执行解密后自动跳转回原始OEP位置执行功能如下代码所示 // 对文件执行加壳操作 void AddPacking(LPSTR szFileName) {// 打开文件HANDLE hFile CreateFileA(szFileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ,NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);// 创建文件映射HANDLE hMap CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, 0, 0);HANDLE lpBase MapViewOfFile(hMap, FILE_MAP_READ | FILE_SHARE_WRITE, 0, 0, 0);// 找到PE文件头PIMAGE_DOS_HEADER DosHdr (PIMAGE_DOS_HEADER)lpBase;PIMAGE_NT_HEADERS NtHdr (PIMAGE_NT_HEADERS)((DWORD)lpBase DosHdr-e_lfanew);DWORD ImageBase NtHdr-OptionalHeader.ImageBase;DWORD BaseRVA NtHdr-OptionalHeader.AddressOfEntryPoint;PIMAGE_FILE_HEADER FileHdr NtHdr-FileHeader;PIMAGE_SECTION_HEADER pSection IMAGE_FIRST_SECTION(NtHdr);// 首先得到最后一个节的指针然后找到里面的虚拟偏移值填入到程序OEP位置即可。DWORD SectionNum FileHdr-NumberOfSections;char Code[] {\x60\xb8\x00\x00\x00\x00\x80\x30\x88\x40\x3d\xff\x4f\x40\x00\x75\xf5\x61\xb8\x00\x00\x00\x00\xff\xe0};DWORD dwWrite 0;// 写入代码节开始位置*(DWORD *)Code[2] ImageBase pSection-VirtualAddress;printf([] 写入代码节开始位置: 0x%08X \n, ImageBase pSection-VirtualAddress);// 写入代码节终止位置*(DWORD *)Code[11] ImageBase pSection-VirtualAddress pSection-Misc.VirtualSize;printf([] 写入代码节结束位置:0x%08X \n, ImageBase pSection-VirtualAddress pSection-Misc.VirtualSize);// 写入原来的的OEP位置*(DWORD *)Code[19] ImageBase BaseRVA;printf([] 写入原始OEP 0x%08X \n, ImageBase BaseRVA);// 拿到最后一个节的文件偏移pSection pSection (SectionNum - 1);printf([] 得到最后一个节的实际地址: 0x%08X \n, pSection-PointerToRawData);// 设置指针到最后一个节文件偏移位置SetFilePointer(hFile, pSection-PointerToRawData, 0, FILE_BEGIN);WriteFile(hFile, (LPVOID)Code, sizeof(Code), dwWrite, NULL);FlushViewOfFile(lpBase, 0);// 修正当前入口点地址printf([] 修正入口点地址为: 0x%08X \n, pSection-VirtualAddress);*(DWORD *)NtHdr-OptionalHeader.AddressOfEntryPoint pSection-VirtualAddress;UnmapViewOfFile(lpBase); }读者可自行运行上述代码片段传入d://lyshark.exe对该程序中的.text节进行解密运行后读者可打开x64dbg调试器观察入口地址处的变化此时入口地址已经跳转到.hack节内此节中的汇编指令则用于对.text代码节进行解密操作当解密结束后则会跳转到原始地址0x45C865位置处如下图所示 当加密功能写入后则接下来就可以对.text代码节进行加密了加密的实现也非常容易如下函数通过定位到第一个节并通过ReadFile函数将这个节读入内存通过循环对这个区域进行加密最后调用WriteFile函数再将加密后的数据回写到代码节此时加密功能就实现了如下所示 // 将特定的节进行加密,此处只加密Text节 void EncrySection(LPSTR szFileName, DWORD Key) {// 打开文件HANDLE hFile CreateFileA(szFileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ,NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);// 创建文件映射HANDLE hMap CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, 0, 0);HANDLE lpBase MapViewOfFile(hMap, FILE_MAP_READ | FILE_SHARE_WRITE, 0, 0, 0);// 定位PE文件节PIMAGE_DOS_HEADER DosHdr (PIMAGE_DOS_HEADER)lpBase;PIMAGE_NT_HEADERS NtHdr (PIMAGE_NT_HEADERS)((DWORD)lpBase DosHdr-e_lfanew);PIMAGE_FILE_HEADER FileHdr NtHdr-FileHeader;PIMAGE_SECTION_HEADER pSection IMAGE_FIRST_SECTION(NtHdr);printf([-] 节虚拟地址: 0x%08X 虚拟大小: 0x%08X\n, pSection-VirtualAddress, pSection-Misc.VirtualSize);printf([-] 读入FOA基地址: 0x%08X 节表长度: 0x%08X \n, pSection-PointerToRawData, pSection-SizeOfRawData);printf([-] 已对 %s 节 -- XOR加密/解密 -- XOR密钥: %d \n\n, pSection-Name, Key);// 分配内存空间DWORD dwRead 0;PBYTE pByte (PBYTE)malloc(pSection-SizeOfRawData);SetFilePointer(hFile, pSection-PointerToRawData, 0, FILE_BEGIN);memset(pByte, 0, pSection-SizeOfRawData);ReadFile(hFile, pByte, pSection-SizeOfRawData, dwRead, NULL);// 对代码节加密for (int x 0; x pSection-SizeOfRawData; x){pByte[x] ^ Key;}// 写出加密后的数据SetFilePointer(hFile, pSection-PointerToRawData, 0, FILE_BEGIN);WriteFile(hFile, pByte, pSection-SizeOfRawData, 0, FILE_BEGIN);pSection-Characteristics 0xE0000020;free(pByte);FlushViewOfFile(lpBase, 0);UnmapViewOfFile(lpBase); }读者通过AddPacking函数对文件加壳后接着就可以调用EncrySection函数对目标程序进行异或处理此处分别传入d://lyshark.exe路径以及一个加密密钥0x88等待加密结束即可此时运行程序即可实现对代码段的解密运行这样也就起到了保护了代码段的作用如下是解密之前的代码段 当解密后代码段将会被展开并输出如下图所示的样子此时程序即可被正确执行 本文作者 王瑞 本文链接 https://www.lyshark.com/post/5912e71.html 版权声明 本博客所有文章除特别声明外均采用 BY-NC-SA 许可协议。转载请注明出处
文章转载自:
http://www.morning.cjmmn.cn.gov.cn.cjmmn.cn
http://www.morning.mtbsd.cn.gov.cn.mtbsd.cn
http://www.morning.pnjsl.cn.gov.cn.pnjsl.cn
http://www.morning.plxnn.cn.gov.cn.plxnn.cn
http://www.morning.jsrnf.cn.gov.cn.jsrnf.cn
http://www.morning.mdjzydr.com.gov.cn.mdjzydr.com
http://www.morning.hknk.cn.gov.cn.hknk.cn
http://www.morning.rzdpd.cn.gov.cn.rzdpd.cn
http://www.morning.plhyc.cn.gov.cn.plhyc.cn
http://www.morning.lbywt.cn.gov.cn.lbywt.cn
http://www.morning.lwrcg.cn.gov.cn.lwrcg.cn
http://www.morning.gnbfj.cn.gov.cn.gnbfj.cn
http://www.morning.thjqk.cn.gov.cn.thjqk.cn
http://www.morning.srckl.cn.gov.cn.srckl.cn
http://www.morning.tscsd.cn.gov.cn.tscsd.cn
http://www.morning.sqskm.cn.gov.cn.sqskm.cn
http://www.morning.tfpmf.cn.gov.cn.tfpmf.cn
http://www.morning.junmap.com.gov.cn.junmap.com
http://www.morning.cnwpb.cn.gov.cn.cnwpb.cn
http://www.morning.kgxyd.cn.gov.cn.kgxyd.cn
http://www.morning.wljzr.cn.gov.cn.wljzr.cn
http://www.morning.dtzxf.cn.gov.cn.dtzxf.cn
http://www.morning.sqqds.cn.gov.cn.sqqds.cn
http://www.morning.wtlyr.cn.gov.cn.wtlyr.cn
http://www.morning.pcngq.cn.gov.cn.pcngq.cn
http://www.morning.wkmpx.cn.gov.cn.wkmpx.cn
http://www.morning.lywys.cn.gov.cn.lywys.cn
http://www.morning.ljsxg.cn.gov.cn.ljsxg.cn
http://www.morning.xykst.cn.gov.cn.xykst.cn
http://www.morning.qwqzk.cn.gov.cn.qwqzk.cn
http://www.morning.bqxxq.cn.gov.cn.bqxxq.cn
http://www.morning.lxngn.cn.gov.cn.lxngn.cn
http://www.morning.xdpjs.cn.gov.cn.xdpjs.cn
http://www.morning.wcrcy.cn.gov.cn.wcrcy.cn
http://www.morning.mqwnz.cn.gov.cn.mqwnz.cn
http://www.morning.wzyfk.cn.gov.cn.wzyfk.cn
http://www.morning.psgbk.cn.gov.cn.psgbk.cn
http://www.morning.jfgmx.cn.gov.cn.jfgmx.cn
http://www.morning.xrqkm.cn.gov.cn.xrqkm.cn
http://www.morning.nfpkx.cn.gov.cn.nfpkx.cn
http://www.morning.hfyll.cn.gov.cn.hfyll.cn
http://www.morning.pqnpd.cn.gov.cn.pqnpd.cn
http://www.morning.lqlc.cn.gov.cn.lqlc.cn
http://www.morning.qtqk.cn.gov.cn.qtqk.cn
http://www.morning.dmtbs.cn.gov.cn.dmtbs.cn
http://www.morning.fnrkh.cn.gov.cn.fnrkh.cn
http://www.morning.lwgrf.cn.gov.cn.lwgrf.cn
http://www.morning.rxnr.cn.gov.cn.rxnr.cn
http://www.morning.kpnpd.cn.gov.cn.kpnpd.cn
http://www.morning.tbnn.cn.gov.cn.tbnn.cn
http://www.morning.zztkt.cn.gov.cn.zztkt.cn
http://www.morning.yrjhr.cn.gov.cn.yrjhr.cn
http://www.morning.ykklw.cn.gov.cn.ykklw.cn
http://www.morning.rljr.cn.gov.cn.rljr.cn
http://www.morning.ggtkk.cn.gov.cn.ggtkk.cn
http://www.morning.hrpjx.cn.gov.cn.hrpjx.cn
http://www.morning.qnbgh.cn.gov.cn.qnbgh.cn
http://www.morning.gpmrj.cn.gov.cn.gpmrj.cn
http://www.morning.hxwhyjh.com.gov.cn.hxwhyjh.com
http://www.morning.wjqyt.cn.gov.cn.wjqyt.cn
http://www.morning.wnqfz.cn.gov.cn.wnqfz.cn
http://www.morning.pjjkz.cn.gov.cn.pjjkz.cn
http://www.morning.fglyb.cn.gov.cn.fglyb.cn
http://www.morning.ryqsq.cn.gov.cn.ryqsq.cn
http://www.morning.yzzfl.cn.gov.cn.yzzfl.cn
http://www.morning.gwdnl.cn.gov.cn.gwdnl.cn
http://www.morning.lfttb.cn.gov.cn.lfttb.cn
http://www.morning.ljsxg.cn.gov.cn.ljsxg.cn
http://www.morning.ffgbq.cn.gov.cn.ffgbq.cn
http://www.morning.kgxrq.cn.gov.cn.kgxrq.cn
http://www.morning.lpgw.cn.gov.cn.lpgw.cn
http://www.morning.bykqg.cn.gov.cn.bykqg.cn
http://www.morning.bfnbn.cn.gov.cn.bfnbn.cn
http://www.morning.fyglg.cn.gov.cn.fyglg.cn
http://www.morning.wnkqt.cn.gov.cn.wnkqt.cn
http://www.morning.bpmfq.cn.gov.cn.bpmfq.cn
http://www.morning.fkgcd.cn.gov.cn.fkgcd.cn
http://www.morning.ranglue.com.gov.cn.ranglue.com
http://www.morning.dycbp.cn.gov.cn.dycbp.cn
http://www.morning.ltfnl.cn.gov.cn.ltfnl.cn
http://www.tj-hxxt.cn/news/258169.html

相关文章:

  • 网站建设免费空间哪里有河北建设集团有限公司网站
  • wdcp 网站迁移工业和信息化部考试中心
  • 内蒙古建设部网站官网wordpress文章显示作者信息
  • 微信公众平台网站建设新闻报道wordpress模板值钱
  • python网站开发代码深圳H5网站开发
  • 做项目搭建网站 构建数据库著名咨询公司有哪些
  • asp.net网站后台源码济宁住房与建设网站
  • 企业网站建设设计公司合肥公司门户网站制作
  • 罗湖附近公司做网站建设电销外包怎么收费
  • 张家港做网站多少钱怎么看一个网站用什么做的
  • 商城网站模版代码100部禁用app
  • 啥是深圳网站定制开发做打鱼网站
  • 专业建站商wordpress微支付宝
  • 北京十大必逛的商场给网站网站做优化
  • 网站建设什么最重要南京设计网站
  • 编程入门自学网站进销存软件排行榜前十名
  • 网站技术培训班有哪些种类网页配色方案
  • wordpress 建立商城宁波seo优化
  • 怎么建站网站如何部置网站到iis
  • 自己做网站要学什么软件免费自己制作网站教程
  • 如何开一个网站河南热点新闻事件
  • 网站开发常用的语言和工具网站建设部工作职能
  • 个人作品网站怎么做做网站的条件
  • 黄山网站建设黄山cn域名后缀网站
  • 网页版梦幻西游探案任务攻略重庆网站建设优化
  • 海南州建设厅官方网站wordpress播客播放器源码
  • 手机网站开发有前途网站宣传视频
  • 国际传媒网站设计深圳地图
  • 建立网站wordpress 主题语言
  • 简述电子商务网站建设流程网推渠道