IDA在漏洞分析与利用中的应用
1. 格式化字符串分析
在某些情况下, fprintf 函数期望在格式字符串参数之后紧接着有五个参数。前四个参数位于格式字符串参数和格式字符串缓冲区之间,而第五个参数会与格式字符串缓冲区的前四个字节重叠。对于熟悉格式字符串漏洞利用的人来说,格式字符串中的参数可以通过索引编号显式命名。例如,格式字符串 "%5$x" 用于访问格式字符串之后的第五个参数,并将其格式化为十六进制值。
编写一个能有效利用易受攻击二进制文件的格式字符串可能很棘手,通常依赖于对格式字符串中参数的精确指定。在很多情况下,IDA 可用于快速准确地计算格式字符串缓冲区所需的偏移量。结合 IDA 在反汇编各种程序段(如全局偏移表 .got 或析构函数表 .dtor )时提供的信息,就能准确得出正确的格式字符串,而无需像仅使用调试器开发利用程序时那样进行反复试验。
2. 定位指令序列
为了可靠地实施漏洞利用,通常需要采用一种无需知道 shellcode 确切内存地址的控制转移机制。当 shellcode 位于堆或栈中时,其地址可能不可预测,此时找到一个在漏洞触发时恰好指向 shellcode 的寄存器就很有必要。
例如,如果在控制指令指针时,已知 ESI 寄存器指向 shellcode,那么指令指针指向 jmp esi 或 call esi 指令会很有帮助,这样可以将执行流程转移到 shellcode,而无需知道其确切地址。同样,
超级会员免费看
订阅专栏 解锁全文
1882

被折叠的 条评论
为什么被折叠?



