-
-
[原创][2021][KCTF] 第七题 千里寻根 wp
-
发表于:
2021-5-23 10:45
7987
-
[原创][2021][KCTF] 第七题 千里寻根 wp
2021 KCTF 第七题 千里寻根
首先用x64dbg调试,发现有壳,很多smc,一层套一层,而且好像有反调试,不能直接跑起来
不想脱壳,直接运行exe,等待输入序列号的时候,再用调试器附加
通过ReadFile回溯定位到读取输入序列号的位置:
往下单步看一看,找找感觉,走到处理输入的地方:
继续走看到这个:
后面就是利用gs:[10]复制堆栈数据并切换堆栈,跳转到新代码空间执行,销毁前一轮代码,smc解码,一般可能会只夹杂一行有效代码,
然后重新rdtsc取随机偏移,拷贝代码和数据,切换新堆栈,进入下一轮smc
感觉对我来说都是体力劳动,实在也没啥太多技术性的描述
可以对gs:[10]下了个硬件写断点,每次修改后意味着要进入下一轮了
根据硬件断点的命中次数,应该是循环了2021轮
旅途无比艰辛啊,直接瞻仰一下最后一轮的代码吧:
最后就是到每一轮中去找出那一行有效逻辑代码,感觉自动化识别我两三天也写不好,我选择肉眼识别
毕竟原始代码的执行是要恢复到真实堆栈位置的,可以利用rsp的位置辅助判断
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2021-5-23 10:53
被ccfer编辑
,原因: