面向中小型企业软件的逆向工程分析.pdf
《面向中小型企业软件的逆向工程分析.pdf》由会员分享,可在线阅读,更多相关《面向中小型企业软件的逆向工程分析.pdf(4页珍藏版)》请在咨信网上搜索。
1、2023年9月计算机应用文摘第39 卷第17 期面向中小型企业软件的逆向工程分析罗道乾,廖柏睿,张帆,袁文涛(南宁师范大学师园学院理工系,南宁530 0 0 0)摘要:随着信息时代的高速发展和计算机的普及,软件产品层出不穷。软件安全性分析成为保证软件质量和安全性的重要手段。然而,软件的安全性与保密性并非绝对,逆向破解的人越来越多,对于中小型企业开发的软件而言,这无疑是一个巨大的挑战。为了更好地进行逆向分析,文章引入NOP填充法进行NOP填充,逆向分析的时间将大幅缩短。文章以OllyDbg软件为例,对TraceMe.exe进行反向编译和动态调试,分析关键指令并使用更加简洁的NOP填充法修改其关键
2、指令。关键词:逆向工程;OllyDbg;跳转;网络安全;NOP填充中图法分类号:TP311Reverse engineering and security for small and medium-sized enterprises(Department of Science and Engineering,Shiyuan College of Nanning Normal University,Nanning 530000,China)Abstract:With the rapid development of the information age and the popularizati
3、on of computers,software products are emerging endlessly.Software security analysis has become an important meansto ensure software quality and security.However,the security and confidentiality of software are notabsolute,and there are more and more people engaged in reverse cracking.For software de
4、veloped bysmall and medium-sized enterprises,this is undoubtedly a huge challenge.In order to better conductreverse analysis,the article introduces the NOP filling method for NOP filling,which willsignificantly shorten the time of reverse analysis.The article takes OllyDbg software as an example tor
5、everse compile and dynamically debug TraceMe.exe,analyze key instructions,and use a moreconcise NOP filling method to modify its key instructions.Key words:reverse engineering,OllyDbg,jump,network security,NOP filling文献标识码:ALUO Daoqian,LIAO Bairui,ZHANG Fan,YUAN Wentao1引言在实际的软件逆向工程中,逆向编译原理和逆向动态调试技术往
6、往会结合使用,以达到更好地分析和修改软件的效果。目前主流的逆向工具有OllyDbg、Ollyice、I D A 等,这些软件具有图形化用户模式调试器,可以在各种主流Windows操作系统下运行,而且容易上手。这些工具对异常的跟踪处理相当灵活,并且许多IT爱好者为这类软件编写了大量的实用插件,使得在Windows操作系统上进行动态调试成为用户的首选。本文以使用OllyDbg工具对TraceMe.exe进行反向编译为例,可以采取绕过或修改判断值的方法,也可以使用二进制NOP填充的方法去改变关键指令,以达到跳转到某个函数的目的。2木相关技术线路2.1国国内外研究现状和发展动态在国外,软件逆向工程的研
7、究非常活跃。随着计算机技术的发展,软件逆向工程技术也在不断进步。在逆向动态调试技术方面,国外已经出现了一些比较成熟的商业工具,例如IDAProOllyDbg等。这些工具具备强大的逆向分析能力,可以对各种不同类型的二进制文件进行分析和调试。此外,国外的一些安全研究人员也在开源社区中发布了许多逆向工程的研究成果和工具。例如,佛罗里达州立大学的实验室开发了一款名为angr 的二进制分析框架,用于程序分析、漏洞挖掘和逆向工程等。angr不仅能够进行静态和动态分析,还能够自动化探索程序中的路径和状态,基金项目:2 0 2 2 年度大学生创新创业大赛省级课题:面向中小型企业的逆向工程与安全(S202213
8、642060)2023年第17 期使得研究人员可以更加高效地分析目标程序。在中国,软件逆向工程也逐渐得到了关注和发展。国内研究人员在软件逆向分析、恶意代码分析和漏洞挖掘等方面做出了许多贡献。例如,北京大学信息安全实验室发布了名为PANDA的二进制动态分析系统,可以用于快速定位和分析漏洞。此外,上海交通大学、南京大学和中科院信息工程研究所等单位也在软件逆向工程领域取得了一些成果。其中,南京大学发表的论文基于深度学习的恶意软件检测研究受到了广泛关注。李莉等 1 发表了名为使用OllyDbg工具的破解尝试的论文,文中展示了无壳破解的过程;唐剑飞等 2 发表了名为基于OllyDbg的自解密程序分析的论
9、文,文中使用了INT3断点法和文件写人法进行破解。逆向分析方法介绍如下。(1)INT3 断点法。INT3断点法是一种基于断点和单步执行的破解方法,适用于x86系列的处理器。这些处理器向用户提供了专门支持程序调试的指令,即 INT3指令,这是一种常用的断点类型。通常,INT3断点法被用于调试C或C+代码,但也可以用于其他编程语言,比如汇编语言或.NET应用程序。在调试某个程序时,用户可以选择在代码的某一位置插人一个断点。当 CPU执行代码指令时,若遇到断点,执行会暂时停止,此时用户可以观察运行状态和寄存器内容以进行调试。这是软件调试中常用的断点功能,INT3指令也可称为断点指令。INT3断点法有
10、许多优点,其中一个是设置断点的数量不受限制。用户可以根据自己的需求和习惯,设置任意数量的INT3断点,这样能够进行精准的暂停和仔细的观察,在调试上起到很大的作用。然而,INT3断点法也存在缺点。INT3指令的二进制码为OxCC,插人INT3指令相当于改变了源程序指令。如果将断点设在API的首地址或跳转指令的首地址处,并且目标软件设置了检查功能,那么很容易检测出断点的存在。此时,软件会查找首地址处是否为OxCC,并在确认后将其覆盖,恢复成原来的指令。(2)文件写人法。文件写入法是一种操作较为复杂的方法,且只能针对属于片区的大块数据域运算,在写入中还需保证程序的正确性。若通过文件写入法来进行软件破
11、解,需要先将目标程序文件用二进制格式打开,然后通过计算和观测来确定需要手动写入的代码段,将需要修改的部分手动写入异或语句和跳转,以达到破解的目的。计算机应用文摘文件写人法的优点在于能直接修改底层程序,不仅不容易被检测到,而且稳定不易出错,自定义程度极高。但其缺点也极为明显,即文件写入法需要对二进制文件进行修改,这可能导致程序的稳定性和可靠性受到影响。此外,文件写入法还可能被安全软件所检测,从而被识别为恶意软件,导致被杀毒软件屏蔽或删除。因此,在进行反编译和文件写入操作时,应该备份原始文件,以便出现问题时能够快速恢复程序的原始状态。常规的逆向分析法需要对每一条跳转指令进行分析并修改,直到能成功跳
12、转至目标指令函数。若遇到大量的花指令,将会增加难度,逆向分析的时间也会增加。鉴于此,引人了NOP填充法。(3)NOP 填充法。NOP填充法是一种调试技术,在代码中插人一些无效的指令,使得程序在执行时跳过指定位置的一段代码。它的原理与文件写人法、API断点法类似,都是通过在程序执行期间修改指令或指令集来实现断点调试和破解。在代码中插入一些无效指令,可以使得程序执行时跳过指定位置的代码。这个过程可以通过程序读取二进制代码,找到要插入NOP的指令位置,然后将NOP插人指令集中。除了NOP指令,用户还可以在代码中插人其他无操作指令,例如XCHGEAX,EA X(将EAX寄存器的值与自己交换),MOVE
13、AX,EA X(将EAX寄存器的值赋值给自已)等,这些指令也可以用来填充,与NOP指令效果相同,十分方便快捷。在具体实现上,首先需要确定要替换的指令地址,然后计算出替换后指令长度和原指令长度之间的差值。接着,在目标程序中填充NOP指令,直至达到该差值。当程序执行到被替换的指令地址时,程序会在NOP指令处停下来等待调试器的陷阱,从而达到断点的效果。NOP填充法的优点是无需逐一分析每一条指令,只需直接在最关键的跳转指令处进行NOP填充。此时,无需考虑指令会跳转到何处,判断也将失效,无论怎么操作都会成功跳转到目标指令函数,从而降低了逆向分析的复杂程度,节省了大量的时间和精力。然而,该方法也有一些缺点
14、。首先,NOP填充法并不是对所有调试器都是无效的。有些调试器可以直接跳过NOP指令进行调试,因此该方法只能增加调试者的破解难度,而不能完全防止调试。其次,过多的 NOP指令会增加程序的代码体积,可能影响程序的执行效率。此外,NOP填充法只是反调试技术的一种,需要与其他反调试技术结合使用才能提高反调试的效果。1010.084054E41022.2软件的逆向分析过程2.2.1打开吾爱破解版OllyDbg工具载人TraceMe.exe后,按F9键运行或点击OllyDbg工具栏上的“运行”按钮,如图1所示。文件(F查看(M调试(D)插件(P)选项()i暂停区川064013A655004013A18BE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 中小型企业 软件 逆向 工程 分析
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。