- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络攻击课件-二进制代码分析
参考代码 仅供参考 对抗代码逆向:代码虚拟化 虚拟机保护技术使用类似于Java的虚拟机技术,就是把要执行的指令通过Java的虚拟机JVM来解释字节码并执行。 VMProtect和ASProtect的SDK编程差不多,都是在编程时在语句里面插入一个标记(Marker),然后在加壳处理时时,加壳程序就会认出这些标记,并对标记区间内的代码进行保护。 典型的虚拟机结构 VStartVM VMDispacher Bytecode Handler1 Handler2 Handler3 带壳程序的运行特点 静态分析无效 // IDA 动态执行过程中分段解压缩(解密)执行 虚拟机保护下的 VMProtect #include windows.h #include stdio.h #include VMProtectSDK.h“ main() { unsigned int x; x = rand(); VMProtectBegin(test--1); x += 0 x *= 0xaabbccdd; VMProtectEnd(); printf(a=%d\n, x); return 0; } 脱壳 unpacker 常用的脱壳工具 File Scanner 通用的脱壳工具 ProcDump32 通用脱壳工具 ASPack unpacker ACProtect Stripper UPX自带脱壳的命令 Upxfix UnPEPack用于脱PEPACK Themida:4种保护宏 Encode:解密出被保护的原始x86指令执行完毕后马上又重新加密回去。 Clear:执行完毕后删除原有的80x86指令,下次需要再执行则要重新解密。 CodeReplace: VM:用虚拟机解释系统替换掉原有的x86指令。 插件 调试器进程 虚拟机 目标进程 脱壳后代码 加壳后代码 追踪 Od插件:反反跟踪 PhantOm.dll StrongOD.dll 中断、异常 外部中断interrupt,异步的,无法预测,软件可以关中断,这样就眼不见心不烦了。 由软件产生的中断如X86的“INT n”,程序有意主动产生,这种称之为“陷阱”。 与中断相似的机制称之为“异常”(exception),一般也是异步的,多半是由于“不小心”犯了规才发生的。例如,div 0、缺页、非法地址访问、调试中断等。 结构化异常处理(SEH) Structured Exception Handling 操作系统中的 EXCEPTION_REGISTRATION 结构链表 当异常发生时,系统遍历这个链表以便查找其中的一个结构,询问是否同意处理该异常。异常处理程序通过返回如ExceptionContinueExecution 表示它同意处理这个异常。 异常回调函数也可以拒绝处理这个异常。此时,系统会继续询问下一个结构。 SEHOP Structured Exception Handler Overwrite Protection(结构化异常处理覆盖保护) SEH攻击是指通过栈溢出或者其他漏洞,使用精心构造的数据覆盖结构化异常处理链表上面的某个节点或者多个节点,从而控制EIP(控制程序执行流程)。而SEHOP则是是微软针对这种攻击提出的一种安全防护方案。 SEHOP效果 SEHOP的保护是系统级别的,将更难绕过去。而且不需要修改原有的应用程序,对性能的影响基本可以忽略(因为只有在触发异常时才会触发SEHOP保护逻辑)。而覆盖SEH进行攻击是在/GS的保护出来以后,无法覆盖函数返回地址时,攻击者常用的技巧。 SEHOP方案终结了SEH覆盖攻击吗?NO!【备注行】的基本思路是构造一个伪造的SEH链表,从而欺骗SEH检测,达到绕过的目的。 不过,作者也提到了在ASLR和DEP的都开启的情况下,利用是非常困难的。 注入方法(1)AppInit_DLLs Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows] AppInit_DLLs=c:\\mydll3.dll 建立一个reg后缀名的文件,把如上内容放进去。 演示 记事本+ws2_32.dll 有选择地驻留 BOOL APIENTRY DllMain(HANDLE hModule, DWORD fdwReason, LPVOID lpReserved) { char name[200]={0}; char *pn = name; DWORD dw = GetModuleFileNam
您可能关注的文档
最近下载
- 零碳开关站设计与评价导则.pdf VIP
- 中职英语高教版(2023修订版)基础模块3三单元《Grammar》课件.pptx VIP
- 第3课 中古时期的西欧 课件 中职高教版世界历史.ppt
- 贯彻落实八项规定精神情况《工作总结》(参考格式).doc VIP
- STM32嵌入式技术与应用:电子时钟设计与实现.pptx VIP
- 2025河南民航发展投资集团有限公司招聘28人笔试模拟试题及答案解析.docx VIP
- T_CCUA 048-2025 政务信息系统运行维护费用定额测算方法.pdf VIP
- 第四章第二节种群数量的变化.ppt VIP
- 国有独资公司.docx VIP
- 村级太阳能路灯日常维护管理.docx VIP
文档评论(0)