首页
社区
课程
招聘
4
[原创]看雪CTF.TSRC 2018 团队赛 第二题 半加器 writeup
发表于: 2018-12-3 22:53 3487

[原创]看雪CTF.TSRC 2018 团队赛 第二题 半加器 writeup

2018-12-3 22:53
3487
首先查壳,发现没有壳
然后根据PE看一下是不是32位程序,这个是32位程序,所以可以用OD来分析(希望OD能早日开发出支持64位的版本)


根据程序特征我们可以根据 Peease Input 这个字符串定位到关键点

直接载入OD,查找对应字符串

002419FE  |.  68 68303900   push Exam.00393068  在此下断
002419FE  |.  68 68303900   push Exam.00393068  在此下断

通过回溯可以看到我们目前所在的call(弄清楚自己现在所处位置)

运行程序,输入假码xuenixiang ,会断在下图位置

我们进00241A03这个call来看看 

判断我们输入的字符串长度是否在10-30位之间

我们进入这个call 0022E5BF 看看


继续进2E7DC1这个call

往下单步跟,到达这里可以看到转移假码的过程

这段是在验证假码的长度和假码最高限制1E(十进制的30)的关系

我们出这2个call,看到这个地方,是可以确定flag第8位是A

00241A76处的这个call是整个程序的算法部分,它把我们输入假码的每一位都和1F异或,然后把我们输入的原有字符串替换
00241A76处的这个call是整个程序的算法部分,它把我们输入假码的每一位都和1F异或,然后把我们输入的原有字符串替换

进CALL看看,可以看到异或的具体算法

注意这个地方,程序会将第八位无条件的换成#号,也就是说我们第八位不管是不是41(A),都会先被替换为#再参与下面的异或运算

[注意]看雪招聘,专注安全领域的专业人才平台!

上传的附件:
收藏
免费 4
支持
分享
赞赏记录
参与人
雪币
留言
时间
PLEBFE
为你点赞~
2022-7-27 01:53
心游尘世外
为你点赞~
2022-7-26 23:51
sunshine露
为你点赞~
2018-12-6 09:06
Roger
为你点赞~
2018-12-5 17:40
最新回复 (0)
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册