新手遇到一个CTF 题卡住了 求关键解题思路
本帖最后由 坎德沃 于 2021-8-18 08:32 编辑第一次发帖,如果有错误请版主或者热心的小伙伴给点提示
直接进入主题
CTF题名qcb千层饼
main函数的伪代码先上
找到了关键的判断
但是跟进去之后就被恶心到了,果然是千层饼
然后就是不停的return
在第17层发现第一次判断
528DC8里面是这两个参数的异或运算
进入return后继续千层饼套路
后面我跟了200多层跟不下去了
用Xrefe也看不出剩下的部分到底隐藏在哪里
有遇到过这种题目的大佬能提示一下怎么快速找到剩下的判断吗,不能每次遇到这种题都要不停的跟吧!人都麻了!{:1_885:} 本帖最后由 Li1y 于 2021-8-17 22:32 编辑
ctfshow的题啊,简单看了一下,套娃大多数的函数都是一样的或者说单纯的起到跳转作用,因此可以用函数大小来筛选,然后把可疑的函数下断点,下面是断点列表(理论上条件断点也行,不过没试过)
最终逆向可知输入的数据n1,n2需要满足条件如下,用数学方法或者Z3可以解决
ts.add(n1 >0)
ts.add(n2 >0)
ts.add(n2 <= 0xD7472^666)
ts.add(n1 ==0x516C5^n2)
ts.add((n2 & 1) == 0)
ts.add((n2/2-n1)== -107702)
number1:548903
number2:882402
yeah!Your flag:ctfshow{c52e1e1a335489030e882402c} 这种人工分析不了的就用angr吧 OD硬件断点很好解决啊 Li1y 发表于 2021-8-17 22:29
ctfshow的题啊,简单看了一下,套娃大多数的函数都是一样的或者说单纯的起到跳转作用,因此可以用函数大小 ...
感谢大佬解答,我才知道原来我找对函数了,方法也是类似的
通过找到的第一处看length的值然后进行排序筛选
包含套娃的函数大小长度都是94
然后找到另外三个有输入值进行判断的函数
没做过这种套娃的题型,我就担心这种方法找到的只是其中一部分判断,谢谢解答!
另外angr的提示也get了{:1_893:}
页:
[1]