type
status
date
slug
summary
tags
category
icon
password
这道题是最经典的天堂之门 简单查一下壳
notion image
32位程序
notion image
里面应该是有花指令的,导致无法进行反编译,但是找了一圈没有找到花指令,那么我们直接动调吧。
notion image
这个函数应该是scanf函数
然后我们在scanf函数后面下一个硬件断点
notion image
然后F9
然后我们发现断在的第一处是对输入的字符串进行了处理
notion image
notion image
接下来就是调试我们的天堂之门,我们发现有多处使用天堂之门
我们在天堂之门函数里面下个条件断点
notion image
然后我们发现还有两个地方调用了天堂之门
0x4011d0,0x401290
这些地方都是64位的,32位IDA识别不了
这个时候我们把这个32位的exe丢进010中
notion image
我们改变它的magic_number,10B为32位,20B为64位
然后放在64位IDA里面进行分析,我们一定要设置好它的基址
notion image
我们跳到0x4011d0这个地址
notion image
这里是一个反调试手段:BeingDebugged反调试技巧。gs:60h 获得 PEB 结构(进程环境块):
notion image
调试状态和非调试状态的加密是不一样的
notion image
以八个字符为一组,然后进行左移操作
之后我们跳转另一处地址0x401290
notion image
这里对接下来参与加密异或的密钥进行了初始化。这部分执行完后,我发现程序仍然没法调试,说明仍处于 64 位的工作模式,再加上一开始审视主函数代码时发现,这里跳转回去后后几行出现无法被正常解析的数据,猜测这里仍处于 64 位模式工作,我们用 64 位 ida 静态分析其代码:
notion image
由此我们分析出程序的加密逻辑:
由此我们写出解题脚本:
 
💡
有关复现上的问题,欢迎您在底部评论区留言,一起交流~
IDA疑难杂症学习2024venomCTF招新赛
Loading...
5m10v3
5m10v3
目前主攻方向为Re
Announcement
🎉5m10v3のBlog已经上线啦🎉
-- 感谢各位师傅的支持 ---
👏欢迎师傅们前来交流👏