首页
社区
课程
招聘
[原创]看雪CTF2019晋级赛Q1第一题流浪者writeup
2019-3-11 22:53 2918

[原创]看雪CTF2019晋级赛Q1第一题流浪者writeup

2019-3-11 22:53
2918

一直在忙,晚上抽空打开题目,看到大佬们300多秒就解出来了,我只能写个详细点的wp来混存在感了。

首先查壳,VC程序,没壳


直接导入IDA定位到关键算法部分


通过F5可以看到伪C代码,主要讲的是我们输入的假码如果在0-9之间,就把对应的ASCII减0x30,假码如果在a-z之间,就把对应的ASCII减0x57,假码如果在A-Z之间,就把对应的ASCII减0x1D


大佬看到这里就可以关掉IDA开始写脚本了,但是我还是决定用OD来找找捷径

首先载入OD定位到关键点

004018B5处的GetWindowsTextA函数获取输入

00401908这里就开始进行算法变换


出了大循环之后,004019C3这里是关键比较CALL


进CALL看看


我们看到了字符串比较函数,我们在字符串比较函数下个CC断点,然后我们就可以通过穷举字母和数字来手动建立密码的对应关系


我们先观察和假码比较的那个字符串KanXueCTF2019JustForhappy

这个字符串包含了字母大写小写和数字

接下来就可以缩小举例的范围(排除某些符号)

0123456789对应abcdefghiAa


abcdefghijklmnopqrstuvwxyz对应BCDEFGHIJKLMNjklmn01234567


ABCDEFGHIJKLMNOPQRSTUVWXYZ对应89opqrstuvwxyzOPQRSTUVWXYZ


最后得出关系表

abcdefghiAa对应0123456789

BCDEFGHIJKLMNjklmn01234567对应abcdefghijklmnopqrstuvwxyz

89opqrstuvwxyzOPQRSTUVWXYZ对应ABCDEFGHIJKLMNOPQRSTUVWXYZ

通过手动计算可以得出:

KanXueCTF2019JustForhappy对应j0rXI4bTeustBiIGHeCF70DDM


通过验证,flag正确



[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞1
打赏
分享
最新回复 (2)
雪    币: 7231
活跃值: (2630)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
netwind 13 2019-3-12 09:24
2
0
认真
雪    币: 3096
活跃值: (2444)
能力值: ( LV8,RANK:147 )
在线值:
发帖
回帖
粉丝
Roger 1 2019-3-13 07:40
3
0
netwind 认真
谢谢超版鼓励!!!
游客
登录 | 注册 方可回帖
返回