下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、参加国际学术会议总结高兵rd2010 3rd International Conference on Advanced Computer Theory and Engineering (ICACTE 2010) 于2010年8月20日至 2010年8月22日在四川成 都的四川大学召开,本次会议由四川省计算机学会和 IACSIT ( International Association of Computer Science and Information Technolog)y 联合发起, 由 IEEE、 四川大学,电子科技大学,西南交通大学,西南民族大学提供技术协助。会议旨 在为科研工作者和工
2、程技术人员提供一个报道先进研究成果、 交流学科前沿动态 的平台。会议吸引了来自亚洲、非洲、北美、欧洲等 20 余个国家和地区的百余位专 家、学者的参加, 会议内容涉及本领域国际最新研究动态及前沿工作, 反映了未 来发展方向。会上与国际知名学者交流, 感受了国内、国际权威学者的敏锐思维、 学习专家解决难题的灵活方式、感觉受益匪浅。大会共有 600 余篇 poster 展出,本人的第一作者论文 “Application of Structured Exception Handling in Software Anti-debugging ”被本次大会安排 为会议首日第一个分会场的第一个口头宣读,充
3、分体现了大会对本论文的重视, 作为本次大会第一个宣读的论文, 本论文也得到了分会场主席和与会专家和学者 的普遍好评并得到很多有益的建议,可谓收获颇丰。具体内容是:随着软件产业的快速发展, 以反跟踪技术为核心的软件安全已经成为一个重 要的课题。 在与软件解密做着不懈斗争的同时, 软件从业人员不断发现新的软件 反跟踪策略,提出新的软件保护方案,增强了软件的安全性。结构化异常处理,是操作系统提供的用于解决系统软硬件异常的一种机制, 在程序设计中的合理使用可以提高软件的稳定性、 容错性。本文着重探讨了其在 软件反跟踪中的应用。应用程序正常执行中出现异常时 , 操作系统将收集异常发生的原因、类型、 位置
4、等信息,填写相关的数据结构 ,并从用户程序转到系统级执行 ,将控制权交给 系统的异常调度函数。 该函数将根据系统收集的异常信息选择一个异常处理例程 处理异常。 用户可定义的异常处理例程分为两种; 一种是线程相关的, 一种是进 程相关的 :线程相关的异常处理例程 ,监视某线程中某段代码是否发生异常,由于 线程是程序执行的最小单位, 所以把异常解决于线程的内部, 可以避免该异常对 其它线程的干扰, 保证程序的稳定运行。 进程相关的异常处理例程: 也称为筛选 器,监视进程中所有线程发生的异常,做进程退出前的清理工作。异常处理流程是指运行在 win32 系统中的程序通常包含多个线程, 而每个线 程都会
5、安装各自的异常处理例程; 除此之外, 程序中可能存在一个全局性的异常 处理例程;再者,如果进程被调试的话,调试进程也相当于一个异常处理例程。 当异常发生时, 系统将根据异常类型选择一个异常处理例程来处理异常, 正常情 况下,系统进行异常处理的流程为: 系统首先判断异常是否应发送给目标程序的异常处理例程。 如果应该发送, 并且 目标程序正在被调试 则系统挂起程序; 如果程序没有被调试或者调试器未能处 理异常,系统继续查找是否安装了线程相关的异常处理例程。 如果已经安装, 系 统就把异常发送给 SEH 处理例程。每个线程相关的异常处理例程可以处理或者 不处理这个异常,如果它不处理并且安装了多个线程
6、相关的异常处理例程可交由链起来的其他例程处理;如果这些 SEH 处理例程均不处理异常,且程序处于被 调试状态, 操作系统会再次通知调试器; 如果程序未处于被调试状态或者调试器 没有能够处理,并且程序调用 SetUnhandledExceptionFilter 函数安装了进程相关 的异常处理例程的话, 系统转向对它的调用; 如果没有安装进程相关的异常处理 例程或者它没有处理这个异常, 系统会调用默认的异常处理例程, 通常显示一个 对话框,用户可以选择“关闭”或者可以将程序附加到调试器的“调试”按钮。 如果没有可以附加的调试器或调试器也不处理, 系统就对线程异常处理句柄进行 展开做最后的清理工作,
7、最终调用 ExitProcess 终结程序。通过对系统异常处理 流程分析可知, 当应用程序执行过程中发生异常时, 系统可在三个层次上完成异 常处理:调试器、进程、线程。线程层次的异常处理即SEH,能够准确定位异常的信息,更加灵活、隐蔽的实现反跟踪的功能,是本文研究的主要方面。下面 深入分析 SEH 的工作原理。系统级处理机制, SEH 作为系统内部处理异常的一种机制, 其工作主要在系 统级完成,因此掌握系统内部异常处理的工作原理是研究基于 SEH 的软件反跟 踪的关键。下面围绕异常处理例程深入分析系统级异常处理机制。异常发生时, 系统执行 KiUserExceptionDispatcher函数
8、并调用 RtIDispatchException 启动对注册 的异常处理例程的查找。如果找到的处理例程处理了异常并继续执行,则对 RtIDispatchException 的调用不再返回。否则,有两种可能:调用 NtContinue 使 程序继续或产生另一个异常。若是后者,异常不再继续,进程必须终止。RtIDispatchException 函 数 遍 历 异 常 帧 , 利 用 获 得 的 指 向 EXCEPTION_REGISTRATIONS 链表的指针遍历每一个节点查找异常处理例程 , 并通过 RtIpExecuteHandIerForException 完成异常处理例程的调用, 根据
9、RtIpExecuteHandIerForException 的反馈信息, RtIDispatchException 或者继续遍 历异常帧,或者产生另一个异常,最终将控制送至 ExecuteHa ndler函数,由该函 数通过 EXCEPTION_REGISTRATION 的 handIer 域调用异常处理例程,对程 序执行中产生的异常进行处理。SEH 在软件反跟踪中的主要应用方式是调试工具的检测、硬件断点的去除、 改变程序执行顺序等, 但这些反跟踪技术相对比较成熟, 很容易被破解者发现并 成功破解。本文所介绍的是一种更加隐蔽,效果更好的反跟踪方式:单步异常 - 抽取代码法。在程序的正常执行序
10、列中设置功能请求标志位,之后触发单步异常,进入异 常处理例程后根据标志位完成所抽取的相应的功能, 继续程序的运行。 这样,如 果破解者不能发现异常处理例程的存在, 将无法实现该功能。 这是因为异常发生 后,调试器接管了异常, 而不会去调用作者安装的实现具体功能的异常处理例程, 从而达到反跟踪的目的。利用单步异常实现反跟踪的具体过程是安装异常处理例程, 在程序开始处将 异常处理函数地址放入 EXCEPTION_REGISTRATION 结构的handler域中,一 旦执行过程中有异常发生系统就通过 han dler域的地址调用异常处理函数,完成 相关的异常处理,正常执行代码,安装完异常处理例程,
11、其后是程序功能代码, 在这里设置标志以便异常函数作不同的处理。插入单步异常指令, 此处是关键的地方,因为程序的反调试功能通过它来实现。当程序执行到这里时, 根据是否处于调试状态有两条执行路径,一条是处于调试状态,这时调试器接收异常信息, 并进行相关的处理, 这样将有部分程序代码得不到执行而使程序出现错误; 另一 条执行路径是不处于调试状态下, 程序本身将通过异常处理函数来处理异常, 这 样程序中部分被抽取的代码将得到执行, 程序不出现错误, 且功能可以实现。 清 除异常处理例程,程序执行完功能代码后, 要把开始时安装的异常处理例程去除, 否则容易引起系统错误。清除的方法是:用出栈指令将 EXC
12、EPTION_REGISTRATION 结构的 prev 与和 handler 域弹出即可。这次参加 ICACTE 国际会议,通过和与会学者的交流、探讨,我觉得自己的 收获主要在以下方面:( 1)对自己专业的新动态有了一定的把握,对本行业内的其他专业方向有了一 定的了解;(2)发现了自己在学术上存在的问题,这有助于以后的改进和提高;(3)结识了一些日本、韩国、台湾等地高校和公司的教授、研发人员和学生, 为以后更广泛的交流打下了基础;(4)发现了自己英语水平的不足,这将促使我更加努力地掌握英语,尤其是提 高口语水平。总体上,这次国际会议让我学到了很多东西, 虽然只有短短三天, 但我感觉 收获颇多,听到了许多新思想,结识了许多新朋
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版港口工程保险合同3篇
- 二零二五版涵洞工程环保监测合同3篇
- 二零二五版反担保合同模板:供应链金融3篇
- 二零二五年计时工劳动合同管理与心理关怀协议3篇
- 二零二五年度软件开发项目合同及其廉洁规定2篇
- 二零二五版教育SaaS平台软件服务合同3篇
- 二零二五版粉煤灰运输安全规范与应急预案编制合同3篇
- 二零二五年度特种饲料原料采购合同模板2篇
- 二零二五年防火墙安全防护系统集成与维护合同3篇
- 二零二五年度大数据中心建设与运营劳务分包合同3篇
- 2024版塑料购销合同范本买卖
- 【高一上】【期末话收获 家校话未来】期末家长会
- 二年级下册加减混合竖式练习360题附答案
- 应收账款的管理培训课件
- 2021年道路交通安全法期末考试试题含答案
- 股东变更情况报告表
- 自带药物治疗告知书
- 房产中介门店6S管理规范
- 吞咽解剖和生理研究
- TSG11-2020 锅炉安全技术规程
- 异地就医备案个人承诺书
评论
0/150
提交评论