目录
动态分析技术调试器
动态分析技术中最重要的工具是调试器,分为用户模式和内核模式两种类型。用户模式调试器是指用来调试用户模式应用程序的调试器,工作在Ring3级例如llyDbgx64dbg、VisualC++等编译器自带的调试器。内核模式调试器是指能调试操作系统内核的调试器,例如OllyDbg。
什么是OllyDbg
OllyDbg(简称“OD”)是由leh Yuschuk(网上查了很久,竟然很少OD作者的消息。在一个国外站点上,我零星地找到一点资料:Oleh Yuschuk: 可能是前苏联->俄罗斯人,前苏联解体后移民德国且一直住在德国一个古老的小城,具体的信息查询不到)编写的一款具有可视化界面的用户模式调试器,可以在当前各种版本的 Windows上运行NT系统架构更能发挥OllyDbg 的强大功能。
OllyDbg能干什么
OllyDbg结合了动态调试和静态分析,具有 GUI界面,非常容易上手,对异常的跟踪处理相当灵活。这些特性使OllyDbg成为调试Ring3级程序的首选工具。它的反汇编引擎很强大,可识别数千个被C和Wimdows频繁使用的函数,并能将其参数注释出来。它会自动分析函数过程循环语句代码中的字符串等。此外,开放式的设计给了这个软件很强的生命力。通过爱好者们的不断修改和扩充,OllyDbg的脚本执行能力和开放插件接口使其变得越来越强大。
官方的下载地址:OllyDbg v1.10 OllyDbg这里推荐吾爱的插件多超好用。
OllyDbg窗口介绍
OllDbg启动后会打开多个子窗口,单击“View”菜单或工具栏上的“L”“E”“M”等快捷按钮可在各子窗口之间切换如下图所示。这些快捷按与“View”菜单的功能项对应包括Log窗口CPU窗口等各窗口功能描述请参考0llyDbg的帮助文档。
单击“File”“Open”选项(快捷键“F3”)打开一个EXE文件OllyDbg会立即加载文件自动分析并列出汇编代码。默认的当前窗口是CPU窗口,它是0yDbg中最重要的窗口,对应的图标是C,调试程序的绝大部分操作都要在这个窗口中进行。该窗口包括5个面板窗口分别是反汇编面板、寄存器面板、信息面板、数据面板和栈(stack)面板,如下图所示。各窗口的外观属性例如标题栏(bar)字体(font)等可以通过对应窗口右键快捷菜单中的“Appearance”(界面选项)选项控制。
1、反汇编面板窗口
反汇编面板窗口(Disassembler window)显示被调试程序的代码有4列分别是地址(Address)十六进制的机器码(Hexdump)反汇编代码(Disassembly)和注释(Comment)。在最后一列注释中显示了相关API参数或运行简表,非常有用。
00B2109B . B9 F8BAB400 mov ecx,路径修复.00B4BAF8 00B210A0 . E9 jmp 路径修复.00B277CB 00B210A5 . B9 FBBAB400 mov ecx,路径修复.00B4BAFB 00B210AA . E8 call 路径修复.00B28707 00B210AF . 68 83F9B300 push 路径修复.00B3F983 00B210B4 . E8 B call 路径修复.00B29A6E 00B210B9 . 59 pop ecx ; kernel32.777D0099 00B210BA . C3 retn 00B210BB . B9 B8BBB400 mov ecx,路径修复.00B4BBB8 00B210C0 . E8 call 路径修复.00B28707 00B210C5 . 68 8DF9B300 push 路径修复.00B3F98D 00B210CA . E8 9F call 路径修复.00B29A6E 00B210CF . 59 pop ecx ; kernel32.777D0099 00B210D0 . C3 retn 00B210D1 . 68 97F9B300 push 路径修复.00B3F997 00B210D6 . E8 call 路径修复.00B29A6E
在反汇编面板窗口的列(注意:不是列标题)中,默认情况下,双击可以完成如下操作。
- Address列:显示被双击行地址的相对地址,再次双击返回标准地址模式。
- Hexdump列:设置或取消无条件断点,对应的快捷键是“F2”键。
- Disassembly列:调用汇编器,可直接修改汇编代码,对应的快捷键是空格键。
- Comment列:允许增加或编辑注释,对应的快捷键是“”键。
从键盘上选择多行,可按“Shit”键和上下光标键(或者“PgUp”/“PgDn”键)实现也可利用右键快捷菜单命令实现。按“Ctl”键并按上/下光标键,可逐行滚动汇编窗口(当数据与代码混合时,此功能非常有用)。
2、信息面板窗口
在进行动态跟踪时,信息面板窗口(Information window)将显示与指令相关的各寄存器的值API函数调用提示和跳转提示等信息。
3、数据面板窗口
数据面板窗口(Dumpwindow)以十六进制和字符方式显示文件在内存中的数据。要显示指定内存地址的数据,可单击右键快捷菜单中的“Cotoexpression”命令或按“Ctl+G”快捷键打开地址窗口,输人地址。
00B40260 62 72 6F 6B 65 6E 20 70 69 70 65 00 63 6F 6E 6E broken pipe.conn 00B40270 65 63 74 69 6F 6E 20 61 62 6F 72 74 65 64 00 00 ection aborted.. 00B40280 63 6F 6E 6E 65 63 74 69 6F 6E 20 61 6C 72 65 61 connection alrea 00B40290 64 79 20 69 6E 20 70 72 6F 67 72 65 73 73 00 00 dy in progress.. 00B402A0 63 6F 6E 6E 65 63 74 69 6F 6E 20 72 65 66 75 73 connection refus 00B402B0 65 64 00 00 63 6F 6E 6E 65 63 74 69 6F 6E 20 72 ed..connection r 00B402C0 65 73 65 74 00 00 00 00 64 65 73 74 69 6E 61 74 eset....destinat 00B402D0 69 6F 6E 20 61 64 64 72 65 73 73 20 72 65 71 75 ion address requ 00B402E0 69 72 65 64 00 00 00 00 65 78 65 63 75 74 61 62 ired....executab 00B402F0 6C 65 20 66 6F 72 6D 61 74 20 65 72 72 6F 72 00 le format error. 00B40300 66 69 6C 65 20 74 6F 6F 20 6C 61 72 67 65 00 00 file too large.. 00B40310 68 6F 73 74 20 75 6E 72 65 61 63 68 61 62 6C 65 host unreachable 00B40320 00 00 00 00 69 64 65 6E 74 69 66 69 65 72 20 72 ....identifier r 00B40330 65 6D 6F 76 65 64 00 00 69 6C 6C 65 67 61 6C 20 emoved..illegal 00B40340 62 79 74 65 20 73 65 71 75 65 6E 63 65 00 00 00 byte sequence... 00B40350 69 6E 61 70 70 72 6F 70 72 69 61 74 65 20 69 6F inappropriate io 00B40360 20 63 6F 6E 74 72 6F 6C 20 6F 70 65 72 61 74 69 control operati 00B40370 6F 6E 00 00 69 6E 76 61 6C 69 64 20 73 65 65 6B on..invalid seek 00B40380 00 00 00 00 69 73 20 61 20 64 69 72 65 63 74 6F ....is a directo 00B40390 72 79 00 00 6D 65 73 73 61 67 65 20 73 69 7A 65 ry..message size 00B403A0 00 00 00 00 6E 65 74 77 6F 72 6B 20 64 6F 77 6E ....network down 00B403B0 00 00 00 00 6E 65 74 77 6F 72 6B 20 72 65 73 65 ....network rese 00B403C0 74 00 00 00 6E 65 74 77 6F 72 6B 20 75 6E 72 65 t...network unre 00B403D0 61 63 68 61 62 6C 65 00 6E 6F 20 62 75 66 66 65 achable.no buffe 00B403E0 72 20 73 70 61 63 65 00 6E 6F 20 63 68 69 6C 64 r space.no child 00B403F0 20 70 72 6F 63 65 73 73 00 00 00 00 6E 6F 20 6C process....no l 00B40400 69 6E 6B 00 6E 6F 20 6D 65 73 73 61 67 65 20 61 ink.no message a 00B40410 76 61 69 6C 61 62 6C 65 00 00 00 00 6E 6F 20 6D vailable....no m 00B40420 65 73 73 61 67 65 00 00 6E 6F 20 70 72 6F 74 6F essage..no proto
4、寄存器面板窗口
寄存器面板窗口(Registerswindow)显示CPU各寄存器的值支持浮点MMX和3DNow!寄存器。可以单击右键或窗口标题切换显示寄存器的方式。
5、栈面板窗口
栈面板窗口(Stack window)显示的内容即ESP指向地址的内容。将数据放入的操作称为人栈(push)从栈中取出数据的操作称为出栈(pop)。窗口非常重要各API函数和子程序都利用它传递参数和变量等。
010FFC74 |00000000 010FFC78 |00000000 010FFC7C |00000000 010FFC80 |00000000 010FFC84 |00000000 010FFC88 |00000000 010FFC8C |00000000 010FFC90 |010FFC58 010FFC94 |00000000 010FFC98 |010FFCB0 Pointer to next SEH record 010FFC9C |77C7AE30 SE handler 010FFCA0 |875B3DC9 010FFCA4 |00000000 010FFCA8 \010FFCB8 010FFCAC 77C67B3E RETURN to ntdll.77C67B3E from ntdll.77C67B3F 010FFCB0 FFFFFFFF End of SEH chain 010FFCB4 77C88C8F SE handler
今天的文章
网络安全|渗透测试入门学习,从零基础入门到精通—动态分析技术工具OllyDbg界面介绍分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/81100.html