[院赛2023]物转星移几度秋

根据提示nc 10.1.5.114 20005大概可以发下这个题目需要nc最后

查壳可知是64位的elf文件

拖入IDA中我们大概可以知道这是一个登录程序

所以只要我们输入正确的密码就可以拿到shell得到flag

通过这里我们可以知道首先是通过一个 rc4_init 然后 base64_encode最后与checkey进行判断

点进去rc4_init

 发现这是一个对密钥Rckey的改变

点进base64_encode

 大概就是一个换表的base64然后进行与

checkey来进行检查加密后是否正确

所以我们的思路就很明显就是通过远程动态调试来一步一步看

首先我们在虚拟机中运行此程序发现有反调试

字符串窗口找到traced!字符串然后交叉引用找到反调试程序

我们从头到尾将它给nop掉这样就没有了(注意nop的范围 不能多也不能少不然程序很容易坏掉)

 

然后再patch一下

在虚拟机中运行发现已经过了反调试了

此时我们进行远程调试

下断点

并在虚拟机中输入足够长的密码  因为后面会进行一个循环换表的过程需要足够的长度

运行到此此时我们的sboxs已经出来了但是我们先F7单步进入base64加密里面

观察特征我们可以知道他是每四个进行一个换表最后整合出来的

此时我们可以得到前三个

然后进行第二轮换表

得到703

最后慢慢来一直到最后我们可以得到63e70363435bd596e6be277859487a45这样一串数就是密码

此时我们退出调试进行nc服务器

输入账号密码 然后ls 进行cat flag拿到flag

flag{Congr4tu1ati0ns!}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值