ollydbg软件破解及恶意程序实现原理

来源 :科学与财富 | 被引量 : 0次 | 上传用户:jiangjiao610329
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要: 软件的广泛应用带来了高额的经济效益。受高额利润驱使,某些个人或团体采用多种手段攻击和破解软件,给软件安全构成重大威胁,损害软件所有人权益。了解软件解密机理,采取有效措施,有助于防范恶意程序,提高软件安全。Ollydbg作为常用的软件动态分析工具,对软件破解意义重大,了解其工作机理,有助于软件加密,防范软件威胁。
  关键词: 解密;加密;恶意程序;ollydbg
  1 概述
  随着软件产品大量用于日常工作和学习中,软件的安全性受到不同领域、不同背景及不同群体的关注,有关软件加密、解密及病毒防护一直是软件安全的重要领域。了解软件加密、解密及病毒防护机理,有助于提高软件安全。
  软件分析方法主要分静态分析和动态分析法。静态分析即从反汇编出来的程序清单上分析,从提示信息入手进行分析,了解软件的编程思路,以便顺利破解。但静态分析不可能真正地了解软件的细节,如果碰到压缩程序,静态分析就无能为力了,只能采用动态分析。Ollydbg是一个新的动态追踪工具,能很好地完成程序反汇编工作。
  Ollydbg作为常用的软件动态分析工具,对软件破解意义重大,了解恶意程序的实现机理,能帮助我们更好地保障软件安全。本文主要说明ollydbg对破解软件的工作机理,说明加密及解密的有关概念及原理,并简要介绍像病毒一类恶意程序的实现原理,从而提高软件安全防护意识。
  2 相关概念
  2.1 软件加密
  软件开发者为了维护自身的商业利益,不断地寻找各种有效的技术来保护自身的软件版权,以增加其保护强度,推迟软件被破解的时间,由此产生了软件加密行为。
  软件加密就是用户在发送信息前,先调用信息安全模块对信息进行加密,然后发送,到达接收方后,由用户使用相应的解密软件进行解密并还原。采用软件加密方式有以下优点:已经存在标准的安全API(Application Programming Interface,应用程序编程接口)产品、实现方便、兼容性好。
  2.2 软件解密
  破解者或受盗版所带来的高额利润的驱使,或出于纯粹的个人兴趣,而不断制作新的破解工具并针对新出现的保护方式进行跟踪分析以找到相应的破解方法,从而达到无授权使用软件的目的。
  2.3 恶意程序的工作原理
  对于运行软件的可执行程序,排除其他无关因素,软件在正确的执行过程无非法错误。如果出现了不应有的错误,多半是受恶意程序的影响。那么作为恶意程序的开发者,将正确的程序执行过程破坏,使程序运行之后跳到自己编写的程序段,执行恶意程序代码,阻止程序继续往下执行,就达到了目的。
  恶意程序对可执行程序的修改如下:
  a)保存宿主文件的头3个字节到病毒代码中的AHead缓冲区中;
  b)得到宿主文件的长度Length;
  c)修改宿主文件的头3个字节为Jmp 100+length;
  d)在文件尾添加病毒代码VCode;
  e)判斷是否满足病毒发作条件,不满足转g);
  f)执行病毒的破坏代码;
  g)从Ahead缓冲区传送3个字节到 cs:100H;
  h)跳转到100H,执行原来文件的操作。(Jmp 100H)
  上述说明是对恶意程序的执行过程的说明,宿主文件将会继续执行后续的程序,要达到完全的阻止宿主文件执行,可去除上述e)、g)及h)步。
  2.4 ollydbg
  ollydbg是一个动态追踪工具,使用该工具能查看程序的汇编代码,通过分析程序执行过程可实现对程序的破解。Ollydbg的操作界面如图1所示。
  ollydbg中各窗口功能说明如下:
  a)反汇编窗口:显示被调试程序的反汇编代码;
  b)寄存器窗口:显示当前所选线程的CPU寄存器内容;
  c)信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等;
  d)数据窗口:显示内存或文件的内容;
  e)堆栈窗口:显示当前线程的堆栈。
  3 使用ollydbg实现程序破解
  3.1 加载可执行程序
  双击打开ollydbg程序,通过菜单文件->打开 来载入要加载的程序,ollydbg中显示的程序打开结果如图2所示:
  3.2 实现原理
  程序在执行中常要求用户输入注册码,只有输入正确的注册码,程序才能继续往后执行,否则将会弹出错误提示框,并结束程序的执行。这个过程说明了程序的加密机制,同时也从侧面反映了如何达到解密。
  3.2.1 经反汇编的程序有关键的程序跳转点,这些重要的汇编跳转指令说明见表1。
  3.2.2 获取注册文本的基本API函数如下:
  a)GetWindowTextA: 它的作用是复制指定窗口中的字符到缓冲区;
  b)GetDlgItemTextA:它的作用是返回对话框中某一个窗口的标题或文字;
  c)MessageBoxA:它的作用创建、显示和操作信息框。32位API常有 A W两种形式:MessageBoxA, MessageBoxW 。
  3.2.3 程序破解过程说明如下:
  a)运行软件,获取注册错误信息;
  b)进行反汇编;
  c)串式参考中找到错误提示信息或可能是正确的提示信息双击鼠标左键 ;
  d)主窗口中分析相应汇编,找出关键跳转和关键call;
  e)反推到跳转比较点,并获取注册信息;
  f)修改比较跳转语句,保存软件。
  4 结论
  对ollydbg破解软件过程的说明,能加强对软件破解机理的理解,从反向来提高软件安全意识以防范软件安全威胁。对ollydbg的深入实践将促使软件开发人员采用更优的软件加密方案,防范软件安全。
  参考文献
  [1] 沈美明 温冬禅 编著IBM-PC汇编语言程序设计 第2版清华大学出版社.
  [2] 曹加恒著 新一代汇编语言程序设计 高等教育出版社.
其他文献
会议
该文采用,短管重现长管中流动状态的方法,实验测量了内径为84.7μM的微细管内气体流动的沿程压力分布。结果表明,层流状态下,与大尺度不可压流动相比,微细管内气体流动具有较大的
摘 要: 随着经济水平的提高,空调也是普遍可见,几乎每家每户都有。中央空调已经成为一些公共场所的必要设备。作为一种大型的机电设备,中央空调会消耗很多的电能,如今倡导的理念是绿色环保,中央空调应该符合这一方面的要求,所以是很有必要对中央空调系统的节能运行管理进行研究的,通过设计维护和改造中央空调的相关设备,降低中央空调系统的能源消耗,从运行管理方面进行加强,在达到节能目的的同时,能提供一个舒适的环境
介绍在微细小零件在组装生产过程中,高速整列组装机的应用
摘 要:档案是国家机构、社会组织和个人在社会活动中形成的,保存备查的文字、图象、声音及其他各种形式的原始记录。医院档案管理主要包括两个方面的内容摘要:一是对医院档案资源的管理,也称档案实体管理;二是对医院档案中所包含的信息的管理,称档案信息组织。本文通过对医院档案管理工作的论述,提出了医院档案管理的新思路。  关键词:医院;档案管理;新思路  1医院档案管理工作的基本要求  1.1完整性要求维护医
摘 要: 城山矿随着其开采深度不断增加,受高应力的影响,软岩问题愈趋严重,36#层运输巷道支护的难度和破坏程度不断增加,底臌现象突显,围岩变形量大,影响巷道有效尺寸, 阻碍运输、通风和人员行走,严重威胁了煤矿的安全生产。  本论文深入分析该矿软岩变形机理,提出新的支护方案并应用实践,在现在矿压和变形量的监测下,验证了巷道没有发生明显的顶板下沉、喷层开裂及底鼓等现象。提高了生产的安全性,改善了矿井的
摘 要:发电厂主要电气设备安装质量控制工作的进行对于保证电气设备高效运行,满足发电厂运行效率有着重要作用。在实际发电厂设备安装质量控制工作进行过程中,尤其强化现场施工工作的控制,严格保证现场施工在严格的规范标准下进行,以此才能整体上促使发电厂主要电气设备性能完全发挥,为发电厂的运行发挥有效的支撑作用。  关键词: 发电厂;电气设备;安装控制;质量控制;现场施工  社会主义市场经济创新发展的过程中,
摘 要: 靶弹是武器定型和部队训练必不可少的考核手段,随着各种新型导弹性能的不断提升,对靶弹也提出了更高的要求,各国都十分重视高性能靶弹的发展。通过对高性能靶弹的发展趋势和关键技术进行分析,总结了今后靶弹研制工作的发展方向。  关键词: 高性能;靶弹;发展趋势;关键技术  1 概述  靶弹作为一种实物靶标,它可以比较真实的模拟来袭目标的目标特性,如飞行速度、飞行高度、机动特性、RCS反射特性等,能
本文提出图像处理与分析的新方法对微小零件的尺寸及各种误差进行测量,阐明了采用此方法的检测系统的工作原理、硬件构成、软件流程及系统标定的意义和方法,并论证了检测系统