摘要:
题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合 思路: 把字符串的元素依次放到栈里,遇到匹配的括号就抵消,否则照常放到栈里,最后检查栈里元素的个数,为0 阅读全文
摘要:
检查一下保护机制: 只有pie没有开 ida看下程序逻辑: main函数: 第13行获取一个数字,第14行malloc(8*num)申请一个堆块,这个堆块将被用于保存其它堆块的堆址 然后进入while循环,首先是sub_4011c6函数: 会把数组off_404020里的字符指针指向的字符串依次打印 阅读全文
摘要:
检查一下保护机制: 没有开启canary和pie,栈溢出少了很多麻烦 ida看下程序逻辑: gets函数导致栈溢出,可惜只有write函数作为输出, 本地可以写常用的rop,调用write函数泄露地址,但是远程的rdx好像为0,因此采用ret2csu的办法去泄露地址,拿到地址后接着写rop,执行sy 阅读全文
摘要:
64位程序,函数的前六个参数存储在 rdi、rsi、rdx、rcx、r8、r9,其余的参数放在栈上 在ret2libc的时候,需要知道libc的基址,然后才能知道具体的库函数地址 那么首要的问题就是泄露出libc基址,如果有puts、printf函数还好说,倘若给一个write函数,那么泄露地址就成 阅读全文