【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-犀利的调试器
前言
OllyDbg是一款Windows平台下的32位汇编语言调试器,具有反汇编、单步执行、断点调试、内存分析等功能。常用于软件逆向工程、漏洞分析等方面。
其具体功能包括:
反汇编和调试:对可执行文件进行反汇编并可以在其中设置断点,以方便调试和分析。
动态调试:可以动态地修改软件的内存和寄存器值,以修改软件的执行流程,达到对软件的修改目的。
插件支持:OllyDbg支持插件,可以扩展其功能。
内存查看:可以查看软件运行时的内存状态,并可以修改和搜索内存中的值。
寄存器查看:可以查看和修改CPU寄存器的状态。
可视化调试:可以使用多窗口界面,更加方便地查看程序执行状态和内存状态。
基本使用方法如下:
打开OllyDbg软件,并将需要调试的程序拖进软件中。
在OllyDbg中设置断点,并运行程序。
当程序执行到断点处时,会自动暂停。
可以查看程序运行时的内存状态、寄存器状态等。
可以修改内存值、寄存器值等,以修改程序的执行流程。
通过单步执行等方式,逐步调试程序,直至达到预期效果为止。
OllyDbg是一个基于反汇编的调试器,它可以将二进制代码反汇编为汇编代码,并提供给用户进行分析和调试。以下是一些常见的反汇编函数:
MOV - 将数据从一个寄存器、内存或立即数移动到另一个寄存器或内存中。
ADD - 将两个值相加并将结果存储在目标寄存器或内存中。
SUB - 将第二个值从第一个值中减去,并将结果存储在目标寄存器或内存中。
PUSH - 将值压入堆栈中。
POP - 将堆栈中的值弹出并存储到寄存器或内存中。
CALL - 调用一个函数并将程序控制转移到该函数中。
RET - 从函数中返回,并将程序控制转移到调用该函数之后的指令。
CMP - 将两个值进行比较并设置标志寄存器中的相应位。
JMP - 将程序控制转移到另一个位置。
XOR - 对两个值进行异或操作并将结果存储在目标寄存器或内存中。
以上是仅仅是一些常见的反汇编函数,实际上还有很多其他的反汇编函数。熟悉这些函数,有助于我们分析反汇编代码并进行调试。
一、犀利的调试器
1.打开题目
2.解题
将程序拉入OllyDbg,右键搜索字符串
将输入与CTF_100_.002277F8亦或,再把亦或后的结果与给定的值进行比较,所以我们只要将 比较的内容和红框中的内容异或 就可以得到FLAG
l1 = [0x28, 0x57, 0x64, 0x6B, 0x93, 0x8F, 0x65, 0x51, 0xE3, 0x53, 0xE4, 0x4E, 0x1A, 0xFF]
l2 = [0x1B, 0x1C, 0x17, 0x46, 0xF4, 0xFD, 0x20, 0x30, 0xB7, 0x0C, 0x8E, 0x7E, 0x78, 0xDE]
ans = ''
for i, j in zip(l1, l2):
ans += chr(i ^ j)
print ans
flag为:
- 点赞
- 收藏
- 关注作者
评论(0)