欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    一种保护应用程序的方法 模拟Windows PE加载共30页文档.docx

    • 资源ID:2059767       资源大小:32.01KB        全文页数:27页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    一种保护应用程序的方法 模拟Windows PE加载共30页文档.docx

    1、一种保护应用程序的方法 模拟Windows PE加载共30页文档一种保护应用程序的方法 模拟Windows PE加载要练说,先练胆。说话胆小是幼儿语言发展的障碍。不少幼儿当众说话时显得胆怯:有的结巴重复,面红耳赤;有的声音极低,自讲自听;有的低头不语,扯衣服,扭身子。总之,说话时外部表现不自然。我抓住练胆这个关键,面向全体,偏向差生。一是和幼儿建立和谐的语言交流关系。每当和幼儿讲话时,我总是笑脸相迎,声音亲切,动作亲昵,消除幼儿畏惧心理,让他能主动的、无拘无束地和我交谈。二是注重培养幼儿敢于当众说话的习惯。或在课堂教学中,改变过去老师讲学生听的传统的教学模式,取消了先举手后发言的约束,多采取自

    2、由讨论和谈话的形式,给每个幼儿较多的当众说话的机会,培养幼儿爱说话敢说话的兴趣,对一些说话有困难的幼儿,我总是认真地耐心地听,热情地帮助和鼓励他把话说完、说好,增强其说话的勇气和把话说好的信心。三是要提明确的说话要求,在说话训练中不断提高,我要求每个幼儿在说话时要仪态大方,口齿清楚,声音响亮,学会用眼神。对说得好的幼儿,即使是某一方面,我都抓住教育,提出表扬,并要其他幼儿模仿。长期坚持,不断训练,幼儿说话胆量也在不断提高。 某天睡觉醒来,我发现我会开机了方法,过程,目标,成就是时候起兵作反了不要太多感情一般说来,“教师”概念之形成经历了十分漫长的历史。杨士勋(唐初学者,四门博士)春秋谷梁传疏曰

    3、:“师者教人以不及,故谓师为师资也”。这儿的“师资”,其实就是先秦而后历代对教师的别称之一。韩非子也有云:“今有不才之子师长教之弗为变”其“师长”当然也指教师。这儿的“师资”和“师长”可称为“教师”概念的雏形,但仍说不上是名副其实的“教师”,因为“教师”必须要有明确的传授知识的对象和本身明确的职责。 posts-787,comments-225,trackbacks-0,articles-1这个工作可让学生分组负责收集整理,登在小黑板上,每周一换。要求学生抽空抄录并且阅读成诵。其目的在于扩大学生的知识面,引导学生关注社会,热爱生活,所以内容要尽量广泛一些,可以分为人生、价值、理想、学习、成长、

    4、责任、友谊、爱心、探索、环保等多方面。如此下去,除假期外,一年便可以积累40多则材料。如果学生的脑海里有了众多的鲜活生动的材料,写起文章来还用乱翻参考书吗? 【转载】一种保护应用程序的方法模拟Windows PE加载器,从内存资源中加载DLL编程2019-07-27 21:23:47阅读375 1、前言目前很多敏感和重要的DLL(Dynamic-link library)都没有提供静态版本供编译器进行静态连接(.lib文件),即使提供了静态版本也因为兼容性问题导致无法使用,而只提供DLL版本,并且很多专业软件的授权部分的API,都是单独提供一个DLL来完成,而主模块通过调用DLL中的接口来完成

    5、授权功能。虽然这些软件一般都采用了加壳和反调试等保护,但是一旦这些功能失去作用,比如脱壳,反反调试,HOOK API或者干脆写一个仿真的授权DLL(模拟授权DLL的所有导出函数接口),然后仿真的DLL再调用授权DLL,这样所有的输入首先被仿真DLL截获再传递给授权DLL,而授权DLL的输出也首先传递给仿真DLL再传递给主程序,这样就可以轻易的监视二者之间的输入输出之间的关系,从而轻易的截获DLL中的授权信息进行修改再返回给主程序。2、目前隐式调用敏感DLL中可能存在的安全隐患以下通过两个软件的授权DLL来说明这种问题的严重性。如下是两个软件中授权DLL的部分信息,如下图所示:(图1)通过工具O

    6、llyICE可以轻易的看出IoMonitor.exe调用授权DLL(XKeyAPI.DLL),这样就很容易在调用这些API的地方设置断点,然后判断输入输出的关系,从而达到破解的目的。(图2)通过工具OllyICE可以轻易的看出sfeng.DLL中导出了很多函数,其中含义也很明显。GetHDID获取硬盘的ID,GetCpuId获取cpu的ID,WinAntiDebug反调试接口。而这些都是主程序需要调用的,比如:主程序通过GetHDID来获取硬盘编码,以这个硬盘ID的伪码来生成授权码,破解者很容易修改这些接口的输出值或者干脆写一个sfeng.DLL来导出跟目标sfeng.DLL一模一样的导出函数

    7、,而主程序却完全不知晓。只要用户有一套授权码就可以让GetHDID不管什么机器都返回一样的值,从而达到任何机器都可以使用同一套授权码。(图3)如上图所示,直接修改DLL中函数GetHDID(RVA地址:0093FF3C开始)的实现,让它直接返回固定的硬盘ID就可以达到一个授权到处使用的目的。其中:WD-Z=AM9N 086529ksaiy为需要返回的已经授权的硬盘ID,我们直接返回这个值即可。把原来0093FF3C部分的代码用nop替换掉,添加Call 008FFF60,后面添加字符串WD-Z=AM9N 086529ksaiy,Call 008FFF60之后,ESP=Call后的返回地址(Ca

    8、ll指令的下一行),也就是字符串WD-Z=AM9N 086529ksaiy的首地址,然后pop EAX后,返回值就是字符串的首地址,通过这种简单的修改就可以达到破解的目的,说明这种隐式的调用是非常危险的。3、模拟Windows PE加载器,从资源中加载DLL本文主要介绍将DLL文件进行加密压缩后存放在程序的资源段,然后在程序中读取资源段数据进行解压和解密工作后,从内存中加载这个DLL,然后模拟PE加载器完成DLL的加载过程。本文主要以Visual C+6.0为工具进行介绍,其它开发工具实现过程与此类似。这样作的好处也很明显,DLL文件存放在主程序的资源段,而且经过了加密压缩处理,破解者很难找到

    9、下断点的地方,也不能轻易修改资源DLL,因为只有主程序完成解压和解密工作,完成PE加载工作后此DLL才开始工作。我们知道,要显式加载一个DLL,并取得其中导出的函数地址一般是通过如下步骤:(1)用LoadLibrary加载DLL文件,获得该DLL的模块句柄;(2)定义一个函数指针类型,并声明一个变量;(3)用GetProcAddress取得该DLL中目标函数的地址,赋值给函数指针变量;(4)调用函数指针变量。这个方法要求DLL文件位于硬盘上面,而我们的DLL现在在内存中。现在假设我们的DLL已经位于内存中,比如通过脱壳、解密或者解压缩得到,能不能不把它写入硬盘文件,而直接从内存加载呢?答案是肯

    10、定的,方法就是完成跟Windows PE加载器同样的工作即可。加载过程大致包括以下几个部分:1、调用API读取DLL资源数据拷贝到内存中2、调用解压和解密函数对内存中的DLL进行处理3、检查DOS头和PE头判断是否为合法的PE格式4、计算加载该DLL所需的虚拟地址空间大小5、向操作系统申请指定大小的虚拟地址空间并提交6、将DLL数据复制到所分配的虚拟内存块中,注意文件段对齐方式和内存段对齐方式7、对每个DLL文件来说都存在一个重定位节(.reloc),用于记录DLL文件的重定位信息,需要处理重定位信息8、读取DLL的引入表部分,加载引入表部分需要的DLL,并填充需要的函数入口的真实地址9、根据

    11、DLL每个节的属性设置其对应内存页的读写属性10、调用入口函数DLLMain,完成初始化工作11、保存DLL的基地址(即分配的内存块起始地址),用于查找DLL的导出函数12、不需要DLL的时候,释放所分配的虚拟内存,释放所有动态申请的内存以下部分分别介绍这几个步骤,以改造过的网上下载的CMemLoadDLL类为例程(原类存在几个错误的地方)A.调用API读取DLL资源数据拷贝到内存中/加载资源DLL#define strKey(char)0x15 char DLLtype4=DstrKey,lstrKey,lstrKey,0x00;HINSTANCE hinst=AfxGetInstanceH

    12、andle();HRSRC hr=NULL;HGLOBAL hg=NULL;/对资源名称字符串进行简单的异或操作,达到不能通过外部字符串参考下断点for(int i=0;i sizeof(DLLtype)-1;i+)DLLtypei=strKey;hr=FindResource(hinst,MAKEINTRESOURCE(IDR_DLL),TEXT(DLLtype);if(NULL=hr)return FALSE;/获取资源的大小DWORD dwSize=SizeofResource(hinst,hr);if(0=dwSize)return FALSE;hg=LoadResource(hins

    13、t,hr);if(NULL=hg)return FALSE;/锁定资源LPVOID pBuffer=(LPSTR)LockResource(hg);if(NULL=pBuffer)return FALSE;FreeResource(hg);/在资源使用完毕后我们不需要使用UnlockResource和FreeResource来手动地释放资源,因为它们都是16位Windows遗留下来的,在Win32中,在使用完毕后系统会自动回收B.调用解压和解密函数对内存总的DLL进行处理对于上面获取的pBuffer可以进行解压和解密操作,算法应该跟你加入的资源采取的算法进行逆变换即可,具体算法可以自己选择,此

    14、处省略。C.检查DOS头和PE头判断是否为合法的PE格式/CheckDataValide函数用于检查缓冲区中的数据是否有效的DLL文件/是一个可执行的DLL TRUE,否则返回FALSE。/lpFileData:存放DLL数据的内存缓冲区/DataLength:DLL文件的长度BOOL CMemLoadDLL:CheckDataValide(void*lpFileData,int DataLength)/检查长度if(DataLength sizeof(IMAGE_DOS_HEADER)return FALSE;pDosHeader=(PIMAGE_DOS_HEADER)lpFileData;

    15、/DOS头/检查dos头的标记if(pDosHeader-e_magic!=IMAGE_DOS_SIGNATURE)return FALSE;/0*5A4D:MZ/检查长度if(DWORD)DataLength(pDosHeader-e_lfanew+sizeof(IMAGE_NT_HEADERS)return FALSE;/取得pe头pNTHeader=(PIMAGE_NT_HEADERS)(unsigned long)lpFileData+pDosHeader-e_lfanew);/PE头/检查pe头的合法性if(pNTHeader-Signature!=IMAGE_NT_SIGNATURE)return FALSE;/0*00004550:PE00 if(pNTHeader-FileHeader.Characteristics&IMAGE_FILE_DLL)=0)/0*2019:File is aDLL return FALSE;if(pNTHeader-FileHeader.Characteristics&IMAGE_FILE_EXECUTABLE_IMAGE)=0)/0*0002:指出文件可以运行return FALSE;if(pNTHeader-FileHeader.SizeOfOptionalHeader!=sizeof(IMAGE_OPT


    注意事项

    本文(一种保护应用程序的方法 模拟Windows PE加载共30页文档.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开