首页
社区
课程
招聘
[原创]记一次某CTF比赛上的re
发表于: 2021-10-17 15:18 5494

[原创]记一次某CTF比赛上的re

2021-10-17 15:18
5494

程序开了ASLR 先CFF Explorer关了 Dll can move.
搜索字符串flag定位判断位置


往上回溯发现程序会创建子进程,并且父进程会调试子进程

图片描述
分析上图可知,当子进程遇到异常时,父进程会往子进程内存空间写入0x20个字节,而这0x20个字节就是最后判断flag需要比较的数组,动态调试,获取这0x20个字节
图片描述
修改程序流程使其不要创建子线程,而是直接跳到关键函数
图片描述
对于会触发异常的地方进行nop,因为我们已经不需要父进程的调试了,不nop程序无法运行
图片描述
断在0x140024876,发现字符串被逆序了:
图片描述
F8后发现输入字符被替换了
图片描述
动态调试知替换表单为:
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/
EZaBH9mJcDoMUqkF/+L6ROviAY2Gz7Wnt3x8PQVsIXj4SC0debpyKNgruhlf5Tw1
接着执行,发现sub_140011dac是个循环异或操作的函数,key为“PQVsIXj4SC0debpyKNgruhlf5ToMUqkF”
图片描述
图片描述
最后进行对比,正确即可得flag
写出脚本解出flag:
图片描述


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2021-10-17 15:24 被那年没下雪编辑 ,原因:
上传的附件:
收藏
免费 4
支持
分享
最新回复 (3)
雪    币: 499
活跃值: (2189)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
2
nb  一键三连 
2021-10-18 08:32
0
雪    币:
活跃值: (154)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
老铁66666666666666666666666666666666666666666666666666666666666666666666666666666666666666
2021-10-18 08:33
0
雪    币: 132
活跃值: (543)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
牛逼
2021-10-18 09:16
0
游客
登录 | 注册 方可回帖
返回
//