网络安全|渗透测试入门学习,从零基础入门到精通—动态分析技术工具OllyDbg界面介绍

目录

动态分析技术调试器

什么是OllyDbg

OllyDbg能干什么

OllyDbg窗口介绍

1、反汇编面板窗口

2、信息面板窗口

3、数据面板窗口

4、寄存器面板窗口

5、栈面板窗口


动态分析技术调试器

动态分析技术中最重要的工具是调试器,分为用户模式和内核模式两种类型。用户模式调试器是指用来调试用户模式应用程序的调试器,工作在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 26670000   jmp 路径修复.00B277CB
00B210A5   .  B9 FBBAB400   mov ecx,路径修复.00B4BAFB
00B210AA   .  E8 58760000   call 路径修复.00B28707
00B210AF   .  68 83F9B300   push 路径修复.00B3F983
00B210B4   .  E8 B5890000   call 路径修复.00B29A6E
00B210B9   .  59            pop ecx                                  ;  kernel32.777D0099
00B210BA   .  C3            retn
00B210BB   .  B9 B8BBB400   mov ecx,路径修复.00B4BBB8
00B210C0   .  E8 42760000   call 路径修复.00B28707
00B210C5   .  68 8DF9B300   push 路径修复.00B3F98D
00B210CA   .  E8 9F890000   call 路径修复.00B29A6E
00B210CF   .  59            pop ecx                                  ;  kernel32.777D0099
00B210D0   .  C3            retn
00B210D1   .  68 97F9B300   push 路径修复.00B3F997
00B210D6   .  E8 93890000   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

猜你喜欢

转载自blog.csdn.net/qq_22903531/article/details/131377928
今日推荐