版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程题目:利用 OllyDbg 逆向工具学习高级语言的输入输出与底层的对应关系一、实验背景软件逆向工程是在 1990 年发展起来的,现在已经有一些会议和计算机用户 组的专题会议主题。 软件逆向工程是分析目标系统, 认定系统的组件及其交互关 系,并且通过高层抽象或其他的形式来展现目标系统的过程。逆向工程 是了解 软件“所作所为”的一套最重要的技术和工具。 正式地讲,逆向工程是“通过分 析目标系统以识别系统的组件以及这些组件之间的相互关系并创建该系统另一 种形式的表或更高级的抽象过程”。 从工程实际的角度来看, 大体上可以将软件 逆向工程分为两大类:( 1)从已知软件系统的完整代码出发, 生成对应
2、系统的 结 构以及相关设计原理和算法思想的文档。 (2)从没有源代码的程序出发, 生成对 应的源程序、 系统结构以及相关设计原理和算法思想的文档等。 逆向工程在软件 分析中的作用主要分为以下六个部分: (1)查找恶意代码, 许多病毒和恶意代码 的 探测技术使用逆向工程来理解那些令人憎恶的代码是怎样构成和运作的。通 过逆向找出可用作特征码 的可识别模式用于驱动商业探测器和代码扫描器。 (2) 发现意想不到的缺陷和错误, 即使是设计最完美的系统也可能存在漏洞, 这是由 于我们使用的“前向工程”开发技术所固有的特点导致的。 逆向工程可以帮助我 们在发生致命的软件失效前识别缺陷和错误。 (3)查找是否
3、使用了其他人所写的 代码,搞清楚在应用程序的哪里使用了受保护的代码和技术, 这对于保护知识产 权不被滥用是很重要的。 逆向工程技术可用于检测应用程序是否包含所关心的软 件单元。(4)寻找对共享软件和开放源码的使用(在不该使用的地方) ,与侵犯 代码版权相反的是, 如果一个产品以 安全 和 专用 为目的,是否有可公开获取 的代码可能是大家关心的问题。 逆向工程能够用于检测代码复制问题。 ( 5)从其 他(不同领域或用途) 产品中学习, 逆向工程技术使我们能够学习先进的软件方 法,还允许新学员研究大师的作品。 这对于学习和积累不断发展的代码知识来说 是非常有用的。 许多网站是通过参考其他网站的做法
4、来建立的。 许多网页开发人 员是通过阅读其他网站的源代码学习 HTML和网页编程技术的。(6)发现原开发 人员以前没有意思到的特性或机遇, ( 6)发现原开发人员以前没有意思到的特性 或机遇二、实验环境介绍Windows 平台、 OLLYDBG 逆向软件、测试程序、 c-free5.0。三、实验工具介绍在现代操作系统中, 可以将调试器粗略地分为两种不同的风格: 用户模式调 试器 和 内核模式调试器。 用户模式调试器是一种普通的应用程序, 它将自己加 在另一个进程(即被调试程序)之上,并可以完全控制该进程。本实验使用的用 户模式调试器是 OLLYDB,对于逆向工作人员而言,由Oleh Yusch
5、uk编写的OLLYDB可能是最佳的用户模式调试器(尽管选择的余地非常小)。OLLYDB的诱 人之处在于:它一开始就是作为逆向工具而设计的, 因此它具有强大的内置的反 汇编器。OLLYDB的代码分析器可以识别出循环、switch控制块以及其它主要的 代码结构。 它能显示所有已知函数和 API 的参数名, 支持在代码和数据之间查找 交叉引用一一代码到数据或数据到代码。OLLYDB是调试器中(除了 IDA Pro调 试器)反汇编能力最强的一款, 连内核模式都比不上。 除了具有强大的反汇编能 力外,OLLYDB还提供了大量不同的视图,包括列出模块中的导入和导出、显示 被调试者拥有的窗口和其它对象的列表
6、、 显示当前的异常句柄链以及对那些在库 中正确命名的函数使用导入库(.lib 文件)等等。OLLYDB的典型界面如图3.1。图3.1 OLLYDBG勺典型界面四、相应知识点介绍通过测试键盘中的输入,屏幕的屏幕输出学习VC/VS中的各种常用的输入与 输出函数在底层是如何实现的;然后破解“ lia nxi.exe ”这个小程序。输入方式 很多并且高级语言也有很多种。C语言 输入函数有很多,常用的输入函数有: Scanf,getchar,getch 和 getche。如语法:seanf_s("< 格式化字符串 >",< 地址表 >);其中格式说明符:转换字
7、符(就是后跟的部分)显示于表4.1中。表4.1格式说明符:读浮点值(仅适用于C99); 读十进制整数; e读浮点数;读浮点数;读浮点数;读八进制数;a读浮点值(仅适用于C99) ; A c读单字符;di读十进制、八进制、十六进制整数; E读浮点数;fF读浮点数(仅适用于C99) ;gG读浮点数;os读字符串;五、实验内容5.1、通过测试键盘中的输入,屏幕的屏幕输出学习VC/VS中的各种常用的输入 与输出函数在底层是如何实现的。(1)通过编译器实现一个基本的输入输出函数,本实验使用的是seanf_s、printf函数。具体函数展示于表5.1。#include vstdio.h>int ma
8、in(int argc, char *argv)int i;scanf("%d",&i);printf("outputi=%d",i); return 0;表而具体对应的OLLYDB界面以及代码分别为图vimEiH9Ljn£;咅弔 i 斗 n 百l! ( ).i( ife 耳岬 tm 即 csifcfnn.酬畳亠 A£>L:! !»EH atfi <_|VT <»-<.jy* a 上IT 二引 曲 wjij兰 叫|鸣|亠卜ssirL(O.图5.1.1输入输出代码在OLLYDB中对应的
9、代码具体的汇编代码为表 表5.1.2输入输出对应的汇编代码:00401000 push ebp 00401001 mov ebp, esp00401003 push ecx00401004 leaeax, dword ptr ebp-400401007 push eax00401008 push 004020F4; ASCII "%d"0040100D call dword ptr v&MSVCR100.sca nf_s> MSVCR100.scanf s00401013004010160040101B00401021004010240040102600401
10、027push push call addxor leave retndword ptr ebp-4; /<%d>004020F8; format = "in put :%d"dword ptr <&MSVCR100.pri ntf> printfesp, 10eax, eax从上述图表可以看出我们用 C语言编写出的输出、输出代码在底层汇编对应的时候分配地址以及取地址输出情况5.2、破解“ lianxi.exe”这个小程序。在破译之前我们需要了解lianxi.exe这个小程序的基本运行情况。正常的每次输入都如图血 Nightnn4rj图5.2
11、.1 lianxi.exe正常输入判Seri41- Try again)»I1r图5.2.2 lianxi.exe正常输出通过OLLYDB逆向出了整个过程的汇编代码,其中前端语句以及做出相应的反应的是显示于表,每次都会显示":("和"Try again!"来提示我们输入错误。表0040105D|. /75 41JNZ SHORT lia nxi.004010A00040105F|. |817D 10 EB030>CMP DWORD PTR SS:EBP+10,3EB00401066|75 48JNZ SHORT lia nxi.00401
12、0B000401068|. |FF75 08PUSH DWORD PTR SS:EBP+80040106B|E8CALL lian xi.004010B600401070|. |0BC0OR EAX,EAX00401072|75 16JNZ SHORT lia nxi.0040108A00401074|. |6A 30PUSH 30J/Style = MB_OK|MBCONEXCLAMATION|MB_APPLMODAL00401076|. |68PUSH lia nxi.00403064;|Title =":("0040107B|. |68PUSH lian xi.004
13、03059;|Text :="Tryaga in!"00401080|. |FF75 08PUSH DWORD PTRSS:EBP+8;|hOw ner00401083|. |E8CALL vJMP.&user32.MessageBoxA>JMessageBoxA00401088|. |EB 14JMP SHORT lia nxi.0040109E0040108A|> |6A 40PUSH 40J/Style = MB_OK|MBCONASTERISK|MB_APPLMODAL0040108C|. |68PUSH lian xi.00403072;|Ti
14、tle =":)"00401091|. |68PUSH lian xi.00403067;|Text =:"Welldon e!"00401096|. |FF75 08PUSH DWORD PTRSS:EBP+8;|hOw ner00401099|. |E8 1A010000CALL <JMP.&user32.MessageBoxA>JMessageBoxA0040109E|> |EB 10JMP SHORT lia nxi.004010B0004010A0|> 837D 0C 10CMP DWORD PTR SS:EBP
15、+C,10004010A4|. 75 0AJNZ SHORT lia nxi.004010B0004010A6|. 6A 00PUSH0;/Result = 0004010A8|. FF75 08PUSH DWORD PTRSS:EBP+8;|hWnd004010AB|. E8 F6000000CALL <JMP.&user32.E ndDialog>JEn dDialog004010B0|> 33C0XOR EAX,EAX但是我们可以通过OLLYDB(逆向出的汇编代码知道了整个过程的输入判断 错误是标记绿色部分,从而修改了整个程序直接跳过那个错误提示的判断,直接运行
16、下一条语句,具体修改如表表00401039 |.FF35 PUSH DWORD PTR DS:403080;|hI nst=004000000040103F |.E8 6E010000CALL <JMP.&user32.Loadlco nA>JLoadIc onA00401044|.50PUSHEAX;/IParam00401045 |.6A 01PUSH 1J|wParam = 100401047 |.68PUSH 80;|Message=WM_SETICON0040104C |.FF75 08PUSH DWORD PTRSS:EBP+8J|hWnd0040104F |.
17、E8 6A010000CALL00401076 |. ":(" 0040107B |. "Try agai n!" 00401080 |.SS:EBP+8 00401083 |.68PUSH lian xi.0040306468PUSH lian xi.00403059FF75 08PUSH DWORD PTR;|hOw nerE8 CALL <JMP.&user32.MessageBoxA>|Title =;|Text =/错误判断提示MessageBoxA00401088 |. EB 14JMP SHORT lia nxi.004
18、0109E0040108A |> 6A 40PUSH40; /Style =MB_OK|MBCONASTERISK|MB_APPLMODAL 0040108C |. 68PUSH lian xi.0040307200401091 |. 68PUSH lian xi.00403067"Well don e!"|Title =":)"|Text =00401096 |.FF75 08PUSH DWORD PTRvJMP.&user32.Se ndMessageA> Sen dMessageA00401054|. EB 5AJMP SHORT lia nxi.004010B000401056|> 817D 0C 11010>CMP DWORD PTR SS:EBP+C,1110040105D|. 75 41JNZ SHORT lia nxi.004010A0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国际三八妇女节日记4篇
- 关于温馨早安感言55句
- “沙钢杯”理论题复习试题含答案(一)
- 2023-2024学年上海市娄山中学九年级(上)期中数学试卷(含解析)
- 语文统编版(2024)一年级上册快乐读书吧 教案
- DB11∕T 1461.4-2018 实验动物繁育与遗传监测 第4部分:实验用狨猴
- 第3章 药物设计的基本原理和方法课件
- 会计数据分析 TestBank Richardson1e-Chapter08-TB-AnswerKey
- 2024届陕西省度西安中学高三第三轮考试数学试题
- 我会正确进餐课件
- 期中考试考前Units1-4单元复习-鲁教版(五四学制)七年级英语上册
- 最新变压器运行规程
- 元宝枫籽油加工可行性研究报告
- 大学新进人员岗位聘用申请表(管理岗位)
- 质量管理体系成熟度评价指南
- 脑肠轴与情绪行为课件
- 外科学课件-门脉高压症
- 部编版小学六年级下册群文阅读含试卷(带答案)
- 中国城市中英文对照
- 《值机与行李运输》教学课件项目六特殊行李运输
- 《道路工程》word版
评论
0/150
提交评论