ISCTF2023 RE EasyRe WP(错题)

文章讲述了在64位无壳代码中,通过逐位异或和字符串操作加密的过程,涉及到整数溢出导致的意外字符映射。作者发现一个可能的解密脚本,但指出可能存在编码错误。

64位无壳直接进

可以看出 ]P_ISRF^PCY[I_YWERYC 是最终的密文(20位)

第一个循环:进行逐位异或

第二个循环:将字符串中的B和X换掉,但是IDA默认编译出来的-101-66显然是负数,本不应该输出任何字符,但是在C中却可以运行,分别换成了Y和C

苦思冥想后我发现,256-101-155,155-66=89正好对应Y,电脑自动把-101转换成155进行计算,因为出现了整数溢出,完整的0-256表从后往前溢出,才造成了这样的结果

选中“-101”(一定要包括负号),先转化为16进制,再换成十进制,就会变成155(IDA榆木脑袋!)

第三个循环:看似是一个字符串逆序,实际上是将前半部分字符串对称到后半部分去,损失了一般的数据。这里好像是编错了,如果真是这样就没法解密。

如果当成是逆序,可以写出解密脚本:

出现了正常的flag,应该是题目出错了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值