IT评测·应用市场-qidao123.com

标题: 4.3 x64dbg 搜索内存可利用指令 [打印本页]

作者: 立山    时间: 2023-7-8 09:40
标题: 4.3 x64dbg 搜索内存可利用指令
发现漏洞的第一步则是需要寻找到可利用的反汇编指令片段,在某些时候远程缓冲区溢出需要通过类似于jmp esp等特定的反汇编指令实现跳转功能,并以此来执行布置好的ShellCode恶意代码片段,LyScript插件则可以很好的完成对当前进程内存中特定函数的检索工作。
一般而言远程缓冲区溢出攻击通常利用的是一些具有缓冲区溢出漏洞的函数或是特定的汇编指令片段,如:
在远程缓冲区溢出攻击中,攻击者也可以利用汇编指令jmp esp来实现对攻击代码的执行。该指令允许攻击者跳转到堆栈中的任意位置,并从那里执行恶意代码。
4.3.1 搜索可利用汇编指令集

在默认情况下,LyScript插件并不具备搜索连续指令的能力,虽然提供了get_disasm_code()系列的反汇编函数,但此类函数通常仅仅只能实现简单的反汇编功能,读者如果需要实现其他附加功能,含需要自行动手去实现,首先我们自行实现一个简单的汇编指令检索功能,用于寻找可利用的指令片段"pop esp","jmp esp","jmp eax","pop ecx"等指令集。
这段代码实现的机制可总结为如下步骤;
代码很容易被理解和实现,本质上仅仅只是提取所内存中所有的汇编指令集,并依次枚举对比是否符合列表中的条件,其最终实现代码如下所示;
[code]from LyScript32 import MyDebugif __name__ == "__main__":    dbg = MyDebug()    dbg.connect()    local_base_start = dbg.get_local_base()    local_base_end = local_base_start + dbg.get_local_size()    print("开始地址: {} --> 结束地址: {}".format(hex(local_base_start),hex(local_base_end)))    search_asm = ["pop esp","jmp esp","jmp eax","pop ecx"]    while local_base_start




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4